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

Cortex-M3支持两种操作模式,还支持两种特权级别;

两种模式为handler模式和线程(thread)模式,这两种模式是为了区别正在
执行代码的类型;handler模式为异常处理例程的代码;线程模式为普通应用
程序的代码;

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

在线程模式,可以是特权级,也可以是用户级;handler模式总是特权级的;
在复位后,处理器处于线程模式+特权级;
Cortex-M3 操作模式和特权级别_第1张图片
特权级下可以通过置位CONTROL[0]来进入用户级,且CONTROL[0]仅能在特权级
下修改;
用户级要进入特权级,唯一的途径就是触发一个异常/中断,然后在handler服
务例程中修改CONTROL[0],然后才能在返回线程模式后拿到特权级;
Cortex-M3 操作模式和特权级别_第2张图片

你可能感兴趣的:(ARM,Cortex-M3)