周立功单片机课件

上传人:我*** 文档编号:141517427 上传时间:2020-08-09 格式:PPT 页数:67 大小:575KB
返回 下载 相关 举报
周立功单片机课件_第1页
第1页 / 共67页
周立功单片机课件_第2页
第2页 / 共67页
周立功单片机课件_第3页
第3页 / 共67页
周立功单片机课件_第4页
第4页 / 共67页
周立功单片机课件_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《周立功单片机课件》由会员分享,可在线阅读,更多相关《周立功单片机课件(67页珍藏版)》请在金锄头文库上搜索。

1、第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.中断延迟 11.复位 12.存储器及存储器映射I/O 13.寻址方式简介 14.ARM7指令简介 15.协处理器接口 16.调试接口简介 17.ETM接口简介,3.9 异常,简介,只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM7TDMI内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。 如果同时发生两个或更多异常,那么将按

2、照固定的顺序来处理异常,详见“异常优先级”部分。,异常入口/出口汇总,注意:“MOVS PC,R14_svc”是指在管理模式执行MOVS PC,R14指令。“MOVS PC,R14_und”、“SUBS PC,R14_abt,#4”等指令也是类似的。,3.9 异常,异常的入口和出口处理,如果异常处理程序已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。,SUB LR,LR,#4;计算返回地址 STMFD SP!,R0-R3,LR;保存使用到的寄存器 . . . LDMFD SP!,R0-R3,PC;中断返回,中断处理代码的开始部分和退出部分,如果异常处理程序

3、已经把返回地址拷贝到堆栈,那么可以使用一条多寄存器传送指令来恢复用户寄存器并实现返回。,中断处理代码的开始部分和退出部分,3.9 异常,异常的入口和出口处理,SUB LR,LR,#4;计算返回地址 STMFD SP!,R0-R3,LR;保存使用到的寄存器 . . . LDMFD SP!,R0-R3,PC;中断返回,注意:中断返回指令的寄存器列表(其中必须包括PC)后的“”符号表示这是一条特殊形式的指令。这条指令在从存储器中装载PC的同时(PC是最后恢复的),CPSR也得到恢复。这里使用的堆栈指针SP(R13)是属于异常模式的寄存器,每个异常模式有自己的堆栈指针。这个堆栈指针应必须在系统启动时初

