目录
一、Reset 中断服务函数的实现步骤
实现 Reset 中断服务函数的基本步骤如下:
- 设置各个模式下的SP指针。当中断发生后,会进入到对应的工作模式下,每个工作模式下要运行程序,肯定要用到栈,因此我们需要初始化不同模式下的栈指针。
- 清除 bss 段。
- 跳转到 main 函数。
有的时候我们为了防止执行中断服务函数的时候,不会被其他更高优先级的中断打断,我们可以在最开始禁止全局中断(禁止 IRQ、FIQ中断),然后在末尾打开全局中断。
- 禁止全局中断
- 设置各个模式下的SP指针。
- 清除 bss 段。
- 打开全局中断
- 跳转到 main 函数
二、汇编实现 Reset 中断服务函数
1、禁止/打开全局中断
这里我们可以操作 CPSR 寄存器来实现,但汇编给我们提供了简单快捷的指令来禁用/打开全局中断
| 指令 | 描述 |
| cpsid i |
ARM汇编实现Reset中断服务函数详解

文章详细阐述了Reset中断服务函数的实现步骤,包括禁止/打开全局中断,设置SP指针,清除bss段,并给出了具体的汇编代码示例,如使用CPSR指令控制IRQ和FIQ中断,以及不同工作模式下SP指针的设置方法。
最低0.47元/天 解锁文章
440

被折叠的 条评论
为什么被折叠?



