ARM中断处理及状态机嵌套实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM中断处理及状态机嵌套实现
1.ARM7 提供两种级别的中断, FIQ(Fast Interrupt Request 快中断) 一般中断低速反应中断IRQ。

所有的中断请求一旦产生则中断反应会经过三个步骤 a. 输入阶段这个逻辑可以根据中断源被实现,需要0-2 个时钟周期 b.EIC 自身处理
2 个时钟周期 c.ARM7 的逻辑处理2.EIC Enhanced Interrupt Controller 增强型中断控制器EIC 硬件处理多路中断,中断优先运算和矢能。

a.32 路可屏蔽的中断, 映射到ARM 的CPU 中断请求总线 b.每路16 级可编程优先级映射IRQ c.硬件支持最大16 个中断嵌套 d.2 路可屏蔽的中断通过FIQ 中断请求总线 e.在0x18 处的寄存器装载的是最高优先及中断用户自定义的中断处理地址 f.16 个XTI
块外部中断3.中断处理过程 1.检查相关中断的请求屏蔽位 2.比较所有中断请
求的优先级,IRQ 当前中断是否优先级高于当前存储的中断。

3.自动装载EIC_SIRn[31:16]位用户自定义地址进入EIC_IVR[15:0]中 4.手动装载用户中断处理高16 位地址进入EIC_IVR[31:16] 5.当新产生一个中断则保存先前的中断优先级进入优先栈中。

6.当新的中断被接受则用新的优先级更新当前中断优先
级寄存器EIC_ICR 中断控制寄存器31-2 保留1. FIQ_EN:RW 是FIQ 允许的标志位置1 开启置0 关闭0.IRQ_EN:RW 是IRQ 允许的标志位置1 开启置0 关闭EIC_CICR 中断频道控制寄存器31-5 保留4-0.CIC[4:0]:R 是当前中断的序号, 是第几号中断由中断请求发生时硬件写入
EIC_CIPR 当前中断优先级寄存器31-4 保留3-0 CIP[3:0]:rw 是当前中断的优先级,在IRQ 总线上会自动探测进入的中断请求优先级和当前的优先级的高低。

EIC_IVR 中断矢量寄存器IVR[31-16]:IRQ 用户写入的在程序初始化时,是中断
服务的高16 位地址IVR[15-0]:I 在中断请求接受后,从EIC_SIRn[31-16]的自定
义服务程序地址拷贝过来。

相关文档
最新文档