KEIL写IRQ握手函数的问题
问题类别:ARM软件工具 > Keil MDK | 浏览次数:6535 |
发布日期:2012/4/23 17:28:49 | 文章来源:完美体育·(中国)手机网页版科技 |
回复日期:2020/12/20 9:54:54 |
环境说明
MDK-ARM中国版3.05以上分析描述
IRQ的处理时,那些是内核完成的?那些是要我们用指令来完成的?问题解答
当异常产生时, ARM core:
拷贝 CPSR 到 SPSR_<mode>
设置适当的 CPSR 位:
改变处理器状态进入 ARM 状态
问题解答:
改变处理器模式进入相应的异常模式
设置中断禁止位禁止相应中断 (如果需要)
保存返回地址到 LR_<mode>
设置 PC 为相应的异常向量
ARM退出中断的时候是由指令完成的
从SWI 和 Undef异常返回
MOVS pc,lr
从FIQ, IRQ 和 预取异常(Prefect Abort)返回
SUBS pc,lr,#4
从数据异常( Data Abort)返回
SUBS pc,lr,#8 n
如果 LR之前被压栈的话使用LDM “ ^”
LDMFD sp!,{pc}^