STM32F4 Stack Pointer

Gast #3976640
Lesenswert?

Hallo Leute.
Ich nutze ein Linkerscript von Atollic Studio (schreibt man das so?).

Ich habe 2 versionen. In einem sind die RAM-Bereiche falsch. so by the 
way:
Wie kann sowas passieren?

Aber meine Frage ist eine andere:

das erste LD-Skript setzt den Stackpointer auf: 0x20020000
das zweite auf: 0x2001FFFF

Letzte Adresse im ram ist: 0x2001FFFF. Habe das deshalb auch für richtig 
gehalten :)

Jetzt lese ic gerade das Programming manual zum STM32 und da steht:
1
The processor uses a full descending stack. Th
2
is means the stack pointer indicates the last
3
stacked item on the stack memory. When the processor pushes a new item onto the stack, it
4
decrements the stack pointer and then writes
5
the item to the new memory location.
Das bedeutet doch, dass mir bei dem Skript mit der Adresse 0x2001FFFF 
ein byte fehlt, und dass die erste Variane richtig ist, oder?

Und auch hier wieder die Frage: Warum zur Hölle hat eigentlich jedes 
Linkerskript hundert Fehler?
Gast #3983364
Lesenswert?

ST-User schrieb:
>> Beim STM32 kannst Du den Stack auch in das CCM RAM Legen
>
> seit wann das denn ?
> Es gibt nicht bei jeden STM32 einen CCM-RAM.

Ja ich weiß. Obwohl das Linkerskript da auch einen Fehler hat. Mein 
Controller hat 128k SRAM beginnend bei 0x20000000 und die 64k CCM-RAM 
bei 0x10000000.
Im Linkerskript steht:
1
RAM (wrx) : ORIGIN = 0x20000000, LENGTH = 192K
Also alles als ein Block. Das kann auch böse ins Auge gehen :/


Danke für eure Antworten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren