]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_R4F_RZ_T_GCC_IAR_ARM/System/IAR/RZ_T1_init.icf
Baseline new GCC and Renesas compiler projects for RX71M and RX113 before adding...
[freertos] / FreeRTOS / Demo / CORTEX_R4F_RZ_T_GCC_IAR_ARM / System / IAR / RZ_T1_init.icf
1 /*###ICF### Section handled by ICF editor, don't touch! ****/\r
2 /*-Editor annotation file-*/\r
3 /* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */\r
4 /*-Specials-*/\r
5 define symbol __ICFEDIT_intvec_start__ = 0x00000000;\r
6 /*-Memory Regions-*/\r
7 define symbol __ICFEDIT_region_ROM_start__   = 0x40020040;\r
8 define symbol __ICFEDIT_region_ROM_end__     = 0x4008FFFF;\r
9 define symbol __ICFEDIT_region_RAM_start__   = 0x00070000;\r
10 define symbol __ICFEDIT_region_RAM_end__     = 0x0007FFFF;\r
11 /*-Sizes-*/\r
12 define symbol __ICFEDIT_size_cstack__   = 0x2000;\r
13 define symbol __ICFEDIT_size_svcstack__ = 0x200;\r
14 define symbol __ICFEDIT_size_irqstack__ = 0x100;\r
15 define symbol __ICFEDIT_size_fiqstack__ = 0x100;\r
16 define symbol __ICFEDIT_size_undstack__ = 0x100;\r
17 define symbol __ICFEDIT_size_abtstack__ = 0x100;\r
18 define symbol __ICFEDIT_size_heap__     = 0x1000;\r
19 /**** End of ICF editor section. ###ICF###*/\r
20 \r
21 \r
22 define memory mem with size = 4G;\r
23 define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];\r
24 define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];\r
25 \r
26 define symbol __region_USER_PRG_start__      = 0x00000040;\r
27 define symbol __region_USER_PRG_end__        = 0x0006FFFF;\r
28 \r
29 define symbol __region_D_LDR_DATA_start__    = 0x00800000;\r
30 define symbol __region_D_LDR_DATA_end__      = 0x00801FFF;\r
31 define symbol __region_D_LDR_PRG_start__     = 0x00802000;\r
32 define symbol __region_D_LDR_PRG_end__       = 0x00807FFF;\r
33 \r
34 define symbol __region_D_LDR_M3PRG_start__   = 0x04000000;\r
35 define symbol __region_D_LDR_M3PRG_end__     = 0x0407FFFF;\r
36 \r
37 define symbol __region_S_LDR_M3PRG_start__   = 0x00050000;\r
38 define symbol __region_S_LDR_M3PRG_end__     = 0x0006FFFF;\r
39 \r
40 define symbol __region_EXT_RAM1_start__      = 0x22000000;\r
41 define symbol __region_EXT_RAM1_end__        = 0x2207FFFF;\r
42 define symbol __region_EXT_RAM2_start__      = 0x24000000;\r
43 define symbol __region_EXT_RAM2_end__        = 0x2407FFFF;\r
44 define symbol __region_SPIBSC_start__        = 0x30000000;\r
45 define symbol __region_SPIBSC_end__          = 0x33FFFFFF;\r
46 \r
47 define symbol __region_CS0_start__           = 0x40000000;\r
48 define symbol __region_CS0_end__             = 0x43FFFFFF;\r
49 define symbol __region_CS1_start__           = 0x44000000;\r
50 define symbol __region_CS1_end__             = 0x47FFFFFF;\r
51 define symbol __region_CS2_start__           = 0x48000000;\r
52 define symbol __region_CS2_end__             = 0x4BFFFFFF;\r
53 define symbol __region_CS3_start__           = 0x4C000000;\r
54 define symbol __region_CS3_end__             = 0x4FFFFFFF;\r
55 define symbol __region_CS4_start__           = 0x50000000;\r
56 define symbol __region_CS4_end__             = 0x53FFFFFF;\r
57 define symbol __region_CS5_start__           = 0x54000000;\r
58 define symbol __region_CS5_end__             = 0x57FFFFFF;\r
59 \r
60 define region USER_PRG_region  = mem:[from __region_USER_PRG_start__   to __region_USER_PRG_end__];\r
61 define region D_LDR_DATA_region  = mem:[from __region_D_LDR_DATA_start__   to __region_D_LDR_DATA_end__];\r
62 define region D_LDR_PRG_region  = mem:[from __region_D_LDR_PRG_start__   to __region_D_LDR_PRG_end__];\r
63 \r
64 define region D_LDR_M3PRG_region = mem:[from __region_D_LDR_M3PRG_start__   to __region_D_LDR_M3PRG_end__];\r
65 define region S_LDR_M3PRG_region = mem:[from __region_S_LDR_M3PRG_start__   to __region_S_LDR_M3PRG_end__];\r
66 \r
67 define region EXT_RAM1_region = mem:[from __region_EXT_RAM1_start__ to __region_EXT_RAM1_end__];\r
68 define region EXT_RAM2_region = mem:[from __region_EXT_RAM2_start__ to __region_EXT_RAM2_end__];\r
69 define region SPIBSC_region = mem:[from __region_SPIBSC_start__ to __region_SPIBSC_end__];\r
70 define region CS0_region = mem:[from __region_CS0_start__ to __region_CS0_end__];\r
71 define region CS1_region = mem:[from __region_CS1_start__ to __region_CS1_end__];\r
72 define region CS2_region = mem:[from __region_CS2_start__ to __region_CS2_end__];\r
73 define region CS3_region = mem:[from __region_CS3_start__ to __region_CS3_end__];\r
74 define region CS4_region = mem:[from __region_CS4_start__ to __region_CS4_end__];\r
75 define region CS5_region = mem:[from __region_CS5_start__ to __region_CS5_end__];\r
76 \r
77 define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };\r
78 define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };\r
79 define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };\r
80 define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };\r
81 define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };\r
82 define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };\r
83 define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };\r
84 \r
85 \r
86 define block LDR_PRG_RBLOCK with fixed order\r
87                             { ro code object loader_init.o,\r
88                               ro code object loader_init2.o,\r
89                               ro code object r_atcm_init.o,\r
90                               ro code object r_cpg.o,\r
91                               ro code object r_ram_init.o,\r
92                               ro code object r_mpc.o,\r
93                               ro code object r_reset.o,\r
94                               ro code object data_init.o,\r
95                               ro code object copy_init3.o };\r
96 define block LDR_DATA_ZBLOCK { section .bss object loader_init.o,\r
97                                section .bss object loader_init2.o,\r
98                                section .bss object r_atcm_init.o,\r
99                                section .bss object r_cpg.o,\r
100                                section .bss object r_ram_init.o,\r
101                                section .bss object r_mpc.o,\r
102                                section .bss object r_reset.o,\r
103                                section .bss object data_init.o,\r
104                                section .bss object copy_init3.o };\r
105 define block LDR_DATA_RBLOCK { section .data_init object loader_init.o,\r
106                                section .data_init object loader_init2.o,\r
107                                section .data_init object r_atcm_init.o,\r
108                                section .data_init object r_cpg.o,\r
109                                section .data_init object r_ram_init.o,\r
110                                section .data_init object r_mpc.o,\r
111                                section .data_init object r_reset.o,\r
112                                section .data_init object data_init.o,\r
113                                section .data_init object copy_init3.o };\r
114 define block LDR_DATA_WBLOCK { section .data object loader_init.o,\r
115                                section .data object loader_init2.o,\r
116                                section .data object r_atcm_init.o,\r
117                                section .data object r_cpg.o,\r
118                                section .data object r_ram_init.o,\r
119                                section .data object r_mpc.o,\r
120                                section .data object r_reset.o,\r
121                                section .data object data_init.o,\r
122                                section .data object copy_init3.o };\r
123 define block VECTOR_RBLOCK { ro code object vector.o };\r
124 define block USER_PRG_RBLOCK { ro code };\r
125 define block USER_DATA_ZBLOCK { section .bss };\r
126 define block USER_DATA_RBLOCK { section .data_init };\r
127 define block USER_DATA_WBLOCK { section .data };\r
128 \r
129 define block M3_PRG_RBLOCK { section __M3prg_init };\r
130 define block M3_PRG_WBLOCK { section __M3prg };\r
131 \r
132 initialize by copy { readwrite };\r
133 \r
134 do not initialize  { section .noinit, section .bss };\r
135 \r
136 initialize manually { section __M3prg };\r
137 \r
138 place at address mem:__ICFEDIT_intvec_start__ { block VECTOR_RBLOCK };\r
139 \r
140 place in USER_PRG_region { block USER_PRG_RBLOCK,\r
141                            block USER_DATA_RBLOCK,\r
142                            readonly };\r
143 place in RAM_region   { readwrite };\r
144 place in RAM_region   { block USER_DATA_WBLOCK,\r
145                         block USER_DATA_ZBLOCK,\r
146                         block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,\r
147                         block UND_STACK, block ABT_STACK, block HEAP };\r
148 place in D_LDR_DATA_region { block LDR_DATA_WBLOCK, block LDR_DATA_ZBLOCK };\r
149 place in D_LDR_PRG_region { block LDR_PRG_RBLOCK,\r
150                             block LDR_DATA_RBLOCK };\r
151 \r
152 place in S_LDR_M3PRG_region { block M3_PRG_RBLOCK };\r
153 place in D_LDR_M3PRG_region { block M3_PRG_WBLOCK };\r
154 \r
155 place in EXT_RAM1_region {};\r
156 place in EXT_RAM2_region {};\r
157 place in SPIBSC_region {};\r
158 place in CS0_region {};\r
159 place in CS1_region {};\r
160 place in CS2_region {};\r
161 place in CS3_region {};\r
162 place in CS4_region {};\r
163 place in CS5_region {};\r