|
6 | 6 | <Set Name="Valid" Value="false"/> |
7 | 7 |
|
8 | 8 | <!-- ################################################################################ --> |
9 | | - |
10 | 9 | <!-- Memory Region base and size values for physical hardware to help clarify the mapping |
11 | 10 | by making Symbolic names available instead of a bunch of numbers. These values are |
12 | 11 | fixed in hardware and therefore, don't change. |
|
31 | 30 | <Set Name="EXTRAM_BaseAddress" Value="0x68000000"/> |
32 | 31 | <Set Name="EXTRAM_Size" Value="0x00200000"/><!-- 2MB --> |
33 | 32 |
|
34 | | - <!-- Solution specific usage settings --> |
| 33 | + <!-- Solution/Project specific usage settings --> |
35 | 34 | <!-- Internal CCM (D-Bus) --> |
36 | 35 | <!-- Put Stack in CCM for high speed access, reducing overhead of stack usage --> |
37 | 36 | <Set Name="Stack_Bottom" Value="%CCM_BaseAddress%"/> |
|
51 | 50 |
|
52 | 51 | <!-- DAT region goes into external NOR Flash --> |
53 | 52 | <Set Name="Data_BaseAddress" Value="%Config_BaseAddress% + %Config_Size%"/> |
54 | | - <Set Name="Data_Size" Value="0x00020000"/><!-- 128KB --> |
| 53 | + <Set Name="Data_Size" Value="0x00030000"/><!-- 192KB --> |
55 | 54 |
|
56 | 55 | <!-- [Deployment fills the rest of external NOR flash...] --> |
57 | 56 |
|
|
64 | 63 | <!-- Internal FLASH --> |
65 | 64 |
|
66 | 65 | <!-- Native Code section --> |
67 | | - <Set Name="Code_BaseAddress" Value="%BooterCode_BaseAddress% + %BooterCode_Size%"/> |
68 | | - <Set Name="Code_Size" Value="%IFLASH_Size%-%BooterCode_Size%"/> |
| 66 | + <Set Name="Code_BaseAddress" Value="%BooterCode_BaseAddress% + %BooterCode_Size%"/> |
| 67 | + <Set Name="Code_Size" Value="%IFLASH_Size%-%BooterCode_Size%"/> |
69 | 68 |
|
70 | 69 | <!-- =========================================================== --> |
71 | 70 | <If Name="TARGETTYPE" Value="Release"> |
72 | 71 | <!-- ALL of external RAM is enabled for the CLR HEAP --> |
73 | | - <Set Name="Heap_Size" Value="%EXTRAM_Size%"/> |
74 | | - <Set Name="CustomHeap_Size" Value="0"/> |
| 72 | + <Set Name="Heap_Size" Value="%EXTRAM_Size%"/> |
| 73 | + <Set Name="CustomHeap_Size" Value="0"/> |
75 | 74 |
|
76 | | - <Set Name="Valid" Value="true"/> |
| 75 | + <Set Name="Valid" Value="true"/> |
77 | 76 | </If> |
78 | 77 | <If Name="TARGETTYPE" Value="Debug"> |
79 | 78 | <!-- Use only 1MB of external RAM for Debug builds. |
80 | 79 | Can't use all of external RAM as the address pins overlap |
81 | 80 | with the SWD pins used for ETM tracing in Debug builds. |
82 | 81 | --> |
83 | | - <Set Name="Heap_Size" Value="0x00100000"/><!--1MB--> |
84 | | - <Set Name="CustomHeap_Size" Value="0"/> |
| 82 | + <Set Name="Heap_Size" Value="0x00100000"/><!--1MB--> |
| 83 | + <Set Name="CustomHeap_Size" Value="0"/> |
85 | 84 |
|
86 | | - <Set Name="Valid" Value="true"/> |
| 85 | + <Set Name="Valid" Value="true"/> |
87 | 86 | </If> |
88 | 87 | </If> |
89 | 88 |
|
90 | 89 | <!-- ################################################################################ --> |
91 | | - |
92 | 90 | <If Name="Valid" Value="false"> |
93 | 91 | <Error Message="Configuration not recognized"/> |
94 | 92 | </If> |
|
107 | 105 | <NamedGroup Name="SECTIONS"> |
108 | 106 | <!-- ========= INTERNAL FLASH ============================================ --> |
109 | 107 | <ExecRegion Name="ER_%TARGETLOCATION%" Options=">LR_%TARGETLOCATION%"> |
110 | | - <FileMapping Name="*" Options="(i.EntryPoint)" /> |
111 | | - <FileMapping Name="*" Options="(SectionForBootstrapOperations)" /> |
112 | | - <FileMapping Name="*" Options="(.text*)" /> |
113 | | - <FileMapping Name="*" Options="(i.*)" /> |
114 | | - <FileMapping Name="*" Options="(.rodata*)" /> |
115 | | - <FileMapping Name="*" Options="(rodata)" /> |
116 | | - <FileMapping Name="*" Options="(.constdata*)" /> |
117 | | - <FileMapping Name="*" Options="(.conststring*)" /> |
118 | | - <FileMapping Name="*" Options="(.glue*)" /> |
| 108 | + <FileMapping Name="*(i.EntryPoint)"/> |
| 109 | + <FileMapping Name="*(SectionForBootstrapOperations)"/> |
| 110 | + <FileMapping Name="KEEP(*(.init))"/> |
| 111 | + <FileMapping Name="KEEP(*(.fini))"/> |
| 112 | + <FileMapping Name="*crtbegin.o(.ctors)"/> |
| 113 | + <FileMapping Name="*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)"/> |
| 114 | + <FileMapping Name="*(SORT(.ctors.*))"/> |
| 115 | + <FileMapping Name="*(.ctors)"/> |
| 116 | + <FileMapping Name="*crtbegin.o(.dtors)"/> |
| 117 | + <FileMapping Name="*crtbegin?.o(.dtors)"/> |
| 118 | + <FileMapping Name="*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)"/> |
| 119 | + <FileMapping Name="*(SORT(.dtors.*))"/> |
| 120 | + <FileMapping Name="*(.dtors)"/> |
| 121 | + <FileMapping Name="*(.text*)"/> |
| 122 | + <FileMapping Name="*(i.*)"/> |
| 123 | + <FileMapping Name="*(.rodata*)"/> |
| 124 | + <FileMapping Name="*(rodata)"/> |
| 125 | + <FileMapping Name="*(.constdata*)"/> |
| 126 | + <FileMapping Name="*(.conststring*)"/> |
| 127 | + <FileMapping Name="*(.glue*)"/> |
119 | 128 | <Include File="%SPOCLIENT%\Solutions\MCBSTM32F400\scatterfile_gcc_missing_symbols.xml"/> |
120 | 129 | </ExecRegion> |
121 | 130 |
|
|
132 | 141 | <ExecRegion Name="ER_VECTORS" Options=">IRAM"> |
133 | 142 | <FileMapping Name="*" Options="(VectorTable)" /> |
134 | 143 | </ExecRegion> |
135 | | - |
| 144 | + |
| 145 | + <ExecRegion Name="ER_RAM_RW" Align="0x10" Options=">IRAM AT>LR_FLASH "> |
| 146 | + <FileMapping Name="*(rwdata)"/> |
| 147 | + <FileMapping Name="*(.data*)"/> |
| 148 | + <FileMapping Name=". = ALIGN(4);"/> |
| 149 | + <FileMapping Name="PROVIDE(__preinit_array_start = . );"/> |
| 150 | + <FileMapping Name="KEEP(*(.preinit_array))"/> |
| 151 | + <FileMapping Name="PROVIDE(__preinit_array_end = . );"/> |
| 152 | + |
| 153 | + <FileMapping Name=". = ALIGN(4);"/> |
| 154 | + <FileMapping Name="PROVIDE(__init_array_start = . );"/> |
| 155 | + <FileMapping Name="KEEP(*(SORT(.init_array)))"/> |
| 156 | + <FileMapping Name="KEEP(*(.init_array))"/> |
| 157 | + <FileMapping Name="PROVIDE(__init_array_end = . );"/> |
| 158 | + |
| 159 | + <FileMapping Name=". = ALIGN(4);"/> |
| 160 | + <FileMapping Name="PROVIDE(__fini_array_start = . );"/> |
| 161 | + <FileMapping Name="KEEP(*(SORT(.fini_array)))"/> |
| 162 | + <FileMapping Name="KEEP(*(.fini_array))"/> |
| 163 | + <FileMapping Name="PROVIDE(__fini_array_end = . );"/> |
| 164 | + |
| 165 | + <FileMapping Name=". = ALIGN(4);"/> |
| 166 | + <FileMapping Name="__data_end__ = .;"/> |
| 167 | + </ExecRegion> |
| 168 | + |
| 169 | + <ExecRegion Name=".bss" Align="0x10" Base="(NOLOAD)" Options=">IRAM"> |
| 170 | + <FileMapping Name="*(.bss*)" /> |
| 171 | + <FileMapping Name="*(.zidata*)" /> |
| 172 | + <FileMapping Name="PROVIDE(__exidx_start = .);" /> |
| 173 | + <FileMapping Name="PROVIDE(__exidx_end = .);" /> |
| 174 | + <FileMapping Name="*(g_SSL_SeedData)" /> |
| 175 | + <FileMapping Name="*(COMMON)" /> |
| 176 | + </ExecRegion> |
| 177 | + |
136 | 178 | <!-- To enable re-initialization of the LWIP stack, which has no built-in support |
137 | 179 | for re-init, all RW and ZI data for the stack is placed into an isolated region |
138 | 180 | and the HAL soft reboot code handles re-initializing the data in this region. |
139 | 181 | --> |
140 | 182 | <ExecRegion Name="ER_LWIP_OS_RW" Options=">IRAM"> |
141 | | - <FileMapping Name="*sockets_hal_*_LWIP_os.lib" Options="(rwdata)" /> |
142 | | - <FileMapping Name="*lwip_1_4_1_os_CMSIS_RTOS.lib" Options="(rwdata)" /> |
| 183 | + <FileMapping Name="*sockets_hal_*_LWIP_os.lib(rwdata)" /> |
| 184 | + <FileMapping Name="*lwip_1_4_1_os_CMSIS_RTOS.lib(rwdata)" /> |
143 | 185 | </ExecRegion> |
144 | | - |
| 186 | + |
145 | 187 | <ExecRegion Name="ER_LWIP_OS_ZI" Options=">IRAM"> |
146 | | - <FileMapping Name="*sockets_hal_*_LWIP_os.lib" Options="(.bss)" /> |
147 | | - <FileMapping Name="*lwip_1_4_1_os_CMSIS_RTOS.lib" Options="(.bss)" /> |
| 188 | + <FileMapping Name="*sockets_hal_*_LWIP_os.lib(.bss)" /> |
| 189 | + <FileMapping Name="*lwip_1_4_1_os_CMSIS_RTOS.lib(.bss)" /> |
148 | 190 | </ExecRegion> |
149 | 191 |
|
150 | | - <ExecRegion Name="ER_RAM_RW" Align="0x10" Options=">IRAM AT>LR_FLASH "> |
151 | | - <FileMapping Name="*" Options="(rwdata)" /> |
152 | | - <FileMapping Name="*" Options="(.data*)" /> |
153 | | - </ExecRegion> |
154 | 192 |
|
155 | 193 | <ExecRegion Name="ER_RAM_RO" Align="0x10" Options=">IRAM"> |
156 | 194 | <!-- Flash programming from Flash is safe on STM32 --> |
157 | 195 | <!-- No need to place Flash programming code in RAM --> |
158 | 196 | <!-- <FileMapping Name="*" Options="(SectionForFlashOperations)" /> --> |
159 | 197 | </ExecRegion> |
160 | 198 |
|
161 | | - <ExecRegion Name=".bss" Align="0x10" Base="(NOLOAD)" Options=">IRAM"> |
162 | | - <FileMapping Name="*" Options="(.bss*)" /> |
163 | | - <FileMapping Name="*" Options="(.zidata*)" /> |
164 | | - <FileMapping Name="PROVIDE(__exidx_start = .);" /> |
165 | | - <FileMapping Name="PROVIDE(__exidx_end = .);" /> |
166 | | - <FileMapping Name="*" Options="(g_SSL_SeedData)" /> |
167 | | - <FileMapping Name="*" Options="(COMMON)" /> |
168 | | - </ExecRegion> |
169 | 199 |
|
170 | 200 | <ExecRegion Name="/DISCARD/"> |
171 | | - <FileMapping Name="*" Options="(.ARM.exidx*)" /> |
172 | | - <FileMapping Name="*" Options="(.ARM.extab*)" /> |
| 201 | + <FileMapping Name="*(.ARM.exidx*)" /> |
| 202 | + <FileMapping Name="*(.ARM.extab*)" /> |
173 | 203 | </ExecRegion> |
174 | 204 |
|
175 | 205 | <!--========= EXTERNAL RAM =============================================--> |
176 | 206 | <ExecRegion Name="ER_HEAP_BEGIN" Options=">EXTRAM"> |
177 | | - <FileMapping Name="*" Options="(SectionForHeapBegin)" /> |
| 207 | + <FileMapping Name="*(SectionForHeapBegin)" /> |
178 | 208 | </ExecRegion> |
179 | 209 |
|
180 | 210 | <!-- everything between heapbegin and heapend will be allocated for a heap --> |
181 | 211 |
|
182 | 212 | <ExecRegion Name="ER_HEAP_END" Base="ADDR(ER_HEAP_BEGIN) + %Heap_Size%" Options=">EXTRAM" > |
183 | | - <FileMapping Name="*" Options="(SectionForHeapEnd)" /> |
| 213 | + <FileMapping Name="*(SectionForHeapEnd)" /> |
184 | 214 | </ExecRegion> |
185 | 215 |
|
186 | 216 | <ExecRegion Name="ER_CUSTOM_HEAP_BEGIN" Options=">EXTRAM" > |
187 | | - <FileMapping Name="*" Options="(SectionForCustomHeapBegin)" /> |
| 217 | + <FileMapping Name="*(SectionForCustomHeapBegin)" /> |
188 | 218 | </ExecRegion> |
189 | 219 |
|
190 | 220 | <!-- everything between heapbegin and heapend will be allocated for the unmanaged SimpleHeap --> |
191 | 221 |
|
192 | 222 | <ExecRegion Name="ER_CUSTOM_HEAP_END" Base="ADDR(ER_CUSTOM_HEAP_BEGIN) + %CustomHeap_Size%" Options=">EXTRAM" > |
193 | | - <FileMapping Name="*" Options="(SectionForCustomHeapEnd)" /> |
| 223 | + <FileMapping Name="*(SectionForCustomHeapEnd)" /> |
194 | 224 | </ExecRegion> |
195 | 225 |
|
196 | 226 | <!-- ========= Internal CCM ============================================ --> |
197 | 227 | <!-- Stack allocation pools for the OS, Sizes are set in RTX_Conf_CM.c along with other OS configuration --> |
198 | 228 | <ExecRegion Name="ER_RT_STACK" Options=">D_CCM"> |
199 | | - <FileMapping Name="*" Options="(rtx_stack)" /> |
| 229 | + <FileMapping Name="*(rtx_stack)" /> |
200 | 230 | </ExecRegion> |
201 | 231 |
|
202 | 232 | <!-- The rest of the CCM is used as a general stack during startup. This can't overlap with the ER_RT_STACK |
|
207 | 237 | puts the end outside of physical memory it will generate an imprecise abort. |
208 | 238 | --> |
209 | 239 | <ExecRegion Name="ER_STACK_BOTTOM" Align="8" Options=">D_CCM"> |
210 | | - <FileMapping Name="*" Options="(SectionForStackBottom)" /> |
| 240 | + <FileMapping Name="*(SectionForStackBottom)" /> |
211 | 241 | </ExecRegion> |
212 | 242 |
|
213 | | - <!--8 for the two 32bit values in the SectionForStack* sections, This keeps the region |
| 243 | + <!-- (-8) for the two 32bit values in the SectionForStack* sections, This keeps the region |
214 | 244 | limit from exceeding the size of physical memory. --> |
215 | | - <ExecRegion Name="ER_STACK_TOP" Base="%Stack_Size%-SIZEOF(ER_RT_STACK)-8" Options=">D_CCM"> |
216 | | - <FileMapping Name="*" Options="(SectionForStackTop)" /> |
| 245 | + <ExecRegion Name="ER_STACK_TOP" Base="%Stack_Bottom% + %Stack_Size% - SIZEOF(ER_RT_STACK) - 8" Options=">D_CCM"> |
| 246 | + <FileMapping Name="*(SectionForStackTop)" /> |
217 | 247 | </ExecRegion> |
218 | 248 |
|
219 | 249 | <ExecRegion Name="ER_DAT" Options=">LR_DAT"> |
220 | | - <FileMapping Name="*" Options="(tinyclr_metadata)" /> |
| 250 | + <FileMapping Name="*(tinyclr_metadata)" /> |
221 | 251 | </ExecRegion> |
222 | 252 |
|
223 | 253 | <ExecRegion Name="ER_CONFIG" Options=">LR_CONFIG"> |
224 | | - <FileMapping Name="*" Options="(SectionForConfig)" /> |
| 254 | + <FileMapping Name="*(SectionForConfig)" /> |
225 | 255 | </ExecRegion> |
226 | 256 | </NamedGroup> |
227 | 257 |
|
|
0 commit comments