cortexm3处理器工作模式及中断过程_第1页
cortexm3处理器工作模式及中断过程_第2页
cortexm3处理器工作模式及中断过程_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、cortexm3 处理器工作模式及中断过程1.工作模式线程模式( Thread mode):处理器复位或异常退出时为此模式。处理模式( Handler mode):出现异常(包括中断)时进入此模式,此模式下所有代码为特权访问。2.工作状态 Thumb 状态(正常执行指令状态)和调试状态3.代码限权特权访问:对处理器资源拥有完全访问限权;处理器复位后进入此访问模式;清零CONTROL0 进入用户模式。用户访问:禁止访问多数系统寄存器。只能通过进入异常(中断)来返回特权模式。4.M3 寄存器r0-r12: 通用寄存器,其中r8-r12 只能被 32 位指令访问。r13 (SP):堆栈指针;线程模式

2、时可以在线程堆栈和主堆栈之间切换,但处理模式只使用主堆栈。两个堆栈同一时刻只有一个可见,进入、退出异常时自动切换堆栈。r14(LR ):链接寄存器,保存子程序或异常的返回地址(要实现嵌套,必须入栈)。r15 (PC):程序计数器xPSR:特殊用途的程序状态寄存器5.异常进入异常步骤:1处理器在当前堆栈上把xPSR、PC、LR 、r12、r3r0 八个寄存器自动依次入栈。2读取向量表(如果是复位中断,更新SP 值)3根据向量表更新 PC 值4加载新 PC 处的指令( 2、3、 4 步与 1 步同时进行)5更新 LR 为 EXC_RETURN ( EXC_RETURN 表示退出异常后返回的模式及使用的堆栈) 。退出异常步骤:1.根据 EXC_RETURN 指示的堆栈,弹出进入中断时被压栈的 8 个寄存器。2.从刚出栈的IPSR 寄存器 8:0 位检测恢复到那个异常(此时为嵌套中断中),若为 0 则恢复到线程模式。3.根据 EXC_RETURN, 选择使用相应SP。末尾连锁 ( Tail-chaining ):当前正在执行中断,又有一个中断到来且这个中断优先级比正在执行的中断优先级低(如果有其他被压栈的低优先级中断则要比这些中断优先级高),这个中断暂时被挂起,等到当前中断执行完后不再执行堆栈操作,而直接进入挂起的中断。迟来:前一个中断还没有进入执行阶段(但处理器状态已经保存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论