1/*###ICF### Section handled by ICF editor, don't touch! ****/
2/*-Editor annotation file-*/
3/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_4.xml" */
4/*-Specials-*/
5define symbol __ICFEDIT_intvec_start__ = 0x00000000;
6/*-Memory Regions-*/
7define symbol __ICFEDIT_region_IROM1_start__ = 0x00000000;
8define symbol __ICFEDIT_region_IROM1_end__   = 0x0007FFFF;
9define symbol __ICFEDIT_region_IROM2_start__ = 0x0;
10define symbol __ICFEDIT_region_IROM2_end__   = 0x0;
11define symbol __ICFEDIT_region_EROM1_start__ = 0x0;
12define symbol __ICFEDIT_region_EROM1_end__   = 0x0;
13define symbol __ICFEDIT_region_EROM2_start__ = 0x0;
14define symbol __ICFEDIT_region_EROM2_end__   = 0x0;
15define symbol __ICFEDIT_region_EROM3_start__ = 0x0;
16define symbol __ICFEDIT_region_EROM3_end__   = 0x0;
17define symbol __ICFEDIT_region_IRAM1_start__ = 0x20000000;
18define symbol __ICFEDIT_region_IRAM1_end__   = 0x2000FFFF;
19define symbol __ICFEDIT_region_IRAM2_start__ = 0x0;
20define symbol __ICFEDIT_region_IRAM2_end__   = 0x0;
21define symbol __ICFEDIT_region_ERAM1_start__ = 0x0;
22define symbol __ICFEDIT_region_ERAM1_end__   = 0x0;
23define symbol __ICFEDIT_region_ERAM2_start__ = 0x0;
24define symbol __ICFEDIT_region_ERAM2_end__   = 0x0;
25define symbol __ICFEDIT_region_ERAM3_start__ = 0x0;
26define symbol __ICFEDIT_region_ERAM3_end__   = 0x0;
27/*-Sizes-*/
28define symbol __ICFEDIT_size_cstack__     = 0x1000;
29define symbol __ICFEDIT_size_proc_stack__ = 0x0;
30define symbol __ICFEDIT_size_heap__       = 0x400;
31/**** End of ICF editor section. ###ICF###*/
32
33define memory mem with size = 4G;
34define region IROM_region   =   mem:[from __ICFEDIT_region_IROM1_start__ to __ICFEDIT_region_IROM1_end__]
35                              | mem:[from __ICFEDIT_region_IROM2_start__ to __ICFEDIT_region_IROM2_end__];
36define region EROM_region   =   mem:[from __ICFEDIT_region_EROM1_start__ to __ICFEDIT_region_EROM1_end__]
37                              | mem:[from __ICFEDIT_region_EROM2_start__ to __ICFEDIT_region_EROM2_end__]
38                              | mem:[from __ICFEDIT_region_EROM3_start__ to __ICFEDIT_region_EROM3_end__];
39define region IRAM_region   =   mem:[from __ICFEDIT_region_IRAM1_start__ to __ICFEDIT_region_IRAM1_end__]
40                              | mem:[from __ICFEDIT_region_IRAM2_start__ to __ICFEDIT_region_IRAM2_end__];
41define region ERAM_region   =   mem:[from __ICFEDIT_region_ERAM1_start__ to __ICFEDIT_region_ERAM1_end__]
42                              | mem:[from __ICFEDIT_region_ERAM2_start__ to __ICFEDIT_region_ERAM2_end__]
43                              | mem:[from __ICFEDIT_region_ERAM3_start__ to __ICFEDIT_region_ERAM3_end__];
44
45define block CSTACK     with alignment = 8, size = __ICFEDIT_size_cstack__     { };
46define block PROC_STACK with alignment = 8, size = __ICFEDIT_size_proc_stack__ { };
47define block HEAP       with alignment = 8, size = __ICFEDIT_size_heap__       { };
48
49do not initialize  { section .noinit };
50initialize by copy { readwrite };
51if (isdefinedsymbol(__USE_DLIB_PERTHREAD))
52{
53  // Required in a multi-threaded application
54  initialize by copy with packing = none { section __DLIB_PERTHREAD };
55}
56
57place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
58
59place in IROM_region  { readonly };
60place in EROM_region  { readonly section application_specific_ro };
61place in IRAM_region  { readwrite, block CSTACK, block PROC_STACK, block HEAP };
62place in ERAM_region  { readwrite section application_specific_rw };
63