文章目录

  • 1 Cortex-M3的工作模式和特权级别
    • 1.1 工作模式和权限级别分类
    • 1.2 特权级别的切换

1 Cortex-M3的工作模式和特权级别

1.1 工作模式和权限级别分类


处理器的工作模式分为:thread mode和handler mode两种。 处理器默认运行在Thread Mode下;当发生异常/中断发生时,硬件自动切换到Handler Mode模式,执行完相应的异常/中断处理程序后,再切换回thread mode模式。

两种特权级别包括特权级和用户级,两种特权级别是对存储器访问提供的一种保护机制;在特权级下,程序可以访问所有范围的存储器(如果有MPU,还要在MPU的禁地之外),并且能够执行所有指令;在用户级下,不能访问系统控制空间(SCS,包含配置寄存器及调试组件的寄存器),且禁止使用MSR访问特殊功能寄存器(APSR除外),如果访问,则产生fault;

在线程模式,可以是特权级,也可以是用户级;handler模式总是特权级的;在复位后,处理器处于线程模式+特权级。

1.2 特权级别的切换

在特权级下的代码可以通过置位CONTROL[0]来进入用户级。而不管是任何原因产生了任何异常,处理器都将以特权级来运行其服务例程,异常返回后将回到产生异常之前的特权级。用户级下的代码不能再试图修改CONTROL[0]来回到特权级。它必须通过一个异常handler,由那个异常handler 来修改CONTROL[0],才能在返回到线程模式后拿到特权级。

注意:在大多数RTOS的实现过程中,不管是thread mode和handler mode只会使用特权级一种形式。异常/中断运行于Handler Mode,各个任务的代码运行于Thread Mode,这个过程由硬件自动切换。无论是异常/中断/任务,均运行于特权级下(硬件启动后的缺省级别)。


参考资料:

  1. 【李述铜】从0到1自己动手写嵌入式操作系统

Cortex-M3的工作模式和特权级别相关推荐

  1. Cortex M3处理器工作模式及中断过程

    来自::http://blog.csdn.net/ffgamelife/article/details/6947300 1.      工作模式 线程模式(Thread mode):处理器复位或异常退 ...

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

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

  3. Cortex-M3操作模式和特权级别

    Cortex-M3支持两种操作模式,还支持两种特权级别: 两种模式为handler模式和线程(thread)模式,这两种模式是为了区别正在执行代码的类型:handler模式为异常处理例程的代码:线 ...

  4. Cortex-M3 操作模式和特权级别

    Cortex-M3支持两种操作模式,还支持两种特权级别: 两种模式为handler模式和线程(thread)模式,这两种模式是为了区别正在 执行代码的类型:handler模式为异常处理例程的代码:线程 ...

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

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

  6. 初步探索CPU特权级别

    0 引言 本文是在linux系统编程中所沉淀.主要从代码层面出发,直觉感受CPU特权级别的作用,然后初步讲解CPU特权级别的概念. 1 反汇编代码 本部分从两个代码示例出发. 反汇编代码访问RAX寄存 ...

  7. Cortex M3 NVIC与中断控制

    Cortex M3 NVIC与中断控制 宗旨:技术的学习是有限的,分享的精神是无限的. 一.NVIC概览 --嵌套中断向量表控制器 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断 ...

  8. 【STM32】初识STM32(型号+封装+内核+储存器+时钟、复位和电源管理+工作模式+ADC)

    折腾着折腾着终于开始了 目录 ■STM32型号的说明: ■几种封装样式: ■ 内核:ARM 32位的Cortex™-M3 CPU ■ 存储器 ■ 时钟.复位和电源管理 ■内嵌RC振荡器和外接晶振: ■ ...

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

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

最新文章

  1. 启动物料帐后不可更改物料价格的处理方法
  2. 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码
  3. 去除内存上的警告,避免程序崩掉
  4. php二维数组 xml,xml 怎样通过php解析到二维数组里面
  5. 基克的聚合 机器人_重做秒变神器!基克的聚合成辅助标配
  6. Windows恶搞脚本,太实用了医院WiFi很快
  7. 闪烁指示灯监控方案_机房温湿度监控检测方案【斯必得智慧机房】
  8. 面对强势顾客,怎样应对才好?
  9. BulletedList控件[转载]
  10. html代码实现全国地图分布,echarts基于canvas中国地图省市地区介绍代码
  11. 【菜鸟学Java】1:Java语言简介
  12. 【美学集】色彩之冷暖色
  13. 数据处理的神来之笔 解决缓存击穿的终极利器
  14. 导数、概率密度和积分的关系理解
  15. 每天温习一个JS方法之Array.flat方法 第六天
  16. MDK解决方案:Warning L6989W
  17. linux 图形界面无法弹出,xmanager无法弹出图形化界面。
  18. 远程连接windows 2012 是报出“出现身份验证错误,要求的函数不受支持”解决方法”
  19. 哥特巴赫猜想 尾递归 湘潭孕妇之后的自我检讨
  20. 在地址栏输入一个字母后的网址

热门文章

  1. 一阶系统单位阶跃响应的特点_第八讲 系统的时域响应
  2. 2.12 总结-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. 【PC工具】Windows10开始菜单增强工具Stardock Start10
  4. 2020年“内容、服务”征集
  5. 基于概率统计分析的应用流特征分析
  6. C++多态的概念及前提条件
  7. 管理和安装 chart - 每天5分钟玩转 Docker 容器技术(168)
  8. 换种方法学操作系统,轻松入门Linux内核
  9. 小Z的房间[HEOI2015] (matrix-tree定理)
  10. 在非activity类调用startActivityForResult