я делал примерно так для сохраниния настроек
Код
unsigned long *opt1 = (unsigned long *) SETTINGS_OFFSET+SA_OPT1;
unsigned long *opt2 = (unsigned long *) SETTINGS_OFFSET+SA_OPT2;
где SETTINGS_OFFSET - адрес начала страницы, а SA_OPT - смещение внутри страницы нашей настройки, и также писать процедуру перезаписи всего сегмента
а чтобы компилятор туда не помещал ничего другого, прописать в скрипте линкера
Код
.=0x00100000+255K;
.settings :
{
*(.settings .settings.*);
} >flash =0x00
можно использовать
Код
.=align(256);
которая выравнивает точку в памяти кратно указанному числу байт
также можете поэксперементировать с объявлению переменной с привязкой к сегменту
Код
__attribute__ ((section (".settings"))) unsigned long int Buf[64];
но у меня дружбы с ними не получилось, то регион кончался, то линкер ошибку давал (а рассказывать детально о своих ошибках не хотел)