ARM中断

1. ARM处理器的工作模式

2. FIQ的响应速度比IRQ快的原因

1)优先级高   

2FIQ的异常向量在末端,直接把异常程序写在后面,省去了跳转时间;

3)私有寄存器个数多,许多保存cpu自动保存,不用压栈

 

3. 异常发生时CPU的处理步骤

ARM处理器的动作(自动完成)

1)拷贝 CPSR 到SPSR_<mode>

2)  修改CPSR:a. 改变处理器状态进入ARM状态;

                          b. 改变处理器模式进入相应的异常模式;

                           c. 设置中断禁止位进制相应中断(如果需要)

3)保存返回地址到 LR_<mode>

4)  设置PC为相应的异常向量(跳转到异常向量表中对应的位置) 

 

4. 异常处理完成后,返回时需要(用户自己完成)

1)从 SPSR_<mode> 恢复CPCR,使处理器恢复到异常前的状态

2)从LR_<mode>恢复PC,程序返回到被异常打断的位置继续执行

 

5. 中断服务程序需要满足以下要求

1)不能返回值;

2)不能向ISR传递参数;

3)ISR应该尽可能的短下精悍

4)printf函数会带来重入和性能问题,不能在ISR中调用

 

              

 

猜你喜欢

转载自blog.csdn.net/weixin_35762621/article/details/81268620