中断软硬件流程

在这里插入图片描述


  1. cpu进入相应的异常模式
  2. pc = 异常处理入口(固定地址)

  1. 中断发生:
    1. 保存‘别人’的状态
    2. 初始化相关寄存器(中断控制器:使能/禁止;分辨:状态寄存器;优先级;;外部引脚:高低电平出发或者上升沿下降沿出发;引脚设置或硬件相关设置(GPIO/UART))
    3. 使能中断
  2. 中断处理:
    1. 分辨中断源
    2. 进行不同的处理
    3. 清理工作(清中断)
  3. 恢复:恢复别人的状态

ARM 内核SP,LR,PC寄存器

  • 1、堆栈指针r13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式、非异常模式(用户模式和系统模式),都有各自独立的堆栈,用不同的堆栈指针来索引。这样当ARM进入异常模式的时候,程序就可以把一般通用寄存器压入堆栈,返回时再出栈,保证了各种模式下程序的状态的完整性。

  • 2、连接寄存器r14(LR):每种模式下r14都有自身版组,它有两个特殊功能。

  • 保存子程序返回地址。使用BL或BLX时,跳转指令自动把返回地址放入r14中;子程序通过把r14复制到PC来实现返回,通常用下列指令之一:

                        MOV PC, LR 
                        BX LR
  • 通常子程序这样写,保证了子程序中还可以调用子程序。
                stmfd sp!, {lr}
                         ……
                ldmfd sp!, {pc}

(2)当异常发生时,异常模式的r14用来保存异常返回地址,将r14如栈可以处理嵌套中断。

- 3、程序计数器r15(PC):PC是有读写限制的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值