Есть несколько способов объявить сегмент по адресу и разместить в нем переменные, но как задать им начальные значения?
Есть способ:
#pragma location=0x1004
__no_init const int beta;
или
__no_init volatile char alpha @ 0x1000;
, но с __no_init все понятно.
Пробую дальше:
Определяю секцию во flash.icf (можно добавить в конце файла):
/* определяем секцию конфигурации размер 4096*/
define block CONF_DATA with size = 0x1000, alignment = 512 {};
place in ROM_region { block CONF_DATA };
далее в *.с объявляем:
#pragma section = "CONF_DATA"
const char fff[4096]@"CONF_DATA" = {"Начальные значения

int main(void)
{
const char *Config = __section_begin("CONF_DATA");//Указатель на секцию конфигурации
const char *fff_Config = fff;
...
return 0;
}
Компилятор все проглатывает, только при отладке адрес fff_Config совсем не лежит в области Config.
Перепробовал множество методов, но в виду не идеальности документации, или плохой прокладки правильного решения найти не могу.
Если у кого есть готовое решение данной проблемы в IAR 5.xx, буду благодарен если прольёт свет на данную проблему.