4、始化。,3.9 异常,进入异常,在异常发生后,ARM7TDMI内核会作以下工作:,1.在适当的LR中保存下一条指令的地址,当异常入口来自: ARM状态,那么ARM7TDMI将当前指令地址加4或加8复制(取决于异常的类型)到LR中; 为Thumb状态,那么ARM7TDMI将当前指令地址加4或加8 (取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。,3.9 异常,进入异常,在异常发生后,ARM7TDMI内核会作以下工作:,2.将CPSR复制到适当的SPSR中; 3. 将CPSR模式位强制设置为与异常类型相对应的值; 4.强制PC从相关的异常向量处取指。,ARM7TDMI内核在中断异常时

5、置位中断禁止标志,这样可以防止不受控制的异常嵌套。 注:异常总是在ARM状态中进行处理。当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。,3.9 异常,进入异常,当异常结束时,异常处理程序必须: 1.将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同; 2.将SPSR的值复制回CPSR; 3.清零在入口置位的中断禁止标志。 注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。,3.9 异常,退出异常,图示进入异常过程,1. 程序在系统模式下运行用户程序,假定当前处理器状态为Thumb状态、允许IRQ中断;,2. 用户程序运行时

6、发生IRQ中断,硬件完成以下动作:,置位I位(禁止IRQ中断) 清零T位(进入ARM状态) 设置MOD位,切换处理器模式至IRQ模式,将下一条指令的地址存入IRQ模式的LR寄存器,将CPSR寄存器内容存入IRQ模式的SPSR寄存器,将跳转地址存入PC,实现跳转,BackAddr,JumpAddr,“?”表示对该位不关心,在异常处理结束后,异常处理程序完成以下动作:,图示退出异常过程,将SPSR寄存器的值复制回CPSR寄存器;,将LR寄存的值减去一个常量后复制到PC寄存器,跳转到被中断的用户程序。,BackAddr,JumpAddr,return,BackAddr-4,“?”表示对该位不关心,快

7、速中断请求(FIQ)适用于对一个突发事件的快速响应,这得益于在ARM状态中,快中断模式有8个专用的寄存器可用来满足寄存器保护的需要(这可以加速上下文切换的速度)。 不管异常入口是来自ARM状态还是Thumb状态,FIQ处理程序都会通过执行下面的指令从中断返回: SUBS PC,R14_fiq,#4 在一个特权模式中,可以通过置位CPSR中的F位来禁止FIQ异常。,3.9 异常,快速中断请求,中断请求(IRQ)异常是一个由nIRQ输入端的低电平所产生的正常中断(在具体的芯片中,nIRQ由片内外设拉低,nIRQ是内核的一个信号,对用户不可见)。IRQ的优先级低于FIQ。对于FIQ序列它是被屏蔽的。

8、任何时候在一个特权模式下,都可通过置位CPSR中的I 位来禁止IRQ。 不管异常入口是来自ARM状态还是Thumb状态,FIQ处理程序都会通过执行下面的指令从中断返回: SUBS PC,R14_fiq,#4,3.9 异常,中断请求,中止发生在对存储器的访问不能完成时,中止包含两种类型: 预取中止 发生在指令预取过程中 数据中止 发生在对数据访问时,3.9 异常,中止,当发生预取中止时,ARM7TDMI内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常。如果指令在流水线中因为发生分支而没有被执行,中止将不会发生。 在处理中止的原因之后,不管处于哪种处理器操作状态,处理程序都会执

9、行下面的指令恢复PC和CPSR并重试被中止的指令: SUBS PC,R14_abt,#4,3.9 异常,中止预取指中止,当发生数据中止后,根据产生数据中止的指令类型作出不同的处理:,3.9 异常,中止数据中止,数据转移指令(LDR、STR)回写到被修改的基址寄存器。中止处理程序必须注意这一点; 交换指令(SWP)中止好像没有被执行过一样(中止必须发生在SWP指令进行读访问时) ;,块数据转移指令(LDM,STM)完成。 当回写被设置时,基址寄存器被更新。在指示出现中止后,ARM7TDMI内核防止所有寄存器被覆盖。这意味着ARM7TDMI内核总是会保护被中止的LDM指令中的R15(总是最后一个被

10、转移的寄存器)。,3.9 异常,中止数据中止,当发生数据中止后,根据产生数据中止的指令类型作出不同的处理:,在修复产生中止的原因后,不管处于哪种处理器操作状态,处理程序都必须执行下面的返回指令 : SUBS PC,R14_abt,#8,3.9 异常,中止数据中止,使用软件中断(SWI)指令可以进入管理模式,通常用于请求一个特定的管理函数。SWI处理程序通过执行下面的指令返回: MOVS PC,R14_svc 这个动作恢复了PC和CPSR并返回到SWI之后的指令。SWI处理程序读取操作码以提取SWI函数编号。,3.9 异常,软件中断指令,当ARM7TDMI处理器遇到一条自己和系统内任何协处理器都

11、无法处理的指令时,ARM7TDMI内核执行未定义指令陷阱。软件可使用这一机制通过模拟未定义的协处理器指令来扩展ARM指令集。 注:ARM7TDMI处理器完全遵循ARM结构v4T,可以捕获所有分类未被定义的指令位格式。,3.9 异常,未定义的指令,在模拟处理了失败的指令后,陷阱程序执行下面的指令: MOVS PC,R14_svc 这个动作恢复了PC和CPSR并返回到未定义指令之后的指令。,3.9 异常,未定义的指令,异常向量,注:表中的I和F表示不对该位有影响,保留原来的指。,当多个异常同时发生时,一个固定的优先级系统决定它们被处理的顺序:,3.9 异常,异常优先级,注意: 未定义的指令和SWI

