BASIC compiler/interpreter for PIC32MX/MZ-80K
Révision | 46cbc3d465a44d21fcf5d1a73cce4fe436f55a6f (tree) |
---|---|
l'heure | 2019-05-13 11:55:42 |
Auteur | Katsumi <kmorimatsu@sour...> |
Commiter | Katsumi |
--no-data-init option for xc32-ld. Allow using malloc/free.
@@ -39,7 +39,6 @@ const void* const clibdata[]={ | ||
39 | 39 | * static start address at 0xA0000100. |
40 | 40 | */ |
41 | 41 | void* CLIBINIT clib_init(void** data){ |
42 | - char* data_mem; | |
43 | 42 | // Store pointer to data |
44 | 43 | g_data=data; |
45 | 44 | // Call user initialization routine |
@@ -26,6 +26,7 @@ void init(void); | ||
26 | 26 | malloc(int size); |
27 | 27 | calloc(int size); |
28 | 28 | */ |
29 | +extern void** g_data; | |
29 | 30 | #define malloc(x) clib_calloc(((x)+3)>>2,g_data) |
30 | 31 | #define calloc(x) clib_calloc(((x)+3)>>2,g_data) |
31 | 32 | void* clib_calloc(int size, void** g_data); |
@@ -43,7 +43,7 @@ | ||
43 | 43 | |
44 | 44 | OUTPUT_FORMAT("elf32-tradlittlemips") |
45 | 45 | OUTPUT_ARCH(pic32mx) |
46 | -ENTRY(_reset) | |
46 | +/*ENTRY(_reset)*/ | |
47 | 47 | /* |
48 | 48 | * Provide for a minimum stack and heap size |
49 | 49 | * - _min_stack_size - represents the minimum space that must be made |
@@ -54,7 +54,7 @@ ENTRY(_reset) | ||
54 | 54 | * the command line using the linker's --defsym option. |
55 | 55 | */ |
56 | 56 | EXTERN (_min_stack_size _min_heap_size) |
57 | -PROVIDE(_min_stack_size = 0x800) ; | |
57 | +PROVIDE(_min_stack_size = 0x000) ; | |
58 | 58 | |
59 | 59 | /************************************************************************* |
60 | 60 | * Processor-specific object file. Contains SFR definitions. |
@@ -102,8 +102,9 @@ _GEN_EXCPT_ADDR = _ebase_address + 0x180; | ||
102 | 102 | *************************************************************************/ |
103 | 103 | MEMORY |
104 | 104 | { |
105 | - kseg0_program_mem (rx) : ORIGIN = (0x9D006000+0x1000+0x490), LENGTH = (0x20000-0x6000-0x1000-0x490) | |
106 | - kseg2_program_mem (rx) : ORIGIN = (0x9D020000), LENGTH = (0x80000-0x20000-0x1000) | |
105 | + kseg1_data_mem (w!x) : ORIGIN = (0xA0008000-0x080), LENGTH = 0x080 | |
106 | + kseg2_program_mem (rx) : ORIGIN = (0xA0008000) , LENGTH = 0x040 | |
107 | + kseg0_program_mem (rx) : ORIGIN = (0xA0008000+0x040), LENGTH = (0x18000-0x040) | |
107 | 108 | kseg0_boot_mem : ORIGIN = (0x9D006000+0x1000+0x490), LENGTH = 0 /* dummy */ |
108 | 109 | exception_mem : ORIGIN = 0x9D006000, LENGTH = 0x1000 |
109 | 110 | kseg1_boot_mem : ORIGIN = (0x9D006000+0x1000), LENGTH = 0x490 |
@@ -112,7 +113,6 @@ MEMORY | ||
112 | 113 | config2 : ORIGIN = 0xBFC02FF4, LENGTH = 0x4 |
113 | 114 | config1 : ORIGIN = 0xBFC02FF8, LENGTH = 0x4 |
114 | 115 | config0 : ORIGIN = 0xBFC02FFC, LENGTH = 0x4 |
115 | - kseg1_data_mem (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000 | |
116 | 116 | sfrs : ORIGIN = 0xBF800000, LENGTH = 0x100000 |
117 | 117 | configsfrs : ORIGIN = 0xBFC02FF0, LENGTH = 0x10 |
118 | 118 | } |
@@ -123,7 +123,7 @@ MEMORY | ||
123 | 123 | |
124 | 124 | SECTIONS |
125 | 125 | { |
126 | - .machikania_object : { | |
126 | + .machikania_clib : { | |
127 | 127 | KEEP(*(.machikania_clib)) |
128 | 128 | } > kseg2_program_mem |
129 | 129 | } |
@@ -149,353 +149,6 @@ SECTIONS | ||
149 | 149 | } |
150 | 150 | SECTIONS |
151 | 151 | { |
152 | - /* Boot Sections */ | |
153 | - .reset _RESET_ADDR : | |
154 | - { | |
155 | - KEEP(*(.reset)) | |
156 | - KEEP(*(.reset.startup)) | |
157 | - } > kseg1_boot_mem | |
158 | - .bev_excpt _BEV_EXCPT_ADDR : | |
159 | - { | |
160 | - KEEP(*(.bev_handler)) | |
161 | - } > kseg1_boot_mem | |
162 | - /* Debug exception vector */ | |
163 | - .dbg_excpt _DBG_EXCPT_ADDR (NOLOAD) : | |
164 | - { | |
165 | - . += (DEFINED (_DEBUGGER) ? 0x8 : 0x0); | |
166 | - } > kseg1_boot_mem | |
167 | - /* Space reserved for the debug executive */ | |
168 | - .dbg_code _DBG_CODE_ADDR (NOLOAD) : | |
169 | - { | |
170 | - . += (DEFINED (_DEBUGGER) ? _DBG_CODE_SIZE : 0x0); | |
171 | - } > debug_exec_mem | |
172 | - | |
173 | - .app_excpt _GEN_EXCPT_ADDR : | |
174 | - { | |
175 | - KEEP(*(.gen_handler)) | |
176 | - } > exception_mem | |
177 | - | |
178 | - .vector_0 _ebase_address + 0x200 + ((_vector_spacing << 5) * 0) : | |
179 | - { | |
180 | - KEEP(*(.vector_0)) | |
181 | - } > exception_mem | |
182 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_0) <= (_vector_spacing << 5), "function at exception vector 0 too large") | |
183 | - .vector_1 _ebase_address + 0x200 + ((_vector_spacing << 5) * 1) : | |
184 | - { | |
185 | - KEEP(*(.vector_1)) | |
186 | - } > exception_mem | |
187 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_1) <= (_vector_spacing << 5), "function at exception vector 1 too large") | |
188 | - .vector_2 _ebase_address + 0x200 + ((_vector_spacing << 5) * 2) : | |
189 | - { | |
190 | - KEEP(*(.vector_2)) | |
191 | - } > exception_mem | |
192 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_2) <= (_vector_spacing << 5), "function at exception vector 2 too large") | |
193 | - .vector_3 _ebase_address + 0x200 + ((_vector_spacing << 5) * 3) : | |
194 | - { | |
195 | - KEEP(*(.vector_3)) | |
196 | - } > exception_mem | |
197 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_3) <= (_vector_spacing << 5), "function at exception vector 3 too large") | |
198 | - .vector_4 _ebase_address + 0x200 + ((_vector_spacing << 5) * 4) : | |
199 | - { | |
200 | - KEEP(*(.vector_4)) | |
201 | - } > exception_mem | |
202 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_4) <= (_vector_spacing << 5), "function at exception vector 4 too large") | |
203 | - .vector_5 _ebase_address + 0x200 + ((_vector_spacing << 5) * 5) : | |
204 | - { | |
205 | - KEEP(*(.vector_5)) | |
206 | - } > exception_mem | |
207 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_5) <= (_vector_spacing << 5), "function at exception vector 5 too large") | |
208 | - .vector_6 _ebase_address + 0x200 + ((_vector_spacing << 5) * 6) : | |
209 | - { | |
210 | - KEEP(*(.vector_6)) | |
211 | - } > exception_mem | |
212 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_6) <= (_vector_spacing << 5), "function at exception vector 6 too large") | |
213 | - .vector_7 _ebase_address + 0x200 + ((_vector_spacing << 5) * 7) : | |
214 | - { | |
215 | - KEEP(*(.vector_7)) | |
216 | - } > exception_mem | |
217 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_7) <= (_vector_spacing << 5), "function at exception vector 7 too large") | |
218 | - .vector_8 _ebase_address + 0x200 + ((_vector_spacing << 5) * 8) : | |
219 | - { | |
220 | - KEEP(*(.vector_8)) | |
221 | - } > exception_mem | |
222 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_8) <= (_vector_spacing << 5), "function at exception vector 8 too large") | |
223 | - .vector_9 _ebase_address + 0x200 + ((_vector_spacing << 5) * 9) : | |
224 | - { | |
225 | - KEEP(*(.vector_9)) | |
226 | - } > exception_mem | |
227 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_9) <= (_vector_spacing << 5), "function at exception vector 9 too large") | |
228 | - .vector_10 _ebase_address + 0x200 + ((_vector_spacing << 5) * 10) : | |
229 | - { | |
230 | - KEEP(*(.vector_10)) | |
231 | - } > exception_mem | |
232 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_10) <= (_vector_spacing << 5), "function at exception vector 10 too large") | |
233 | - .vector_11 _ebase_address + 0x200 + ((_vector_spacing << 5) * 11) : | |
234 | - { | |
235 | - KEEP(*(.vector_11)) | |
236 | - } > exception_mem | |
237 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_11) <= (_vector_spacing << 5), "function at exception vector 11 too large") | |
238 | - .vector_12 _ebase_address + 0x200 + ((_vector_spacing << 5) * 12) : | |
239 | - { | |
240 | - KEEP(*(.vector_12)) | |
241 | - } > exception_mem | |
242 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_12) <= (_vector_spacing << 5), "function at exception vector 12 too large") | |
243 | - .vector_13 _ebase_address + 0x200 + ((_vector_spacing << 5) * 13) : | |
244 | - { | |
245 | - KEEP(*(.vector_13)) | |
246 | - } > exception_mem | |
247 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_13) <= (_vector_spacing << 5), "function at exception vector 13 too large") | |
248 | - .vector_14 _ebase_address + 0x200 + ((_vector_spacing << 5) * 14) : | |
249 | - { | |
250 | - KEEP(*(.vector_14)) | |
251 | - } > exception_mem | |
252 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_14) <= (_vector_spacing << 5), "function at exception vector 14 too large") | |
253 | - .vector_15 _ebase_address + 0x200 + ((_vector_spacing << 5) * 15) : | |
254 | - { | |
255 | - KEEP(*(.vector_15)) | |
256 | - } > exception_mem | |
257 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_15) <= (_vector_spacing << 5), "function at exception vector 15 too large") | |
258 | - .vector_16 _ebase_address + 0x200 + ((_vector_spacing << 5) * 16) : | |
259 | - { | |
260 | - KEEP(*(.vector_16)) | |
261 | - } > exception_mem | |
262 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_16) <= (_vector_spacing << 5), "function at exception vector 16 too large") | |
263 | - .vector_17 _ebase_address + 0x200 + ((_vector_spacing << 5) * 17) : | |
264 | - { | |
265 | - KEEP(*(.vector_17)) | |
266 | - } > exception_mem | |
267 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_17) <= (_vector_spacing << 5), "function at exception vector 17 too large") | |
268 | - .vector_18 _ebase_address + 0x200 + ((_vector_spacing << 5) * 18) : | |
269 | - { | |
270 | - KEEP(*(.vector_18)) | |
271 | - } > exception_mem | |
272 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_18) <= (_vector_spacing << 5), "function at exception vector 18 too large") | |
273 | - .vector_19 _ebase_address + 0x200 + ((_vector_spacing << 5) * 19) : | |
274 | - { | |
275 | - KEEP(*(.vector_19)) | |
276 | - } > exception_mem | |
277 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_19) <= (_vector_spacing << 5), "function at exception vector 19 too large") | |
278 | - .vector_20 _ebase_address + 0x200 + ((_vector_spacing << 5) * 20) : | |
279 | - { | |
280 | - KEEP(*(.vector_20)) | |
281 | - } > exception_mem | |
282 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_20) <= (_vector_spacing << 5), "function at exception vector 20 too large") | |
283 | - .vector_21 _ebase_address + 0x200 + ((_vector_spacing << 5) * 21) : | |
284 | - { | |
285 | - KEEP(*(.vector_21)) | |
286 | - } > exception_mem | |
287 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_21) <= (_vector_spacing << 5), "function at exception vector 21 too large") | |
288 | - .vector_22 _ebase_address + 0x200 + ((_vector_spacing << 5) * 22) : | |
289 | - { | |
290 | - KEEP(*(.vector_22)) | |
291 | - } > exception_mem | |
292 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_22) <= (_vector_spacing << 5), "function at exception vector 22 too large") | |
293 | - .vector_23 _ebase_address + 0x200 + ((_vector_spacing << 5) * 23) : | |
294 | - { | |
295 | - KEEP(*(.vector_23)) | |
296 | - } > exception_mem | |
297 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_23) <= (_vector_spacing << 5), "function at exception vector 23 too large") | |
298 | - .vector_24 _ebase_address + 0x200 + ((_vector_spacing << 5) * 24) : | |
299 | - { | |
300 | - KEEP(*(.vector_24)) | |
301 | - } > exception_mem | |
302 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_24) <= (_vector_spacing << 5), "function at exception vector 24 too large") | |
303 | - .vector_25 _ebase_address + 0x200 + ((_vector_spacing << 5) * 25) : | |
304 | - { | |
305 | - KEEP(*(.vector_25)) | |
306 | - } > exception_mem | |
307 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_25) <= (_vector_spacing << 5), "function at exception vector 25 too large") | |
308 | - .vector_26 _ebase_address + 0x200 + ((_vector_spacing << 5) * 26) : | |
309 | - { | |
310 | - KEEP(*(.vector_26)) | |
311 | - } > exception_mem | |
312 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_26) <= (_vector_spacing << 5), "function at exception vector 26 too large") | |
313 | - .vector_27 _ebase_address + 0x200 + ((_vector_spacing << 5) * 27) : | |
314 | - { | |
315 | - KEEP(*(.vector_27)) | |
316 | - } > exception_mem | |
317 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_27) <= (_vector_spacing << 5), "function at exception vector 27 too large") | |
318 | - .vector_28 _ebase_address + 0x200 + ((_vector_spacing << 5) * 28) : | |
319 | - { | |
320 | - KEEP(*(.vector_28)) | |
321 | - } > exception_mem | |
322 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_28) <= (_vector_spacing << 5), "function at exception vector 28 too large") | |
323 | - .vector_29 _ebase_address + 0x200 + ((_vector_spacing << 5) * 29) : | |
324 | - { | |
325 | - KEEP(*(.vector_29)) | |
326 | - } > exception_mem | |
327 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_29) <= (_vector_spacing << 5), "function at exception vector 29 too large") | |
328 | - .vector_30 _ebase_address + 0x200 + ((_vector_spacing << 5) * 30) : | |
329 | - { | |
330 | - KEEP(*(.vector_30)) | |
331 | - } > exception_mem | |
332 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_30) <= (_vector_spacing << 5), "function at exception vector 30 too large") | |
333 | - .vector_31 _ebase_address + 0x200 + ((_vector_spacing << 5) * 31) : | |
334 | - { | |
335 | - KEEP(*(.vector_31)) | |
336 | - } > exception_mem | |
337 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_31) <= (_vector_spacing << 5), "function at exception vector 31 too large") | |
338 | - .vector_32 _ebase_address + 0x200 + ((_vector_spacing << 5) * 32) : | |
339 | - { | |
340 | - KEEP(*(.vector_32)) | |
341 | - } > exception_mem | |
342 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_32) <= (_vector_spacing << 5), "function at exception vector 32 too large") | |
343 | - .vector_33 _ebase_address + 0x200 + ((_vector_spacing << 5) * 33) : | |
344 | - { | |
345 | - KEEP(*(.vector_33)) | |
346 | - } > exception_mem | |
347 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_33) <= (_vector_spacing << 5), "function at exception vector 33 too large") | |
348 | - .vector_34 _ebase_address + 0x200 + ((_vector_spacing << 5) * 34) : | |
349 | - { | |
350 | - KEEP(*(.vector_34)) | |
351 | - } > exception_mem | |
352 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_34) <= (_vector_spacing << 5), "function at exception vector 34 too large") | |
353 | - .vector_35 _ebase_address + 0x200 + ((_vector_spacing << 5) * 35) : | |
354 | - { | |
355 | - KEEP(*(.vector_35)) | |
356 | - } > exception_mem | |
357 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_35) <= (_vector_spacing << 5), "function at exception vector 35 too large") | |
358 | - .vector_36 _ebase_address + 0x200 + ((_vector_spacing << 5) * 36) : | |
359 | - { | |
360 | - KEEP(*(.vector_36)) | |
361 | - } > exception_mem | |
362 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_36) <= (_vector_spacing << 5), "function at exception vector 36 too large") | |
363 | - .vector_37 _ebase_address + 0x200 + ((_vector_spacing << 5) * 37) : | |
364 | - { | |
365 | - KEEP(*(.vector_37)) | |
366 | - } > exception_mem | |
367 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_37) <= (_vector_spacing << 5), "function at exception vector 37 too large") | |
368 | - .vector_38 _ebase_address + 0x200 + ((_vector_spacing << 5) * 38) : | |
369 | - { | |
370 | - KEEP(*(.vector_38)) | |
371 | - } > exception_mem | |
372 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_38) <= (_vector_spacing << 5), "function at exception vector 38 too large") | |
373 | - .vector_39 _ebase_address + 0x200 + ((_vector_spacing << 5) * 39) : | |
374 | - { | |
375 | - KEEP(*(.vector_39)) | |
376 | - } > exception_mem | |
377 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_39) <= (_vector_spacing << 5), "function at exception vector 39 too large") | |
378 | - .vector_40 _ebase_address + 0x200 + ((_vector_spacing << 5) * 40) : | |
379 | - { | |
380 | - KEEP(*(.vector_40)) | |
381 | - } > exception_mem | |
382 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_40) <= (_vector_spacing << 5), "function at exception vector 40 too large") | |
383 | - .vector_41 _ebase_address + 0x200 + ((_vector_spacing << 5) * 41) : | |
384 | - { | |
385 | - KEEP(*(.vector_41)) | |
386 | - } > exception_mem | |
387 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_41) <= (_vector_spacing << 5), "function at exception vector 41 too large") | |
388 | - .vector_42 _ebase_address + 0x200 + ((_vector_spacing << 5) * 42) : | |
389 | - { | |
390 | - KEEP(*(.vector_42)) | |
391 | - } > exception_mem | |
392 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_42) <= (_vector_spacing << 5), "function at exception vector 42 too large") | |
393 | - .vector_43 _ebase_address + 0x200 + ((_vector_spacing << 5) * 43) : | |
394 | - { | |
395 | - KEEP(*(.vector_43)) | |
396 | - } > exception_mem | |
397 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_43) <= (_vector_spacing << 5), "function at exception vector 43 too large") | |
398 | - .vector_44 _ebase_address + 0x200 + ((_vector_spacing << 5) * 44) : | |
399 | - { | |
400 | - KEEP(*(.vector_44)) | |
401 | - } > exception_mem | |
402 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_44) <= (_vector_spacing << 5), "function at exception vector 44 too large") | |
403 | - .vector_45 _ebase_address + 0x200 + ((_vector_spacing << 5) * 45) : | |
404 | - { | |
405 | - KEEP(*(.vector_45)) | |
406 | - } > exception_mem | |
407 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_45) <= (_vector_spacing << 5), "function at exception vector 45 too large") | |
408 | - .vector_46 _ebase_address + 0x200 + ((_vector_spacing << 5) * 46) : | |
409 | - { | |
410 | - KEEP(*(.vector_46)) | |
411 | - } > exception_mem | |
412 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_46) <= (_vector_spacing << 5), "function at exception vector 46 too large") | |
413 | - .vector_47 _ebase_address + 0x200 + ((_vector_spacing << 5) * 47) : | |
414 | - { | |
415 | - KEEP(*(.vector_47)) | |
416 | - } > exception_mem | |
417 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_47) <= (_vector_spacing << 5), "function at exception vector 47 too large") | |
418 | - .vector_48 _ebase_address + 0x200 + ((_vector_spacing << 5) * 48) : | |
419 | - { | |
420 | - KEEP(*(.vector_48)) | |
421 | - } > exception_mem | |
422 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_48) <= (_vector_spacing << 5), "function at exception vector 48 too large") | |
423 | - .vector_49 _ebase_address + 0x200 + ((_vector_spacing << 5) * 49) : | |
424 | - { | |
425 | - KEEP(*(.vector_49)) | |
426 | - } > exception_mem | |
427 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_49) <= (_vector_spacing << 5), "function at exception vector 49 too large") | |
428 | - .vector_50 _ebase_address + 0x200 + ((_vector_spacing << 5) * 50) : | |
429 | - { | |
430 | - KEEP(*(.vector_50)) | |
431 | - } > exception_mem | |
432 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_50) <= (_vector_spacing << 5), "function at exception vector 50 too large") | |
433 | - .vector_51 _ebase_address + 0x200 + ((_vector_spacing << 5) * 51) : | |
434 | - { | |
435 | - KEEP(*(.vector_51)) | |
436 | - } > exception_mem | |
437 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_51) <= (_vector_spacing << 5), "function at exception vector 51 too large") | |
438 | - .vector_52 _ebase_address + 0x200 + ((_vector_spacing << 5) * 52) : | |
439 | - { | |
440 | - KEEP(*(.vector_52)) | |
441 | - } > exception_mem | |
442 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_52) <= (_vector_spacing << 5), "function at exception vector 52 too large") | |
443 | - .vector_53 _ebase_address + 0x200 + ((_vector_spacing << 5) * 53) : | |
444 | - { | |
445 | - KEEP(*(.vector_53)) | |
446 | - } > exception_mem | |
447 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_53) <= (_vector_spacing << 5), "function at exception vector 53 too large") | |
448 | - .vector_54 _ebase_address + 0x200 + ((_vector_spacing << 5) * 54) : | |
449 | - { | |
450 | - KEEP(*(.vector_54)) | |
451 | - } > exception_mem | |
452 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_54) <= (_vector_spacing << 5), "function at exception vector 54 too large") | |
453 | - .vector_55 _ebase_address + 0x200 + ((_vector_spacing << 5) * 55) : | |
454 | - { | |
455 | - KEEP(*(.vector_55)) | |
456 | - } > exception_mem | |
457 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_55) <= (_vector_spacing << 5), "function at exception vector 55 too large") | |
458 | - .vector_56 _ebase_address + 0x200 + ((_vector_spacing << 5) * 56) : | |
459 | - { | |
460 | - KEEP(*(.vector_56)) | |
461 | - } > exception_mem | |
462 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_56) <= (_vector_spacing << 5), "function at exception vector 56 too large") | |
463 | - .vector_57 _ebase_address + 0x200 + ((_vector_spacing << 5) * 57) : | |
464 | - { | |
465 | - KEEP(*(.vector_57)) | |
466 | - } > exception_mem | |
467 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_57) <= (_vector_spacing << 5), "function at exception vector 57 too large") | |
468 | - .vector_58 _ebase_address + 0x200 + ((_vector_spacing << 5) * 58) : | |
469 | - { | |
470 | - KEEP(*(.vector_58)) | |
471 | - } > exception_mem | |
472 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_58) <= (_vector_spacing << 5), "function at exception vector 58 too large") | |
473 | - .vector_59 _ebase_address + 0x200 + ((_vector_spacing << 5) * 59) : | |
474 | - { | |
475 | - KEEP(*(.vector_59)) | |
476 | - } > exception_mem | |
477 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_59) <= (_vector_spacing << 5), "function at exception vector 59 too large") | |
478 | - .vector_60 _ebase_address + 0x200 + ((_vector_spacing << 5) * 60) : | |
479 | - { | |
480 | - KEEP(*(.vector_60)) | |
481 | - } > exception_mem | |
482 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_60) <= (_vector_spacing << 5), "function at exception vector 60 too large") | |
483 | - .vector_61 _ebase_address + 0x200 + ((_vector_spacing << 5) * 61) : | |
484 | - { | |
485 | - KEEP(*(.vector_61)) | |
486 | - } > exception_mem | |
487 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_61) <= (_vector_spacing << 5), "function at exception vector 61 too large") | |
488 | - .vector_62 _ebase_address + 0x200 + ((_vector_spacing << 5) * 62) : | |
489 | - { | |
490 | - KEEP(*(.vector_62)) | |
491 | - } > exception_mem | |
492 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_62) <= (_vector_spacing << 5), "function at exception vector 62 too large") | |
493 | - .vector_63 _ebase_address + 0x200 + ((_vector_spacing << 5) * 63) : | |
494 | - { | |
495 | - KEEP(*(.vector_63)) | |
496 | - } > exception_mem | |
497 | - ASSERT (_vector_spacing == 0 || SIZEOF(.vector_63) <= (_vector_spacing << 5), "function at exception vector 63 too large") | |
498 | - | |
499 | 152 | /* The startup code is in the .reset.startup section. |
500 | 153 | * Keep this here for backwards compatibility with older |
501 | 154 | * C32 v1.xx releases. |
@@ -26,6 +26,8 @@ char* test_private(int param1){ | ||
26 | 26 | } |
27 | 27 | } |
28 | 28 | char* test_public(int param1){ |
29 | + void* test=malloc(16); | |
30 | + free(test); | |
29 | 31 | return test_private(param1); |
30 | 32 | } |
31 | 33 |
@@ -144,12 +144,12 @@ endif | ||
144 | 144 | ifeq ($(TYPE_IMAGE), DEBUG_RUN) |
145 | 145 | dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk clib_p32MX370F512H.ld |
146 | 146 | @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} |
147 | - ${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_SIMULATOR=1 -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=__MPLAB_DEBUGGER_SIMULATOR=1,--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml | |
147 | + ${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_SIMULATOR=1 -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=__MPLAB_DEBUGGER_SIMULATOR=1,--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml,--no-data-init | |
148 | 148 | |
149 | 149 | else |
150 | 150 | dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk clib_p32MX370F512H.ld |
151 | 151 | @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} |
152 | - ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml | |
152 | + ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml,--no-data-init | |
153 | 153 | ${MP_CC_DIR}\\xc32-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} |
154 | 154 | endif |
155 | 155 |
@@ -1,8 +1,8 @@ | ||
1 | 1 | # |
2 | -#Sat May 11 21:49:04 PDT 2019 | |
2 | +#Sun May 12 18:25:29 PDT 2019 | |
3 | 3 | default.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=f2639e8ffe4e3a80ef2cdaeba61da340 |
4 | 4 | default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.42\\bin |
5 | -configurations-xml=29d1a0ced33e84be2829a6567fb2a455 | |
5 | +configurations-xml=d396d647be909bd57511217de4e29ec7 | |
6 | 6 | com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=52742b11d992fb0dd234edfb95066b34 |
7 | 7 | default.languagetoolchain.version=1.42 |
8 | 8 | host.platform=windows |
@@ -150,6 +150,7 @@ | ||
150 | 150 | <property key="symbol-stripping" value=""/> |
151 | 151 | <property key="trace-symbols" value=""/> |
152 | 152 | <property key="warn-section-align" value="false"/> |
153 | + <appendMe value="--no-data-init"/> | |
153 | 154 | </C32-LD> |
154 | 155 | <C32CPP> |
155 | 156 | <property key="additional-warnings" value="false"/> |