| /*###ICF### Section handled by ICF editor, don't touch! ****/ |
| /*-Editor annotation file-*/ |
| /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v2_1.xml" */ |
| |
| /*-Specials-*/ |
| define symbol __ICFEDIT_intvec_start__ = 0x10040000; |
| |
| /*-Memory Regions-*/ |
| define symbol __ICFEDIT_region_IROM1_start__ = 0x10040000; |
| define symbol __ICFEDIT_region_IROM1_end__ = 0x1007FFFF; |
| define symbol __ICFEDIT_region_IROM2_start__ = 0x0; |
| define symbol __ICFEDIT_region_IROM2_end__ = 0x0; |
| define symbol __ICFEDIT_region_EROM1_start__ = 0x0; |
| define symbol __ICFEDIT_region_EROM1_end__ = 0x0; |
| define symbol __ICFEDIT_region_EROM2_start__ = 0x0; |
| define symbol __ICFEDIT_region_EROM2_end__ = 0x0; |
| define symbol __ICFEDIT_region_EROM3_start__ = 0x0; |
| define symbol __ICFEDIT_region_EROM3_end__ = 0x0; |
| define symbol __ICFEDIT_region_IRAM1_start__ = 0x30008000; |
| define symbol __ICFEDIT_region_IRAM1_end__ = 0x30017FFF; |
| define symbol __ICFEDIT_region_IRAM2_start__ = 0x0; |
| define symbol __ICFEDIT_region_IRAM2_end__ = 0x0; |
| define symbol __ICFEDIT_region_ERAM1_start__ = 0x0; |
| define symbol __ICFEDIT_region_ERAM1_end__ = 0x0; |
| define symbol __ICFEDIT_region_ERAM2_start__ = 0x0; |
| define symbol __ICFEDIT_region_ERAM2_end__ = 0x0; |
| define symbol __ICFEDIT_region_ERAM3_start__ = 0x0; |
| define symbol __ICFEDIT_region_ERAM3_end__ = 0x0; |
| |
| /*-Sizes-*/ |
| define symbol __ICFEDIT_size_cstack__ = 0x800; |
| define symbol __ICFEDIT_size_proc_s_stack__ = 0x0; |
| define symbol __ICFEDIT_size_main_ns_stack__ = 0x0; |
| define symbol __ICFEDIT_size_proc_ns_stack__ = 0x0; |
| define symbol __ICFEDIT_size_heap__ = 0x0; |
| |
| /**** End of ICF editor section. ###ICF###*/ |
| |
| /* Flash Organization |
| * 1. Privileged Code: |
| * Start : 0x10040000 |
| * End : 0x10046FFF |
| * Size : 28 Kbytes |
| * 2. System calls: |
| * Start : 0x10047000 |
| * End : 0x10047FFF |
| * Size : 4 Kbytes |
| * 3. Unprivileged Code: |
| * Start : 0x10048000 |
| * End : 0x1007FFFF |
| * Size : 224 Kbytes |
| */ |
| define symbol __region_ROM_Privileged_start__ = 0x10040000; |
| define symbol __region_ROM_Privileged_end__ = 0x10046FFF; |
| define symbol __region_ROM_SystemCalls_start__ = 0x10047000; |
| define symbol __region_ROM_SystemCalls_end__ = 0x10047FFF; |
| define symbol __region_ROM_Unprivileged_start__ = 0x10048000; |
| define symbol __region_ROM_Unprivileged_end__ = 0x1007FFFF; |
| |
| /* RAM Organization |
| * 1. Privileged Data: |
| * Start : 0x30008000 |
| * End : 0x30008FFF |
| * Size : 4 Kbytes |
| * 2. Unprivileged Data: |
| * Start : 0x30009000 |
| * End : 0x30017FFF |
| * Size : 60 Kbytes |
| */ |
| define symbol __region_RAM_Privileged_start__ = 0x30008000; |
| define symbol __region_RAM_Privileged_end__ = 0x30008FFF; |
| define symbol __region_RAM_Unprivileged_start__ = 0x30009000; |
| define symbol __region_RAM_Unprivileged_end__ = 0x30017FFF; |
| |
| /* Memory Regions. */ |
| define memory mem with size = 4G; |
| define region ROM_Privileged_region = mem:[from __region_ROM_Privileged_start__ to __region_ROM_Privileged_end__]; |
| define region ROM_SystemCalls_region = mem:[from __region_ROM_SystemCalls_start__ to __region_ROM_SystemCalls_end__]; |
| define region ROM_Unprivileged_region = mem:[from __region_ROM_Unprivileged_start__ to __region_ROM_Unprivileged_end__]; |
| define region RAM_Privileged_region = mem:[from __region_RAM_Privileged_start__ to __region_RAM_Privileged_end__]; |
| define region RAM_Unprivileged_region = mem:[from __region_RAM_Unprivileged_start__ to __region_RAM_Unprivileged_end__]; |
| |
| /* Stack and Heap. */ |
| define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; |
| define block PROC_STACK_S with alignment = 8, size = __ICFEDIT_size_proc_s_stack__ { }; |
| define block MAIN_STACK_NS with alignment = 8, size = __ICFEDIT_size_main_ns_stack__ { }; |
| define block PROC_STACK_NS with alignment = 8, size = __ICFEDIT_size_proc_ns_stack__ { }; |
| define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; |
| |
| /* Initialization. */ |
| do not initialize { section .noinit }; |
| initialize by copy { readwrite }; |
| if( isdefinedsymbol(__USE_DLIB_PERTHREAD) ) |
| { |
| /* Required in a multi-threaded application. */ |
| initialize by copy with packing = none { section __DLIB_PERTHREAD }; |
| } |
| |
| /* Exported symbols. */ |
| define exported symbol __privileged_functions_start__ = __region_ROM_Privileged_start__; |
| define exported symbol __privileged_functions_end__ = __region_ROM_Privileged_end__; |
| define exported symbol __syscalls_flash_start__ = __region_ROM_SystemCalls_start__; |
| define exported symbol __syscalls_flash_end__ = __region_ROM_SystemCalls_end__; |
| define exported symbol __unprivileged_flash_start__ = __region_ROM_Unprivileged_start__; |
| define exported symbol __unprivileged_flash_end__ = __region_ROM_Unprivileged_end__; |
| define exported symbol __privileged_sram_start__ = __region_RAM_Privileged_start__; |
| define exported symbol __privileged_sram_end__ = __region_RAM_Privileged_end__; |
| |
| /* Placements. */ |
| place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; |
| |
| place in ROM_Privileged_region { readonly section privileged_functions }; |
| place in ROM_SystemCalls_region { readonly section freertos_system_calls }; |
| place in ROM_Unprivileged_region { readonly }; |
| |
| place in RAM_Privileged_region { readwrite section privileged_data }; |
| place in RAM_Unprivileged_region { readwrite, |
| block CSTACK, block PROC_STACK_S, block MAIN_STACK_NS, block PROC_STACK_NS, block HEAP }; |