12、异常互斥。因为同一条指令不能既是未定义的,又能产生有效的软件中断; 当FIQ使能,并且FIQ和数据中止异常同时发生时,ARM7TDMI内核首先进入数据中止处理程序,然后立即跳转到FIQ向量。在FIQ处理结束后返回到数据中止处理程序。数据中止的优先级必须高于FIQ以确保数据转移错误不会被漏过。,3.9 异常,异常优先级,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.中断延迟 11.复位 12.存储器及存储器映射I/O 13.寻址方式简介 14

13、.ARM7指令简介 15.协处理器接口 16.调试接口简介 17.ETM接口简介,3.10 中断延迟,最大中断延迟,Tsyncmax,请求通过同步器的最长时间。为2个处理器周期(由内核决定);,当FIQ使能时,最坏情况是正在执行一条装载所有寄存器的指令“LDM”(它耗时最长),同时发生了FIQ和数据中止异常,在响应FIQ中断之前要先把正在执行的指令完成,然后先进入数据中止异常,再马上跳转到FIQ异常入口,所以延迟时间包含:,3.10 中断延迟,最大中断延迟,Tldm,最长的指令执行需要的时间。Tldm在零等待状态系统中的执行时间为20个周期。注意,是在零等待状态系统中。一般的基于ARM7核的芯

14、片的存储器系统比内核速度慢,造成其不是零等待的; Texc,数据中止入口的时间。Texc为3个周期(由内核决定); Tfiq,FIQ入口的时间。Tfiq为2个周期(由内核决定)。,3.10 中断延迟,最大中断延迟,FIQ总的延迟时间= Tsyncmax +Tldm +Texc +Tfiq=27个周期 在40MHz处理器时钟时,最大延迟时间略少于0.7us。在此时间结束后,ARM7TDMI执行位于0 x1C处的指令。 最大的IRQ延迟时间与之相似,但必须考虑到这样一种情况,当更高优先级的FIQ和IRQ同时申请时,IRQ要延迟到FIQ处理程序允许IRQ中断时才处理(可能需要对中断控制器进行相应的操

15、作)。IRQ延迟时间也要相应增加。,3.10 中断延迟,最小中断延迟,FIQ或IRQ的最小中断延迟是请求通过同步器的时间Tsyncmin加上Tfiq(共4个处理器周期)。,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.中断延迟 11.复位 12.存储器及存储器映射I/O 13.寻址方式简介 14.ARM7指令简介 15.协处理器接口 16.调试接口简介 17.ETM接口简介,3.11 复位,复位,当nRESET信号被拉低时(一般外部复位引脚

16、电平的变化和芯片的其它复位源会改变这个内核信号),ARM7TDMI处理器放弃正在执行的指令。 在复位后,除PC和CPSR之外的所有寄存器的值都不确定。,3.11 复位,复位,当nRESET信号再次变为高电平时,ARM处理器执行下列操作: 1.强制M4:0变为b10011(管理模式); 2.置位CPSR中的I和F位; 3.清零CPSR中的T位; 4.强制PC从地址0 x00开始对下一条指令进行取指; 5.返回到ARM状态并恢复执行 。,第3章 目录,1.简介 2.ARM7TDMI 3.ARM7TDMI的模块和内部框图 4.体系结构直接支持的数据类型 5.处理器状态 6.处理器模式 7.内部寄存器 8. 程序状态寄存器,9.异常 10.中断延迟 11.复位 12.存储器及存储器映射I/O 13.寻址方式简介 14.ARM7指令简介 15.协处理器接口 16.调试接口简介 17.ETM接口简介,3.12 存储器及存储器映射I/O,简介,ARM7TDMI处理器采用冯诺依曼(Von Neumann)结构,指令和数据共用一条32位数据总线。只有装

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号