来自::http://blog.csdn.net/ffgamelife/article/details/6947300

1.      工作模式
线程模式(Thread mode):处理器复位或异常退出时为此模式。此模式下的代码可以是特权代码也可以是用户及代码,通过CONTROL[0]控制。
处理模式(Handler mode):出现异常(包括中断)时进入此模式,此模式下所有代码为特权访问。
2.      工作状态
Thumb状态(正常执行指令状态)和调试状态
3.      代码限权
特权访问:对处理器资源拥有完全访问限权;处理器复位后进入此访问模式;清零 CONTROL[0]进入用户模式。
用户访问:禁止访问多数系统寄存器。只能通过进入异常(中断)来返回特权模式。进入异常前是用户级访问,则退出异常时自动回到用户及,除非在异常中修改CONTROL[0]位。

4.      M3寄存器

r0-r12:通用寄存器,其中r8-r12只能被32位指令访问。

r13(SP):堆栈指针;线程模式时可以在线程堆栈和主堆栈之间切换,但处理模式只使用主堆栈。两个堆栈同一时刻只有一个可见,进入、退出异常时自动切换堆栈。

r14(LR):链接寄存器,保存子程序或异常的返回地址(要实现嵌套,必须入栈)。

r15(PC):程序计数器

xPSR:特殊用途的程序状态寄存器

5.      异常

进入异常步骤:

1.  处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。

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):当前正在执行中断,又有一个中断到来且这个中断优先级比正在执行的中断优先级低(如果有其他被压栈的低优先级中断则要比这些中断优先级高),这个中断暂时被挂起,等到当前中断执行完后不再执行堆栈操作,而直接进入挂起的中断。

迟来:前一个中断还没有进入执行阶段(但处理器状态已经保存),后面来了一个高优先级中,则前一个中断被抢占,后来的高优先级中断不需要再保存寄存器状态。

Cortex M3处理器工作模式及中断过程相关推荐

  1. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42375701 相关资源下载 :  -- 三星 ARM Archit ...

  2. 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )

    文章目录 一.ARM 处理器工作模式 二.ARM 架构模型 一.ARM 处理器工作模式 参考 [嵌入式开发]ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存 ...

  3. ARM处理器工作模式

    一.ARM体系的CPU有以下7种工作模式: 1.用户模式(usr):正常的程序执行状态 2.快速中断模式(fiq):用于支持高速数据传输或通道处理 3.中断模式(irq):用于普通中断处理 4.管理模 ...

  4. 嵌入式ARM设计编程(三) 处理器工作模式

    文章和代码已归档至[Github仓库:hardware-tutorial],需要的朋友们自取.或者公众号[AIShareLab]回复 嵌入式 也可获取. 一.实验目的 (1) 通过实验掌握学会使用ms ...

  5. 【嵌入式开发】ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存器 CPSR SPSR | 模式设置代码编写 | 设置 svc 模式 )

    一. 处理器工作模式相关介绍 1. 处理器模式简介 (1) 处理器工作模式分类 (2) 处理器不同工作模式区别 (3) Linux 系统运行的模式 (4) 特权模式 说明 (5) 异常模式 (6) 系 ...

  6. cortex m3的操作模式和状态

    1.操作状态(operation state): debug state:处理器在调试器发起halt或匹配到断点时,会进入debug state并停止执行指令. thumb state:处理器正在运行 ...

  7. [ARM] ARM处理器的7种工作模式和2种工作状态

    转载:https://blog.csdn.net/ly930156123/article/details/79219303 两种工作状态 1.ARM状态:32位,ARM状态执行字对齐的32位ARM指令 ...

  8. Cortex M3内核架构

    CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...

  9. ARM编程模式和7钟工作模式

    一. ARM的基本设定 1.1. ARM 采用的是32位架构 1.2. ARM约定: a. Byte : 8 bits b. Halfword :16 bits (2 byte) c. Word : ...

最新文章

  1. 习题4-1 求奇数和 (15 分)
  2. 【 MATLAB】Subspace algorithm Simulation of TOA - Based Positioning
  3. python写货币转换_如何在Python中将货币字符串转换为浮点数?
  4. 通过福禄克LinkIQ网络电缆测试仪排除 VLAN 故障
  5. C++走向远洋——63(项目二2、两个成员的类模板)
  6. 程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)
  7. 解决IE8 无法使用 JS 中Array() 的 indexOf 方法
  8. Android核心基础(五)
  9. 【Oracle】开、关、删归档日志(archivelog)
  10. JAVA集合二:HashMap和Hashtable
  11. CSS渲染器:将Photoshop Filters效果带入网络
  12. 牛客网SQL练习题(Mysql-8)
  13. html的细节优化,网页页面的细节优化策略
  14. 锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总
  15. 电子线路(线性部分)——第一章 晶体二极管
  16. 干系人管理4个过程及重点
  17. Android 地图跳转到百度、高德、腾讯地图导航
  18. 为什么大多数人永远不会真正成功?
  19. Amazon SageMaker简直就是机器学习平台的天花板
  20. 生活小剧场30天吸粉44w,小红书最受欢迎的笔记长这样

热门文章

  1. python3 beautifulsoup配合requests下载老司机图片
  2. RHCS基本理論(台湾人写的不错的文章)
  3. android 有道笔记 装在哪个目录,有道云笔记文件保存在哪里在哪个路径下
  4. 秘密是如何被泄露的?自建文件分享神器HFS
  5. C# 程序创建word文件与表格
  6. 地图服务平台技术方案
  7. 科普 | 什么是ChatGPT?试用ChatGPT,ChatGPT的启示!
  8. java中parseint函数_浅谈 js中parseInt函数的解析
  9. PS图层混合模式MATLAB实现
  10. 会议邀请〡第六届全国高校电子信息类课程教学研讨会邀请函