/*###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__ = 0x20100000; /*-Memory Regions-*/ define symbol __ICFEDIT_region_ROM_start__ = 0x20100000; define symbol __ICFEDIT_region_ROM_end__ = 0x2017FFFF; define symbol __ICFEDIT_region_RAM_start__ = 0x20180000; define symbol __ICFEDIT_region_RAM_end__ = 0x201FFFFF; define symbol __ICFEDIT_region_IRAM_start__ = 0x100000; define symbol __ICFEDIT_region_IRAM_end__ = 0x147FFF; /*-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 : 0x20100000 * End : 0x20107FFF * Size : 32 Kbytes * 2. System calls: * Start : 0x20108000 * End : 0x20108FFF * Size : 4 Kbytes * 3. Unprivileged Code: * Start : 0x20109000 * End : 0x2017FFFF * Size : 476 Kbytes */ define symbol __reigon_ROM_privileged_start__ = __ICFEDIT_region_ROM_start__; define symbol __reigon_ROM_privileged_end__ = 0x20107FFF; define symbol __reigon_ROM_system_calls_start__ = 0x20108000; define symbol __reigon_ROM_system_calls_end__ = 0x20108FFF; define symbol __reigon_ROM_unprivileged_start__ = 0x20109000; define symbol __reigon_ROM_unprivileged_end__ = __ICFEDIT_region_ROM_end__; /* RAM Organization * 1. Privileged Data: * Start : 0x20180000 * End : 0x20183FFF * Size : 16 Kbytes * 2. Unprivileged Data: * Start : 0x20184000 * End : 0x201FFFFF * Size : 496 Kbytes */ define symbol __region_RAM_privileged_start__ = __ICFEDIT_region_RAM_start__; define symbol __region_RAM_privileged_end__ = 0x20183FFF; define symbol __region_RAM_unprivileged_start__ = 0x20184000; define symbol __region_RAM_unprivileged_end__ = __ICFEDIT_region_RAM_end__; /* IRAM Organization(totalsize: 288k) * 1. Privileged Data:(Sleep without loss) * Start : 0x100000 * End : 0x103FFF * Size : 16 Kbytes * 2. Critical Func: * Start : 0x140000 * End : 0x147FFF * Size : 32 Kbytes */ /* define symbol __region_IRAM_swl_privileged_start__ = __ICFEDIT_region_IRAM_start__; define symbol __region_IRAM_swl_privileged_end__ = 0x103FFF; */ define symbol __region_IRAM_critical_func_start__ = 0x140000; define symbol __region_IRAM_critical_func_end_ = __ICFEDIT_region_IRAM_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 IRAM_region_swl_critical_data = mem:[from __region_IRAM_swl_privileged_start__ to __region_IRAM_swl_privileged_end__];*/ define region IRAM_region_critical_func = mem:[from __region_IRAM_critical_func_start__ to __region_IRAM_critical_func_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, section critical_functions }; do not initialize { section .noinit }; /*do not initialize { section swl_critical_data };*/ /* 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 __RAM_segment_start__ = __ICFEDIT_region_RAM_start__; define exported symbol __RAM_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__; /* define exported symbol __IRAM__swl_privileged_data_start__ = __region_IRAM_swl_privileged_start__; define exported symbol __IRAM__swl_privileged_data_end__ = __region_IRAM_swl_privileged_end__; */ define exported symbol __IRAM__critical_func_start__ = __region_IRAM_critical_func_start__; define exported symbol __IRAM__critical_func_end__ = __region_IRAM_critical_func_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 IRAM_region_swl_critical_data { readwrite section swl_critical_data};*/ place in IRAM_region_critical_func { readwrite section critical_functions};