STM32中Handler模式、Thread模式;特权级别、用户级别

在STM32启动文件中,有一语句:
After reset the CortexM3 processor is in Thread mode,priority is Privileged ,and Stack is set to Main.

Cortex-M3支持两种操作模式、两种权限级别。

两种操作模式为处理者模式(Handler)和线程模式(Thread),这两种模式是为了区别正在执行代码的类型,Handler模式为异常处理例程的代码,Thread模式为普通应用程序的代码。

两种权限级别包括特权级别用户级别,两种权限级别是对存储器访问提供的一种保护机制。在特权级别下,程序可以访问所有范围的存储器(如果有MPU,还要在MPU的禁地之外),并且能够执行所有指令。在用户级别下,某些寄存器不允许访问,如果访问,则产生fault,具体地说就是MPU、NVIC、SCB、STK四个单元不能访问。

在Thread模式下,可以是特权级别也可以是用户级别,Handler模式下总是特权级别;在复位后,处理器处于Thread模式+特权级别。

三种状态之间的切换如图所示:
在这里插入图片描述

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

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Poetry _Distance

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值