- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章-Cortex-M3-异常和中断
第7章 Cortex-M3 异常和中断
7.1 异常
7.2 NVIC 和中断控制
;7.1.1 异常类型
所有能打断正常执行流的事件都称为异常。CM3支持为数众多的系统异常和外部中断。
编号为1~15的对应系统异常;编号为16~255的对应外部中断
大部分的异常可编程优先级,其中很少的一些有固定的优先级。
当前运行的异常值,是由特殊寄存器IPSR??或NVIC的中断控制状态寄存器表示的。
;编号;编号;7.1.2 优先级定义
在CM3中,优先级决定一个异常是否能被掩蔽,以及在未掩蔽的情况下何时可以响应。
优先级的数值越小,则优先级越高。
CM3支持中断嵌套,使得高优先级异常会抢占(preempt)低优先级异常。
3个系统异常:复位,NMI以及硬fault,它们有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常。
所有其它异常的优先级则都是可编程的。
CM3支持3个固定的高优先级和多达256级的可编程优先级,并且支持128级抢占。但是,绝大多数CM3芯片都会精简设计,裁掉表达优先级的几个低端有效位,以减少优先级的级数,如8级,16级,32级等。;3 比特优先级;3位或4位宽度的可用优先级;分别使用3-bit, 5-bit, 和8-bit 优先级寄存器的使用情况:;抢占优先级和亚优先级
通过NVIC中“应用程序中断及复位控制寄存器”的位段“PRIGROUP优先级组”设置。该位段的值对每一个优先级可配置的异常都有影响,把其优先级分为2个位段:MSB所在的位段(左边的)对应抢占优先级,而LSB所在的位段(右边的)对应亚优先级。;应用程序中断和复位控制寄存器(地址0xE000ED0C);11;12;7.1.3 向量表
响应异常时,CM3需要定位其服务例程的入口地址。这些入口地址存储在所谓的“(异常)向量表”中。
缺省情况下,CM3认为该表位于零地址处,且各向量占用4字节。;通过设置NVIC中的向量表偏移寄存器,可以将向量表重定位到其它的内存地址。
向量表的起始地址:先求出系统中共有多少个向量,再把这个数字向上“圆整”到2的整次幂,而起始地址必须对齐到后者的边界上。
例:如果一共有32个中断,则共有32+16(系统异常)=48个向量,向上圆整到2的整次幂后值为64,因此向量表重定位的地址必须能被64*4=256整除,合法的起始地址为:0x0, 0x100, 0x200等。;7.1.4 中断输入和挂起行为
当中断输入脚被置为有效(assert)后,该中断就被悬起。即使后来中断源撤消了中断请求,已经被标记成悬起的中断也被记录下来。到了系统中它的优先级最高的时候,就会得到响应。
如果在某个中断得到响应之前,其悬起状态被清除了(例如,在PRIMASK或FAULTMASK置位的时候软件清除了悬起状态标志),则中断被取消。 ;当处理器开始执行一个中断,中断被激活,同时挂起位将被自动清除。;如果一个中断源持续保持中断响应型号活跃,在中断服务程序结束时,中断将被再次挂起。;如果一个中断在处理器执行前有多次脉冲,它将被视为一次中断请求,而不是多次。;如果在服务例程执行时,中断请求释放了,但是在服务例程返回前又重新被置为有效,则CM3会记住此动作,重新悬起该中断。;7.1.5 Fault异常
有若干个系统异常专用于fault处理。CM3中的Faults可分为以下几类:
总线faults
存储器管理faults
用法faults
硬faults
;欲使能总线fault服务例程,需要在NVIC的“系统Handler控制及状态寄存器”中置位BUSFAULTENA位。
发生了总线fault后,可通过NVIC中的“总线fault状态寄存器”(BFSR)确定产生fault的场合。;(2) 内存管理错误
常见的内存管理错误包括:
? 访问了所有MPU regions覆盖范围之外的地址
? 访问了没有存储器与之对应的空地址
? 往只读region写数据
? 用户级下访问了只允许在特权级下访问的地址 ;(3) 用法错误
可以引起用法错误的有:
执行了协处理器指令。Cortex-M3本身并不支持协处理器,但是通过fault异常机制,可以建立一套“软件模拟”的机制,来执行一段程序模拟协处理器的功能,从而可以方便地在其它Cortex处理器间移植。
执行了未定义的指令。同上一点的道理,亦可以软件模拟未定义指令的功能。
尝试进入ARM状态。因为CM3不支持ARM状态,所以用法fault会在切换时产生。软件可以利用此机制来测试某处理器是否支持ARM状态。
无效的中断返回(LR中包含了无效/错误的值)
使用多重加载/存储指令时,地址没有对齐。
另外,可以让CM3在遇到除数为零的时候,以及遇到未对齐访问的时候也产生用法fault。在NVIC中
您可能关注的文档
- 第5讲-VRP交互展示及Lua的应用.ppt
- 第5讲-中国产业政策.ppt
- 第5讲-静态工作点的选择与稳定.ppt
- 第5讲研究分支中的一类特殊现象——突变.ppt
- 第5课汇编作文集-课件.ppt
- 第6-2-追加特殊订货.ppt
- 第6章--WinInet编程.ppt
- 第6章-3多因素模型分析.ppt
- 第6章-ARM汇编伪指令与伪操作.ppt
- 第6章-固定收益证 券定价:三大关系与五大定理.ppt
- 装备制造业2025年自主创新与产业核心竞争力提升报告.docx
- 2025年农村地区新能源电动冷藏配送车市场潜力评估报告.docx
- 2025年能源行业储能技术多元化在储能电站运营中的能源管理与节能报告.docx
- 2025年食品添加剂在烘焙食品中的健康替代技术报告.docx
- 在线教育平台个性化学习路径推荐在2025年职业教育中的课程设计影响报告.docx
- 聚焦2025年:工业机器人产业技术创新与应用白皮书.docx
- 书法艺术教育互动直播平台在2025年的商业模式探究.docx
- 化工园区安全环保提升项目2025年社会稳定风险评估与安全监管报告.docx
- 能源互联网2025:建设现状与运营模式创新路径探讨.docx
- 跨境电商箱包服饰品牌全渠道营销渠道拓展与品牌影响力分析.docx
文档评论(0)