处理器模式
处理器模式包含:
线程模式:常用来执行应用软件,处理器复位后,进入线程模式执行应用软件。
管理模式:常用来处理异常,当处理器处理完异常后,会返回线程模式。
软件执行的特权级别分为:
非特权模式:顾名思义,在这种模式下,权限是有限的,软件只有有限的权利对MSR和MRS指令,并且不能使用CPS指令,不能使用系统定时器,内嵌中断控制器,系统控制块,对内存和外设的访问有权限限制。
特权模式:顾名思义,特权模式,就是软件有所有的权限,可以使用所有的指令和访问所有的资源。
在线程模式下,控制寄存器控制软件执行时特权模式还是非特权模式,在管理模式下,软件总是具有特权权限,权限比较大。只有特权软件在线程模式下才能改写控制寄存器来改变软件执行的特权级别。
内核寄存器
cortex M4内核寄存器主要有:
R0~R12 通用寄存器,32位的为数据操作的通用寄存器。
MSP,PSP,main堆栈指针,处理器堆栈指针,R13
LR,链接寄存器, R14
PC,程序计数器, R15
PSR,程序状态寄存器
ASPR,应用程序状态寄存器
IPSR,中断程序状态寄存器
EPSR,执行程序状态寄存器
PRIMASK,优先级屏蔽掩码寄存器
FAULTMASK,错误屏蔽掩码寄存器
BASEPRI,基本优先级屏蔽掩码寄存器
CONTROL, 控制寄存器
具体的寄存器操作以及使用请参照ARM官方文档,部分寄存器我们在前面的ARM相关课程里已经讲过了,这里不赘述,如果记不住也没关系,在具体项目应用时候在参照官方文档,但了解这些内核知识还是很必要的,尤其是要做驱动开发时候和理解汇编语言时候。
嵌入式
程序猿
微信号:InterruptISR