米尔科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

KEIL写IRQ握手函数的问题

问题类别: > 浏览次数:4033
发布日期: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}^