Объясните связь настроек линковщика (распределение памяти, icf файл), фактическими адресами в процессоре(даташит) и по каким адресам записывается программа во внутреннею флэш JFlashом?
Неясности возникли с необходимостью размещения параметров во flash и их перезаписью.
Создал секцию в icf, определил переменную в файле, удостоверился что переменная находится по данному адресу (map файл), залил прошивку в проц с помощью J-Flash(в настройках проекта на вкладке FLASH BaseAddr = 0x00100000).
Для перепрограммирования исползовал функцию, приведенную ранее кем-то из форумчан,
__ramfunc int flash_write_page(Uint32 addr, Uint8 *data); В качестве адреса задавал (Uint32)&Peremen
и значение переменной не изменялось. Если делал так: 0x00100000+(Uint32)&Peremen, то все работало.
Как правильно делать:
1. Задавать в настройках J-FLASH BaseAddr = 0x00000000
2. изменить распределение памяти в icf?