Объясните связь настроек линковщика (распределение памяти, 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?
|