[an error occurred while processing this directive]
Спецы по AVR IAR C, очень нужна ваша помощь!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено OArkh 19 января 2005 г. 15:10

Исходный вопрос я задавал здесь:
http://telesys.ru/wwwboards/mcontrol/903/messages/15652.shtml

Поскольку некоторые решили, что я двоечник, который не понимает, что ему нужно, привожу реальный (слегка упрощенный) кусок кода. Это описание диалогового окна, которое отображается на ЖКИ и по которому можно перемещаться кнопками-стрелочками:

typedef struct
{
byte x,y;
byte type;
char flash* text;
} dlgctr;

dlgctr flash TestDialog[] =
{
{ 1,0, D_LABEL, "Test Dialog #1" },
{ 2,2, D_BUTTON, "LOAD" },
{ 2,3, D_BUTTON, "SAVE" },
{ 2,4, D_BUTTON, "TEST" },

{ 8,2, D_BUTTON, "Self-test" },
{ 8,3, D_BUTTON, "Transmission" },
{ 8,4, D_BUTTON, "Rock the World" },
};

Заголовок и 6 кнопочек. И всё. Бывает намного сложнее, но я специально упрощаю до идиотизма.
Я надеюсь, вы понимаете, почему text - указатель на строку, а не непосредственно char[].
Беда моя в том, что этот кусок не удается откомпилировать. Вернее, можно, если убрать слово "flash" из "char flash* text". Но тогда строки ложаться в SRAM, которого мне не хватит и на половину этих строк (таких диалогов много).
Проблема в том, что компайлер упорно считает, что строки, указанные в инициализаторе, имеют тип "char*", и мне не убедить его в том, что они "char flash*". Альтернатива есть, но она ужасна:

char flash S1[] = "Test Dialog #1";
char flash S2[] = "LOAD";
char flash S3[] = "SAVE";
char flash S4[] = "TEST";
char flash S5[] = "Self-test";
char flash S6[] = "Transmission";
char flash S7[] = "Rock the World";

dlgctr flash TestDialog[] =
{
{ 1,0, D_LABEL, S1 },
{ 2,2, D_BUTTON, S2 },
{ 2,3, D_BUTTON, S3 },
{ 2,4, D_BUTTON, S4 },

{ 8,2, D_BUTTON, S5 },
{ 8,3, D_BUTTON, S6 },
{ 8,4, D_BUTTON, S7 },
};

Компилятор AVR IAR C 2.26C.
Очень надеюсь на вашу помощь.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru