我是 ARM 新手,正在学习 ARM 中的中断处理。我已阅读有关如何在 ARM 中设置 IRQ 处理程序的信息,但不确定如何在 ARM 程序集中编写它。以下是我对设置 IRQ 处理程序的理解。
_IRQ_HANDER:
1)SUB lr, lr, #4
(不确定它做了什么)。
2) 将设置单独的堆栈应在 IRQ 模式下使用。我知道在 x86 中我们设置了如下堆栈:
push ebp
mov esp,ebp
sub esp,8
这将保留 8 个字节的堆栈空间。
但不确定我如何在 ARM 中做同样的事情?
3)存储非银行寄存器,我们可以这样做:
STMFD !sp {r13,r14}
4)复制CPSR
到SPSR
(我怎样才能做到ARM组装?)
5) 切换到处理器 IRQ 模式(我可以在 ARM 程序集中执行此操作)。
6) 下一步是什么?
我们需要给出PIC的基地址吗?
我正在使用 ARMV7 架构。