【分享】Cortex-M4 操作模式和特权级别
本帖最后由 FSL_TICS_ZJJ 于 2014-9-11 15:21 编辑以下内容 来自Cortex™-M4 Devices Generic User Guide
Cortex-M4 包含两种 处理器模式:线程模式(Thread mode)和处理器模式(Handler mode)。
线程模式用于执行应用代码,当处理器退出复位后会进入此模式;
处理器模式用于处理异常,当处理器处理完所有异常后会退回到线程模式。
对于软件执行又包括两种特权级别:特权级和用户级。
用户级限制:
有限制的使用MSR和MRS指令,不能使用CPS指令;
不能访问系统定时器,NVIC和系统控制模块;
有限制的访问存储器和外围模块。
特权级别:能够使用所有指令,访问所有资源。
在线程模式,寄存器CONTROL控制着软件运行于哪种特权级别,在处理器模式,软件一直运行于特权级别。
只有特权级的软件能够在线程模式下写CONTROL寄存器,更改特权级别,用户级软件能够通过使用SVC指令申请异常进入特权级代码。
注:MSR 移动通用寄存器的值到特殊功能寄存器
MRS 移动特殊功能寄存器的值到通用寄存器
SVC 引发一个supervisor call (SVC)异常
CONTROL的位0 nPRIV定义了线程模式的特权级别:0特权级别,1用户级别 学习,请楼主再多讲一些
这对OS的使用是好事,OS可以为APP提供更好的保护和隔离 没看懂。。是与嵌入式实时操作系统相关的吗。 谢谢楼主转载学习了 楼主以后发帖,把资料贴标题前面加【资料分享】,请把你最近发的资料贴都标上,如果是经验就标【网友经验分享】,便于我们区别问题贴以及统计。 MARK!!!!!!!!! 好的,这就改一下,谢谢. 又见楼主分享 这个,没研究过,请问这些知识一般在那种情况下能用得上? Cortex权威指南里可以找到详细的 学习了一下。 这2中模式应该和M3是一样的,比起ARM9那么多种模式,确实简化设计了 MARK 灌水 mark 感谢分享
页:
[1]