реклама на сайте
подробности

 
 
> Массив указателей на Flash, как это записать для IAR 4.11
andrvisht
сообщение Jan 16 2006, 07:29
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064



Нужно хранить строки логических параметров для вывода их как значение на ЖКД.
наиболее подходящим способом мне показалось создание массива указателей на строки.
например так:
Код
char *EnumMes[] = {"Вкл\0Выкл","Авто\0Ручн","Зан\0Ocв"};

но такое размещение строк производится в ОЗУ а хотелось бы во FLASH, и вот тут проблема:
Код
char __flash *EnumMes[] = {"Вкл\0Выкл","Авто\0Ручн","Зан\0Ocв"};
Error: a value of type "char *" cannot be used to initialize an entity of type "char __flash *"

т.е. указатель на Flash не может указать на данные в SRAM которыми, видимо, являются мои строки.
Включение опции --string_literals_in_flash ситуацию не изменило sad.gif
пришлось применить запись типа:
Код
__flash char mess1[] = "Вкл\0Выкл";  // Точность параметра=10
__flash char mess2[] = "Авто\0Ручн"; // Точность параметра=11
__flash char mess3[] = "Зан\0Ocв";   // Точность параметра=12
char __flash *EnumMes[] = {mess1, mess2, mess3};

Вопрос 1-й - Такая запись не очень удобна. Можно ли это сделать более лаконично ?

Далее полученный массив указателей на Flash строки можно тоже запихнуть во flash (хотя наверное доступ к нему из-за этого увеличиться :-) )
Код
... __flash char __flash *EnumMes[] = {mess1, mess2, mess3};

А теперь для передачи его в функцию как аргумента обьявляю указатель на массив указателей, но sad.gif
Код
char __flash *GetEnumMes(char __flash **EnumMess, char dPrm, char fPrm)
Error: argument of type "char __flash *__flash *" is incompatible with parameter of type "char __flash **"

Вопрос 2-й - как правильно передать его функции, если вообще возможно ?

Сообщение отредактировал &-rey - Jan 16 2006, 07:31
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 18:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016