中断框架的简单介绍

中断框架

中断框架可分为两个部分:

  1. 中断相关电路的初始化
  2. 中断信号响应

中断相关电路初始化

首先要配置中断源,使其能发出中断信号。接着设置中断的触发方式。中断触发方式有两种,边沿触发和电平触发。其中,边沿触发分为上升沿触发和下降沿触发,电平触发分为高电平触发和低电平触发。接着要使中断信号能顺利通过GIC电路 。GIC是ARM公司提供的一个通用中断管理电路。是联系CPU和外设中断的桥梁,负责检测、管理和分发中断。最后cpu要打开中断使能开关 。cpu状态寄存器的第6、7位分别是FIQ disable 和 IRQ disable。只有在中断屏蔽标志为“0”时,CPU才可以受理中断。

即电路初始化需要做的工作有:

  1. 配置中断源
  2. 设置中断的触发方式
  3. 使中断信号能顺利通过GIC电路
  4. cpu打开中断使能开关

中断信号的响应

cpu接收到中断时,首先要判断中断的类型,切换工作模式。将寄存器r0~r12的内容压入栈中。接着要将CPRS的内容保存到SPSR,将PC的内容保存到 lr,完成现场保护,并且跳到异常入口。

接着是中断处理的过程,实现用户要处理的业务代码.

处理完中断之后,cpu要恢复现场。首先切换工作模式,将 r0~r12 的内容出栈,将SPSR的内容给CPSR。最后通过 lr 里保存的地址跳回到之前的代码并继续执行。

即中断处理的过程主要是

  1. 现场保护
  • 判断中断类型,切换工作模式
  • 将寄存器r0~r12的内容入栈,CPRS的内容保存到SPSR
  • 将PC的内容保存到 lr,而后跳到异常入口
  1. 真正的中断处理
    实现用户的业务代码

  2. 恢复现场
    恢复现场
    恢复现场
  • 切换工作模式
  • r0~r12 的内容出栈,SPSR的内容给CPSR
  • pc=lr,继续执行之前代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值