Цитата(Сергей Борщ @ Aug 5 2008, 19:38)

Ага, ну теперь все стало понятнее. Тогда вам просто надо убрать ненужные массивы:
Код
typedef struct
{
char const __flash *str;
unsigned char parametr;
unsigned char const __flash adr;
unsigned int const __flash scale_factor;
} Parametr;
char const __flash S0[] = "Вр ЦИКЛА ";
unsigned char const __flash ADR1 = 0;
int const __flash KF1 = 1;
char const __flash S1[] = "Что-то еще ";
unsigned char const __flash ADR2 = 2;
int const __flash KF2 = 3;
Parametr PARAMETRS[27] =
{
{ S0, 0, &ADR1, &KF1},
{ S1, 1, &ADR2, &KF2},
.......
};
И все же не совсем понятна эта структура. У вас, скажем, для PARAMETERS[0], в процессе работы scale_factor может указывать то на одну, то на другую константу? Ведь все эти указатели занимают место в ОЗУ. Может всю структуру хранить во флеш, а для parameter завести отдельный массив в ОЗУ?
Вы знали

Идея была в следующем, есть определенный параметр, с ним связаны определенный адрес, определенная строка и коэфициент, поскольку они константы то в ОЗУ их хранить нет смысла, то пусть они лежат во флэш, фактически хотелось иметь одну структуру часть которой находится во флэш, а часть в ОЗУ, массивы были заведены - потому что меньше писанины, чем выше указанный вами способ. Естественно так не получится, а в ОЗУ будет храниться вся структура (вернее указатели), так что зкономии ОЗУ не будет, это я только недавно понял

, действительно как вы правильно сказали прийдется делать массив в ОЗУ для параметров, в структуре хранить индекс на нужный параметр. В общем Спасибо! Теперь все стало на свои места.