Hallo zusammen,
mein Problem ist, dass mein stack mit dem heap kolliddiert und so meine
allokierten Variablen verändert. Als Controller verwende ich den
STM32F429I und Atollic TrueSTUDIO als Entwicklungsumgebung.
Ist eine Kollision irgendwie vermeidbar? Ich finde in dem linker script
auch keine Angabe über die stack größe, nur folgendes:
1 | /* Highest address of the user mode stack */
|
2 | _estack = 0x20030000; /* end of RAM */
|
3 |
|
4 | /* Generate a link error if heap and stack don't fit into RAM */
|
5 | _Min_Heap_Size = 0x200; /* required amount of heap 0x200 */
|
6 | _Min_Stack_Size = 0x400; /* required amount of stack 0x400 */
|
7 |
|
8 | /* User_heap_stack section, used to check that there is enough RAM left */
|
9 | ._user_heap_stack :
|
10 | {
|
11 | . = ALIGN(8);
|
12 | PROVIDE ( end = . );
|
13 | PROVIDE ( _end = . );
|
14 | . = . + _Min_Heap_Size;
|
15 | . = . + _Min_Stack_Size;
|
16 | . = ALIGN(8);
|
17 | } >RAM
|
Kann ich irgendwie eine feste stack größe vorgeben im Linker script?
Wenn ja wie?
Danke!