📄 startup_rtx.s
字号:
PRESERVE8 ; 8-Byte aligned Stack
AREA IRQ_Vect_Addr, CODE, READONLY
ARM
EXPORT IRQ_Handler
IMPORT VIC_Vect_Addr0
IRQ_Handler STMFD SP!, {R11, R12, LR};真保护R11R12, 假保护LR(用于运算)
LDR R12, VIC_Vect_Addr ;取VICVectAddr物理地址
LDR R12, [R12] ;取出取VICVectAddr内实际向量中断号(非地址)
AND R12, #0x1f ;防止32个中断序号越界,在此可再做序号越界处理(可省略)
LDR R11, =VIC_Vect_Addr0
LDR R12, [R11, R12, LSL #2];散转到用户真正的向量中断地址
STR R12, [SP, #0x08];将中断向量地址R12写入事先保存的那个LR空间
LDMFD SP!, {R11, R12, PC};恢复R11R12,同时PC跳入中断向量地址执行
VIC_Vect_Addr DCD 0xFFFFF030;VICVectAddr物理地址
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -