- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
刘彦文等《Linux环境嵌入式系统开发基础》第2章研讨
⒉ 进入异常 ARM7TDMI处理器以如下方法处理一个异常: ⑴ 在对应的LR中保存下一条指令的地址。 异常处理不必确定进入异常前的状态。例如由SWI进入异常,MOVS PC,r14_svc总是返回到下一条指令,而不管SWI是在ARM或Thumb状态下被执行。 ⑵ 复制CPSR到应对的SPSR。 ⑶ 强制CPSR方式位成为某一个值,这个值取决于不同的异常。 ⑷ 强制PC从相关的异常向量处取下一条指令。 ⒊ 离开异常 当异常处理完时,异常处理程序必须: ⑴ 参考表2.4,对应不同类型的异常,直接传送LR到PC或从LR中减去一个偏移量送到PC。 ⑵ 复制SPSR到CPSR。 ⑶ 清除在进入异常时被设置的中断禁止标志。 将SPSR值恢复到CPSR的同时,自动地将T位的值恢复成进入异常前的值。 ⒋ 快速中断请求 快速中断请求(FIQ)异常支持数据传输或通道处理。在ARM状态,FIQ方式有8个分组寄存器,使用它们可以免除保存寄存器的要求。这是上下文切换最小开销的一种方法。 一个FIQ是外部产生的,是通过使nFIQ输入低电平实现的。输入通过一个同步器送到内核。 无论异常是从ARM状态或Thumb状态进入,FIQ处理程序从中断返回是通过执行: SUBS PC,r14_fiq,#4 指令来实现的。 FIQ异常能够被禁止,方法是在特权方式时设置CPSR的F标志位为1。当F标志位为0时,处理器在每条指令结束检测FIQ同步器输出是否为低电平。 ⒌ 中断请求 中断请求(IRQ)异常是一个通常的中断请求,在nIRQ输入低电平引起。IRQ优先级比FIQ低,并且在进入FIQ被屏蔽。nIRQ同样通过一个同步器传到内核。 无论异常从ARM状态或Thumb状态进入,IRQ处理程序从中断返回是通过执行: SUBS PC,r14_irq,#4 指令来实现的。 在任意时间可以禁止IRQ,方法是在特权方式时设置CPSR中I标志位为1。 ⒍ Abort ⑴ 中止一般介绍 中止处理程序必须: ① 确定中止原因,使请求的数据可用。 ② 用LDR Rn,[r14_abt,#-8]指令,取回引起中止的指令,确定那条指令是否指定了回写基址寄存器,如果是这样,中止处理程序还必须: 从这条指令确定对基址寄存器回写的偏移量是多少; 当中止处理程序返回时,使用相反的偏移量重装到基址寄存器。 ⑵ 两种类型的中止 预取中止发生在指令预取期间; 数据中止发生在数据存取期间。 ① 预取中止 ② 数据中止 ⒎ 软件中断指令 软件中断指令(SWI)用于进入管理方式,一般用于请求一个特殊的管理功能。SWI处理程序读SWI指令低24位取出SWI功能号,SWI功能号也称为中断类型号。 SWI处理程序执行以下指令返回,并不区别处理器的操作状态: MOVS PC,r14_svc 指令的作用是恢复PC和CPSR,返回到SWI指令的下一条指令。 ⒏ 未定义指令 当ARM7TDMI处理器遇到一条指令,这条指令即不是ARM7TDMI处理器的指令,又不是系统内任何协处理器能处理的指令,ARM7TDMI产生未定义指令陷阱。软件能够用这一机制通过仿真未定义的协处理器指令去扩展ARM指令集。 从陷阱处理程序返回,不区别处理器的操作状态,执行如下指令: MOVS PC,r14_und 这条指令的作用是恢复CPSR并且返回到未定义指令的下一条指令。 ⒐ 异常向量 表2.5(p38)给出了异常向量的地址。表中I和F分别表示CPSR中的IRQ和FIQ中断禁止位先前的值。 ⒑ 异常优先级 当多个异常同时发生,固定的优先级系统确定了它们被处理的次序,优先级次序见表2.6(p38)。 2.4.7 中断延迟 ⒈ 最大中断延迟 ⒉ 最小中断延迟 2.4.8 Reset 当nRESET信号变低,复位(reset)出现,ARM7TDMI放弃正在执行的指令,并且仍然对预取的字或半字指令继续增大在地址总线上的地址。 2.5 OMAP3530微处理器 2.5.1 OMAP3530微处理器概述 OMAP3530微处理器内部集成的MPU,使用了工作频率为600MHz的、采用ARMv7体系结构的ARM Cortex A8核,以及NEON SIMD(Single Instruction Multiple Data,单指令多数据)协处理器。 OMAP3530微处理器内部IVA2.2(Image Video Audio,影像视频音频)加速器子系统,采用了频率为430MHz的TMS320DMC64x+数字信号处理器核,增强型DMA控制器及视频硬件加速器。TMS320D
文档评论(0)