|
| 1 | +/*###ICF### Section handled by ICF editor, don't touch! ****/ |
| 2 | +/*-Editor annotation file-*/ |
| 3 | +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ |
| 4 | +/*-Specials-*/ |
| 5 | +define symbol __ICFEDIT_intvec_start__ = 0x1c000; |
| 6 | +/*-Memory Regions-*/ |
| 7 | +define symbol __ICFEDIT_region_ROM_start__ = 0x1c000; |
| 8 | +define symbol __ICFEDIT_region_ROM_end__ = 0x7ffff; |
| 9 | +define symbol __ICFEDIT_region_RAM_start__ = 0x20002080; |
| 10 | +define symbol __ICFEDIT_region_RAM_end__ = 0x2000ffff; |
| 11 | +export symbol __ICFEDIT_region_RAM_start__; |
| 12 | +export symbol __ICFEDIT_region_RAM_end__; |
| 13 | +/*-Sizes-*/ |
| 14 | +/*Heap 1/4 of ram and stack 1/8*/ |
| 15 | +define symbol __ICFEDIT_size_cstack__ = 0xc00; |
| 16 | +define symbol __ICFEDIT_size_heap__ = 0x1800; |
| 17 | +/**** End of ICF editor section. ###ICF###*/ |
| 18 | + |
| 19 | +define symbol __code_start_soft_device__ = 0x0; |
| 20 | + |
| 21 | +define memory mem with size = 4G; |
| 22 | +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; |
| 23 | +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; |
| 24 | + |
| 25 | +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; |
| 26 | +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; |
| 27 | + |
| 28 | +initialize by copy { readwrite }; |
| 29 | +do not initialize { section .noinit }; |
| 30 | + |
| 31 | +keep { section .intvec }; |
| 32 | +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; |
| 33 | +place in ROM_region { readonly }; |
| 34 | +place in RAM_region { readwrite, |
| 35 | + block CSTACK, |
| 36 | + block HEAP }; |
| 37 | + |
| 38 | +/*This is used for mbed applications build inside the Embedded workbench |
| 39 | +Applications build with the python scritps use a hex merge so need to merge it |
| 40 | +inside the linker. The linker can only use binary files so the hex merge is not possible |
| 41 | +through the linker. That is why a binary is used instead of a hex image for the embedded project. |
| 42 | +*/ |
| 43 | +if(isdefinedsymbol(SOFT_DEVICE_BIN)) |
| 44 | +{ |
| 45 | + place at address mem:__code_start_soft_device__ { section .noinit_softdevice }; |
| 46 | +} |
0 commit comments