基于μC-OSII和ARM7 中断机制的IRQ中断响应机制改进及优化解决方案.doc
《基于μC-OSII和ARM7 中断机制的IRQ中断响应机制改进及优化解决方案.doc》由会员分享,可在线阅读,更多相关《基于μC-OSII和ARM7 中断机制的IRQ中断响应机制改进及优化解决方案.doc(3页珍藏版)》请在三一文库上搜索。
1、基于C/OSII和ARM7 中断机制的IRQ中断响应机制改进及优化解决方案如今,在嵌入式处理器芯片中,以ARM7为核心的处理器是应用较多的一种。它具有多种工作模式,并且支持两种不同的指令集(标准32位ARM指令集和16位Thumb指令集)。C/OSII是专为嵌入式应用设计的抢占式、多任务实时操作系统,可用于各类8位、16位和32位单片机或DSP。C/OSII向ARM7移植具有得天独厚的优点,因此,C/OSII+ARM7成为广泛应用的一款平台。不管是哪种型号的ARM处理器,也无论该嵌入式系统中是否有操作系统,在计算机与外界实时交互的过程中,中断技术都是一项关键的技术。当外部事件发生时,CPU必须
2、及时响应中断以实现对相应事件的处理,因此能否中断嵌套是影响嵌入式系统实时性能的主要因素。1 ARM7的中断处理ARM7处理器的中断主要有两种,本文主要讨论IRQ中断异常的响应机制。当中断请求IRQ到来使CPU进入中断响应时,CPU将会自动完成下列工作:首先,将PC、CPSR的当前值存入中断模式的LR、SPSR中;然后,操作CPSR中的运行状态位,使CPU进入中断模式并关闭中断;最后将PC的值改成0x00000018,从而使CPU的执行跳转到IRQ中断入口0x00000018处。异常向量表中的0x00000018处使用一条LDR PC,PC,#0xff0指令,在IRQ处使用的这条指令与其他向量不
3、同。当CPU执行这条指令但还没有跳转时,PC的值为0x00000020(因为ARM7TDMI内核是三级流水结构),0x00000020减去0x00000FF0为0xFFFFF030,这是VIC的特殊寄存器VICVectAddr的地址单元。这个寄存器保存当前将要服务的IRQ的中断服务程序的入口,故读取VICVectAddr寄存器的值,然后放入PC程序指针,即跳转到相应中断服务程序,从而使CPU开始执行中断服务程序。2 Handler宏分析C/OSII+ARM7系统中,只使用了ARM7的IRQ中断。由于不同的ARM芯片的中断系统并不完全一样,因此不可能编写出对所有使用ARM核的处理器通用的中断及时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于C-OSII和ARM7 中断机制的IRQ中断响应机制改进及优化解决方案 基于 OSII ARM7 中断 机制 IRQ 响应 改进 优化 解决方案
链接地址:https://www.31doc.com/p-3416749.html