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.
Gast
#7059897
oberhalb von R12
Gast
#7059910
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
Gast
#7059918
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.