首页 关于
树枝想去撕裂天空 / 却只戳了几个微小的窟窿 / 它透出天外的光亮 / 人们把它叫做月亮和星星
目录

Cortex-M4的工作模式与访问权限

在不同的工作模式下Cortex-M4处理器具有privileged和unprivileged两种访问权限。 其中privileged可以访问处理器的所有资源,而unprivileged则对一些指令和内存空间不能访问。 在一些文档和资料中把具有unprivileged级访问权限的状态和模式称为用户态"User state"。 为系统划分不同的权限等级,使得开发人员能够根据需要保护一些内存和资源不被随意地访问和修改,提高了系统的安全性和鲁棒性。

Cortex-M4有Handler和Thread两种工作模式。在处理异常和中断时,处理器就会进入Handler模式。 在Handler模式下,系统总是具有privileged级访问权限。 一般情况下处理器都是Thread模式,在该模式下系统的访问权限可以是privileged也可以是unprivileged,具体由控制寄存器决定。 在Thread模式下,应用程序可以自由地由privileged切换到unprivileged,但是反过来则不可以。 如果必须要从unprivileged切换到privileged,则需要借助异常和中断处理机制。

此外,Cortex-M4有Debug和Thumb两种工作状态。当调试器触发暂停或者运行到断点时,处理器就会进入Debug状态停止执行指令。 运行时加入断点或者单步调试,是一种常用的白盒调试方法,可以直接关注内存。 处理器执行指令时就处于Thumb状态。ARM内核一般都支持Thumb和ARM两种指令集, 但是Cortex-M系列只支持Thumb指令集,因此只有Thumb状态。




Copyright @ 高乙超. All Rights Reserved. 京ICP备16033081号-1