第7章 Cor的tex-M3 异常和中断.pptx

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 Cor的tex-M3 异常和中断

第7章 Cortex-M3 异常和中断7.1 异常7.2 NVIC 和中断控制7.1 异常7.1.1 异常类型所有能打断正常执行流的事件都称为异常。CM3支持为数众多的系统异常和外部中断。编号为1~15的对应系统异常;编号为16~255的对应外部中断大部分的异常可编程优先级,其中很少的一些有固定的优先级。当前运行的异常值,是由特殊寄存器IPSR??或NVIC的中断控制状态寄存器表示的。编号类型优先级描述1复位-3 (最高)复位2NMI2 不可屏蔽中断(外部NMI 输入)3硬异常-1所有被除能的fault,都将“上访”(escalation)成硬fault。只要FAULTMASK没有置位,硬fault服务例程就被强制执行。Fault被除能的原因包括被禁用,或者PRIMASK/BASEPRI被掩蔽。若FAULTMASK也置位,则硬fault也被除能,此时彻底“关中” 4MemManage fault 可编程存储器管理fault,MPU访问违例以及访问非法位置均可引发。企图在“非执行区”取指也会引发此fault 5总线fault 可编程从总线系统收到了错误响应,原因可以是预取流产(Abort)或数据流产,企图访问协处理器也会引发此fault 6用法(usage) fault可编程由于程序错误导致的异常。通常是使用了一条无效指令,或者是非法的状态转换,例如尝试切换到ARM状态 续编号类型优先级描述7-10保留N/A—11SVCall可编程执行系统服务调用指令(SVC)引发的异常 12调试监视器可编程调试监视器(断点,数据观察点,或者是外部调试请求) 13保留N/A—14PendSV 可编程为系统设备而设的“可悬挂请求” 15SysTick 可编程系统滴答定时器 16IRQ#0可编程外中断#0 17IRQ#1可编程外中断#1…………255IRQ#239可编程外中断#2397.1.2 优先级定义在CM3中,优先级决定一个异常是否能被掩蔽,以及在未掩蔽的情况下何时可以响应。优先级的数值越小,则优先级越高。CM3支持中断嵌套,使得高优先级异常会抢占(preempt)低优先级异常。3个系统异常:复位,NMI以及硬fault,它们有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常。所有其它异常的优先级则都是可编程的。CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。但是,绝大多数CM3芯片都会精简设计,裁掉表达优先级的几个低端有效位,以减少优先级的级数,如8级,16级,32级等。3 比特优先级Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0用于表达优先级不使用, 读出值为04比特优先级Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0用于表达优先级不使用, 读出值为0优先级寄存器的最小宽度值为3比特。3位或4位宽度的可用优先级通过让优先级以MSB对齐,可以简化程序的跨器件移植。分别使用3-bit, 5-bit, 和8-bit 优先级寄存器的使用情况:优先级异常类型3比特表达5比特表达8比特表达-3 (Highest)复位-3-3-3-2NMI-2-2-2-1硬件错误-1-1-101…0xFF具有优先级并且可编程的异常0x000x20…0xE00x000x08…0xF80x00, 0x010x02, 0x03…0xFE, 0xFF抢占优先级和亚优先级通过NVIC中“应用程序中断及复位控制寄存器”的位段“PRIGROUP优先级组”设置。该位段的值对每一个优先级可配置的异常都有影响,把其优先级分为2个位段:MSB所在的位段(左边的)对应抢占优先级,而LSB所在的位段(右边的)对应亚优先级。抢占优先位段和亚优先级位段在优先级寄存器中的定义优先组抢占优先级位段亚优先级位段0Bit [7:1]Bit [0]1Bit [7:2]Bit [1:0]2Bit [7:3]Bit [2:0]3Bit [7:4]Bit [3:0]4Bit [7:5]Bit [4:0]5Bit [7:6]Bit [5:0]6Bit [7]Bit [6:0]7NoneBit [7:0]应用程序中断和复位控制寄存器(地址0xE000ED0C)Bits名称类型复位值描述31:16VECTKEYR/W—存取关键字;为了写入这个寄存器必须向这个位段写人 0x05FA15ENDIANNESSR—表示数据的排列顺序: 1 表示大端(BE8) 而0表示小端10:8PRIGROUPR/W0优先组2SYSRESETREQW—请求芯片控制逻辑产生一个复位信号1VECTCLRACTIVEW—清除异常的所有活跃状态信息0VECTRESETW—复位Cortex-M3 处理器。 但不会复位处理器以外

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档