Пример скаттер файла.
FLASH_LOAD 0x00 0x40000 {
ROM_EXEC 0x00 0x10000 { startup.o (INIT,+FIRST) ; executed on hard reset *(+RO) }
BOOT_EXEC 0x10000 0x10000 { project_set.o(boot_func); В этой области размещается наша функция }
RAM 0x40000000 0x4000 {
* (+RW, +ZI) ; any remaining code inc C lib. }
EEPROM 0xF0000000 UNINIT 0x100 { project_set.o(eeprom_config) } EXRAM 0x81000000 0x200000 { ExtRAM.o (+RW, +ZI) } }
В project_set.c //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- #pragma arm section code = "boot_func", rwdata = "boot_func"
UINT32 boot_fun(UINT32 code) { if (code != 0) { return 0; } else { return 10; } }
#pragma arm section code, rwdata, zidata //-----------------------------------------------------------------------------
Выполняем буилд проекта и смотрим в мап-файле boot_fun 0x00010000 ARM Code 28 project_set.o(boot_func)
Всех делов.
|