Forum: Mikrocontroller und Digitale Elektronik Wie lautet die Adresse des Stack Pointer Register in STM32F407?


von Max M. (koeltrad)


Lesenswert?

Stack Pointer befindet sich im Flash unter 0x08000000
Wo ist das Stack Pointer Register? Ich habe gehört, dass es einen gibt, 
aber ich habe die Beschreibung und den Standort SP nicht gesehen.

von Einer (Gast)


Lesenswert?

oberhalb von R12

von piffpoff (Gast)


Lesenswert?

Ich glaube SP ist bei ARM immer R13.
Bin aber nicht sicher ob es da ausnahmen gibt...

Was meinst du mit "Addresse vom Stack Pointer Register"?
Das ist ein core register...

https://developer.arm.com/documentation/dui0552/a/the-cortex-m3-processor/programmers-model/core-registers

von Lothar (Gast)


Lesenswert?

Da die Cortex-M ohne Stack nicht funktionieren (wegen Autostacking) 
wurde _stack_end_ auf Adresse 0 gelegt, noch vor dem Programmstart auf 
Adresse 4

https://wiki.segger.com/Arm_Cortex-M_interrupts

Die Stackpointer holen sich _stack_end_ dort ab. Die Stackpointer sind 
immer R13 denn nur das gibt es mehrfach für die verschiedenen 
Betriebszustände:

https://developer.arm.com/documentation/ddi0439/b/Programmers-Model/Processor-core-register-summary

Bei den Cortex-A ist stattdessen der Programmstart noch auf Adresse 0

https://www.riscosopen.org/wiki/documentation/show/Hardware%20Vectors

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.