cortex-m3体系结构-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文档。上传文档
查看更多
指令1 指令2 指令3 指令4 …… …… 程序存储器 周期1 周期2 周期3 周期4 周期5 周期6 取指 译码 执行 取指 译码 执行 取指 译码 执行 取指 译码 执行 周期2 周期1 周期3 周期4 处理器执行一条指令的三个阶段 在第4个周期,指令1执行完成,指令2和指令3流水线推进一级,同时开始指令4的取指处理。 4 2.8 异常和中断 主要内容 异常和中断的概念 嵌套式向量中断控制器 中断、异常过程 抢占 咬尾 晚到 返回 2.8.1 异常和中断的概念 异常概念:在正常的程序执行过程中发生非正常情况(包括访问存储器(含取指)失败、遇到未定义指令、执行中断指令、数据溢出、调试程序、软复位等非正常情况)使CPU停止正在执行的程序,并转去执行相应的处理程序,这样的情况叫作异常。 中断:是指各种设备请求CPU处理特定的操作,包括传输信息、处理故障等。 异常是与程序同步的,中断是异步的随机的。 异常的处理方法与中断一样,后面不再区分。 系统异常(中断) 什么是异常? 只要正常的程序被暂时中止,处理器就进入异常模式。 异常包括复位、系统故障、外设中断等事件。 ARM Cortex-M3处理器的所有异常可以通过NVIC(嵌套向量中断控制器)进行控制,通过NVIC可以设置各个异常的优先等级并对异常进行处理。 所有异常都在处理器模式(Handler Mode)中处理。 系统异常(中断) Cortex-M3处理器有哪些异常? 系统复位、NMI(不可屏蔽中断)、硬件故障、存储器管理、总线故障、使用故障、SVCall(软件中断)、调试监控和IRQ中断等。 IRQ中断也分为CortexM3内自带的PendSV(系统服务请求)、SysTick(系统节拍定时器),和与芯片外设相关的外部中断。 异常类型表 异常 类型 位 置 优先 级 描 述 - 0 - 向量表的第一项,作为栈顶地址 复位 1 -3 (高) 在上电和热复位时调用。这是异步的。 不可 屏蔽 中断 2 -2 不可屏蔽(NMI) ,也不会被复位之外的任何异常抢占。可由软件通过NVIC中断控制状态寄存器产生。异步的。 硬故障 3 -1 当故障由于优先级或者是可配置的故障处理程序被禁能而无法激活时,都会以硬故障的方式激活。同步的。 存储器 管理 4 可调 MPU不匹配,包括访问冲突和不匹配。是同步的。 总线 故障 5 可调 预取指、存储器访问,即与地址/数据(代码)相关的故障。精确的总线故障是同步的,不精确的总线故障是异步的。 异常类型表 异常 类型 位置 优先级 描述 使用 故障 6 可调 使用故障,例如执行未定义的指令或试图进行非法的状态转变。这是同步的。 - 7-10 - 保留。 SVCall 11 可调 使用SWI指令的系统服务调用。同步的。 调试 监控器 12 可调 调试监控器(当没有暂停(Halt)时)。这是同步的,但仅在使能时有效。 - 13 - 保留。 PendSV 14 可调 系统服务的可挂起SWI指令。 SysTick 15 可调 系统节拍定时器中断。这是异步的。 外中断 16- 255 可调 中断在ARM Cortex-M3内核之外发出且通过NVIC返回(区分优先级)。这些都是异步的。 Cortex-M3 异常有哪些特点? 自动的状态保存和恢复。处理器在进入ISR之前将状态寄存器和部分寄存器自动压栈,退出ISR之后它们自动出栈,不需要多余的指令。 自动读取代码存储器或SRAM中包含ISR地址的向量表入口。该操作与状态保存同时执行。 支持末尾连锁,在末尾连锁中,处理器在两个ISR之间不需要对寄存器进行出栈和压栈操作的情况下处理背对背中断。 中断优先级可动态重新设置。 Cortex-M3与NVIC之间采用紧耦合(closely-coupled)接口,通过该接口可以及早地对中断和高优先级的迟来中断进行处理。 中断数目可配置为1~240。 中断优先级的数目可配置为1~8位(1~256级。Stellaris系列单片机只支持8级)。处理模式和线程模式具有独立的堆栈和特权等级。 使用C/C++标准的调用规范:ARM架构的过程调用标准(PCSAA)执行ISR控制传输。 优先级屏蔽支持临界区(关中断,使程序不被高优先级异常中断)。 异常基于优先级的动作---占先 用户程序 中断1 中断2 优先级2 中断1 中断2 压栈 压栈 出栈 出栈 产生嵌套 在异常处理程序中,一个新的异常比当前的异常优先级更高,处理器打断当前的流程,响应优先级更高的异常,此时产生中断嵌套。 异常基于优先级的动作---末尾连锁 用户程序 中断1

文档评论(0)

♀Panda♂ + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档