/*###ICF### Section handled by ICF editor, don't touch! ****/ | |
/*-Editor annotation file-*/ | |
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ | |
/*-Specials-*/ | |
define symbol __ICFEDIT_intvec_start__ = 0x08000000; | |
/*-Memory Regions-*/ | |
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; | |
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF; | |
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; | |
define symbol __ICFEDIT_region_RAM_end__ = 0x20017FFF; | |
/*-Sizes-*/ | |
define symbol __ICFEDIT_size_cstack__ = 0x400; | |
define symbol __ICFEDIT_size_heap__ = 0x200; | |
/**** End of ICF editor section. ###ICF###*/ | |
/* Flash Organization | |
* 1. Privileged Code: | |
* Start : 0x08000000 | |
* End : 0x08007FFF | |
* Size : 32 Kbytes | |
* 2. System calls: | |
* Start : 0x08008000 | |
* End : 0x08008FFF | |
* Size : 4 Kbytes | |
* 3. Unprivileged Code: | |
* Start : 0x08009000 | |
* End : 0x080FFFFF | |
* Size : 988 Kbytes | |
*/ | |
define symbol __reigon_ROM_privileged_start__ = __ICFEDIT_region_ROM_start__; | |
define symbol __reigon_ROM_privileged_end__ = 0x08007FFF; | |
define symbol __reigon_ROM_system_calls_start__ = 0x08008000; | |
define symbol __reigon_ROM_system_calls_end__ = 0x08008FFF; | |
define symbol __reigon_ROM_unprivileged_start__ = 0x08009000; | |
define symbol __reigon_ROM_unprivileged_end__ = __ICFEDIT_region_ROM_end__; | |
/* RAM Organization | |
* 1. Privileged Data: | |
* Start : 0x20000000 | |
* End : 0x200003FF | |
* Size : 1 Kbytes | |
* 2. Unprivileged Data: | |
* Start : 0x20000400 | |
* End : 0x20017FFF | |
* Size : 95 Kbytes | |
*/ | |
define symbol __region_RAM_privileged_start__ = __ICFEDIT_region_RAM_start__; | |
define symbol __region_RAM_privileged_end__ = 0x200003FF; | |
define symbol __region_RAM_unprivileged_start__ = 0x20000400; | |
define symbol __region_RAM_unprivileged_end__ = __ICFEDIT_region_RAM_end__; | |
define symbol __region_SRAM2_start__ = 0x10000000; | |
define symbol __region_SRAM2_end__ = 0x10007FFF; | |
/* Memory regions. */ | |
define memory mem with size = 4G; | |
define region ROM_region_privileged = mem:[from __reigon_ROM_privileged_start__ to __reigon_ROM_privileged_end__]; | |
define region ROM_region_system_calls = mem:[from __reigon_ROM_system_calls_start__ to __reigon_ROM_system_calls_end__]; | |
define region ROM_region_unprivileged = mem:[from __reigon_ROM_unprivileged_start__ to __reigon_ROM_unprivileged_end__]; | |
define region RAM_region_privileged = mem:[from __region_RAM_privileged_start__ to __region_RAM_privileged_end__]; | |
define region RAM_region_unprivileged = mem:[from __region_RAM_unprivileged_start__ to __region_RAM_unprivileged_end__]; | |
define region SRAM2_region = mem:[from __region_SRAM2_start__ to __region_SRAM2_end__]; | |
/* Stack and Heap. */ | |
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; | |
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; | |
/* Initialization. */ | |
initialize by copy { readwrite }; | |
do not initialize { section .noinit }; | |
/* Exported symbols. */ | |
define exported symbol __FLASH_segment_start__ = __ICFEDIT_region_ROM_start__; | |
define exported symbol __FLASH_segment_end__ = __ICFEDIT_region_ROM_end__; | |
define exported symbol __SRAM_segment_start__ = __ICFEDIT_region_RAM_start__; | |
define exported symbol __SRAM_segment_end__ = __ICFEDIT_region_RAM_end__; | |
define exported symbol __privileged_functions_start__ = __reigon_ROM_privileged_start__; | |
define exported symbol __privileged_functions_end__ = __reigon_ROM_privileged_end__; | |
define exported symbol __privileged_data_start__ = __region_RAM_privileged_start__; | |
define exported symbol __privileged_data_end__ = __region_RAM_privileged_end__; | |
define exported symbol __syscalls_flash_start__ = __reigon_ROM_system_calls_start__; | |
define exported symbol __syscalls_flash_end__ = __reigon_ROM_system_calls_end__; | |
/* Placements. */ | |
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; | |
place in ROM_region_privileged { readonly section privileged_functions }; | |
place in ROM_region_system_calls { readonly section freertos_system_calls }; | |
place in ROM_region_unprivileged { readonly }; | |
place in RAM_region_privileged { readwrite section privileged_data }; | |
place in RAM_region_unprivileged { readwrite, | |
block CSTACK, block HEAP }; | |
place in SRAM2_region { }; |