第7章 Cortex-M3 异常和中断.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 Cortex-M3 异常和中断 7.1 异常 7.2 NVIC 和中断控制 1 7.1.1 异常类型 所有能打断正常执行流的事件都称为异常。CM3支持为数众多的系统异常和外部中断。 编号为1~15的对应系统异常;编号为16~255的对应外部中断 大部分的异常可编程优先级,其中很少的一些有固定的优先级。 当前运行的异常值,是由特殊寄存器IPSR​​或NVIC的中断控制状态寄存器表示的。 2 7.1 异常 编号 类型 优先级 描述 1 复位 -3 (最高) 复位 2 NMI 2 不可屏蔽中断(外部NMI 输入) 3 硬异常 -1 所有被除能的fault,都将“上访”(escalation)成硬fault。只要FAULTMASK没有置位,硬fault服务例程就被强制执行。Fault被除能的原因包括被禁用,或者PRIMASK/BASEPRI被掩蔽。若FAULTMASK也置位,则硬fault也被除能,此时彻底“关中” 4 MemManage fault 可编程 存储器管理fault,MPU访问违例以及访问非法位置均可引发。企图在“非执行区”取指也会引发此fault 5 总线fault 可编程 从总线系统收到了错误响应,原因可以是预取流产(Abort)或数据流产,企图访问协处理器也会引发此fault 6 用法(usage) fault 可编程 由于程序错误导致的异常。通常是使用了一条无效指令,或者是非法的状态转换,例如尝试切换到ARM状态 3 编号 类型 优先级 描述 7-10 保留 N/A — 11 SVCall 可编程 执行系统服务调用指令(SVC)引发的异常 12 调试监视器 可编程 调试监视器(断点,数据观察点,或者是外部调试请求) 13 保留 N/A — 14 PendSV 可编程 为系统设备而设的“可悬挂请求” 15 SysTick 可编程 系统滴答定时器 16 IRQ#0 可编程 外中断#0 17 IRQ#1 可编程 外中断#1 … … … … 255 IRQ#239 可编程 外中断#239 4 续 7.1.2 优先级定义 在CM3中,优先级决定一个异常是否能被掩蔽,以及在未掩蔽的情况下何时可以响应。 优先级的数值越小,则优先级越高。 CM3支持中断嵌套,使得高优先级异常会抢占(preempt)低优先级异常。 3个系统异常:复位,NMI以及硬fault,它们有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常。 所有其它异常的优先级则都是可编程的。 CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。但是,绝大多数CM3芯片都会精简设计,裁掉表达优先级的几个低端有效位,以减少优先级的级数,如8级,16级,32级等。 5 3 比特优先级 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 用于表达优先级 不使用, 读出值为0 4比特优先级 优先级寄存器的最小宽度值为3比特。 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 用于表达优先级 不使用, 读出值为0 6 3位或4位宽度的可用优先级 7 通过让优先级以MSB对齐,可以简化程序的跨器件移植。 分别使用3-bit, 5-bit, 和8-bit 优先级寄存器的使用情况: 优先级 异常类型 3比特表达 5比特表达 8比特表达 -3 (Highest) 复位 -3 -3 -3 -2 NMI -2 -2 -2 -1 硬件错误 -1 -1 -1 0 1 … 0xFF 具有优先级并且可编程的异常 0x00 0x20 … 0xE0 0x00 0x08 … 0xF8 0x00, 0x01 0x02, 0x03 … 0xFE, 0xFF 8 抢占优先级和亚优先级 通过NVIC中“应用程序中断及复位控制寄存器”的位段“PRIGROUP优先级组”设置。该位段的值对每一个优先级可配置的异常都有影响,把其优先级分为2个位段:MSB所在的位段(左边的)对应抢占优先级,而LSB所在的位段(右边的)对应亚优先级。 抢占优先位段和亚优先级位段在优先级寄存器中的定义 优先组 抢占优先级位段 亚优先级位段 0 Bit [7:1] Bit [0] 1 Bit [7:2] Bit [1:0] 2 Bit [7:3] Bit [2:0] 3 Bit [7:4] Bit [3:0] 4 Bit [7:5] Bit [4:0] 5 Bit [7:6] Bit [5:0] 6 Bit [7] Bit [6:0] 7 None Bit [7:0] 9 应用程序中断和复位控制寄存器(地址0xE000ED0C) Bits 名称 类型 复位值 描述

文档评论(0)

a888118a + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档