Добрый день. Необходимо: 1. Разместить функцию write_flash() в ОЗУ. 2. В конец FLASH по заданному адресу вставить массив.
Делаю два файла flash_write.c и flash_data.c пихаю в один функцию записи, в другой данные
Пишу скаттер. LR_IROM1 0x08000000 0x00020000 { ; load region size_region ER_IROM1 0x08000000 0x00020000-0x1000 { ; load address = execution address *.o (RESET, +First) * (+RO) .ANY (*) } FLASH_DATA 0x0801F000 FIXED 0x1000 { flash_data.o (*) }
RW_IRAM1 0x20000000 0x00008000 { ; RW data .ANY (+RW +ZI) flash_write.o (+RO) } }
Все отлично. Данные в нужном месте. Функция записи-в ОЗУ.
НО!!!! Копия write_flash() кладется в конец FLASH и в начале программы копируется из нее в ОЗУ. И естественно занимает память моих данных, которые я тоже хочу класть в конец FLASH
Как заставить компилятор класть копию функции в другое место???
|