上电复位或者系统复位后,可以从中断向量表地址依次获取SP和中断复位复位程序入口地址。
[Asm] 纯文本查看 复制代码
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
进入中断前,有几个寄存器是需要自动入栈的,所以要优先SP获取栈地址。
实际上从芯片的设计角度来说,反过来设计也是没问题的。
补充:
【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000
https://www.armbbs.cn/forum.php?mod=viewthread&tid=109321
|