【嵌入式系统】工作模式与任务特权级

简介: 【嵌入式系统】工作模式与任务特权级

1、工作模式

中断模式:调用中断服务程序(ISR, Interrupt Service Routine)时处于中断模式

线程模式:除了中断服务程序以外的程序都处于线程模式


image.png

2、任务特权级

特权级:此任务等级下,用户可以对系统控制寄存器进行访问和配置

用户级:此任务等级下,用户不允许对系统控制寄存器进行访问和配置(一旦访问将导致硬件异常)。起保护用户任务的作用,防止用户在任意任务中访问和修改系统寄存器,操作不当从而造成系统崩溃


image.png

注1

用户级线程模式下可通过MSR访问xPSR中的APSR,其余特殊功能寄存器禁止访问


按特权级和用户级区分代码,有利于架构的安全和健壮。 例如,当用户代码出问题时,因其被禁止写特殊功能寄存器和系统寄存器,所以不会影响系统中其他代码的正常运行。 若配有MPU,保护力度就更大,甚至可以阻止用户代码访问不属于它的内存区域。

3、工作状态

Cortex-M3处理器有两种工作状态:

①Thumb-2工作状态:此状态下,执行Thumb-2指令

②调试工作状态:处理器停机调试时(In Halting Debug)进入该状态

4、工作模态间的转换

如图所示,MCU复位后,首先进入特权级线程模式;在特权级线程模式下,可通过置位CONTROL[0]来进入用户级线程模式;在任意模态下,不管是任何原因产生了任何异常中断,处理器都将以特权级中断模式来运行其服务例程,异常中断返回后MCU必须恢复到先前的工作模态。


image.png

在黑色部分表示的内循环中,用户级线程模式无法返回特权级线程模式,因此提供了一种间接切换的途径:在用户级线程模式下使用一条系统服务调用指令(SVC, Supervisor Call)来触发一个SVC异常,在特权级中断模式下,该异常的服务例程可以选择修改CONTROL[0],清零CONTROL[0]后使异常返回到特权级线程模式而非原先工作的用户级线程模式。


目录
相关文章
|
7月前
|
传感器 监控 安全
Emerson A6210 监测器 有几种不同的工作模式?
Emerson A6210 监测器 有几种不同的工作模式?
|
7月前
|
API 数据格式
嵌入式系统中的串口通信
嵌入式系统中的串口通信
149 0
|
7月前
|
存储 算法 编译器
|
7月前
|
前端开发 算法
LabVIEW高性能LED驱动与控制系统
LabVIEW高性能LED驱动与控制系统
66 4
|
7月前
|
前端开发 算法
20240508 1 LabVIEW高性能LED驱动与控制系统
20240508 1 LabVIEW高性能LED驱动与控制系统
44 3
|
7月前
|
传感器 监控 芯片
嵌入式系统中MCU与SoC通信方式的选择与应用
嵌入式系统中MCU与SoC通信方式的选择与应用
275 3
|
7月前
|
传感器
嵌入式系统中的中断屏蔽
嵌入式系统中的中断屏蔽
149 1
|
7月前
|
存储 小程序 中间件
单片机中MCU跑RTOS相比裸机的优势
单片机中MCU跑RTOS相比裸机的优势
146 1
|
7月前
|
传感器 物联网 SoC
嵌入式系统中I2C总线通信基本方法(上)
嵌入式系统中I2C总线通信基本方法(上)
198 0
|
7月前
|
存储 Linux 芯片
嵌入式系统中I2C总线通信基本方法(下)
嵌入式系统中I2C总线通信基本方法(下)
270 0