/*###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__ = 0x0104000; /*-Memory Regions-*/ define symbol __ICFEDIT_region_ROM_start__ = 0x0104000; define symbol __ICFEDIT_region_ROM_end__ = 0x012FFFF; define symbol __ICFEDIT_region_RAM_start__ = 0x0130000; define symbol __ICFEDIT_region_RAM_end__ = 0x0147FFF; define symbol __ICFEDIT_region_SRAM_start__ = 0x20100000; define symbol __ICFEDIT_region_SRAM_end__ = 0x2017FFFF; /*-Sizes-*/ define symbol __ICFEDIT_size_cstack__ = 0x1000; define symbol __ICFEDIT_size_heap__ = 0; /**** End of ICF editor section. ###ICF###*/ /* Flash Organization * 1. Privileged Code: * Start : 0x104000 * End : 0x107FFF * Size : 16 Kbytes * 2. System calls: * Start : 0x108000 * End : 0x108FFF * Size : 4 Kbytes * 3. Unprivileged Code: * Start : 0x109000 * End : 0x12FFFF * Size : 156 Kbytes */ define symbol __reigon_ROM_privileged_start__ = __ICFEDIT_region_ROM_start__; define symbol __reigon_ROM_privileged_end__ = 0x107FFF; define symbol __reigon_ROM_system_calls_start__ = 0x108000; define symbol __reigon_ROM_system_calls_end__ = 0x108FFF; define symbol __reigon_ROM_unprivileged_start__ = 0x109000; define symbol __reigon_ROM_unprivileged_end__ = __ICFEDIT_region_ROM_end__; /* RAM Organization * 1. Privileged Data: * Start : 0x130000 * End : 0x137FFF * Size : 32 Kbytes * 2. Unprivileged Data: * Start : 0x138000 * End : 0x147FFF * Size : 64 Kbytes */ define symbol __region_RAM_privileged_start__ = __ICFEDIT_region_RAM_start__; define symbol __region_RAM_privileged_end__ = 0x137FFF; define symbol __region_RAM_unprivileged_start__ = 0x138000; define symbol __region_RAM_unprivileged_end__ = __ICFEDIT_region_RAM_end__; /* 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 SRAM_region_privileged = mem:[from __ICFEDIT_region_SRAM_start__ to __ICFEDIT_region_SRAM_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 __IRAM_segment_start__ = __ICFEDIT_region_RAM_start__; define exported symbol __IRAM_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 __SRAM_segment_start__ = __ICFEDIT_region_SRAM_start__; define exported symbol __SRAM_segment_end__ = __ICFEDIT_region_SRAM_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 at address mem:__ICFEDIT_region_RAM_start__ { section SEC_DDT }; 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 SRAM_region_privileged { readwrite section UC_HEAP};