в скрипт линковщика добавляете свою секцию
Цитата
__exidx_end = .;
.flash_var : ALIGN (1024) /* очень важно не прогадать с выравниванием, а то будете затирать программу */
{
*(.flash_var*)
. = ALIGN (1024);
*(.flash_var_end*)
} > ROM
__etext = .;
затем задаёте в какой секции располагается нужкая переменная(структура)
Код
static uint8_t __attribute__ ((section(".flash_var"))) mConfigDataFlashArray[sizeof(SConfigData_Internal)];
я обычно по-умолчанию не зашиваю, т.к. программа сам должна знать, что там у неё надо сделать. а при запуске проверяю контрольную сумму: не совпала - сохраняем настройки по-умолчанию.