iwqt1983 发表于 2014-8-28 13:48:11

【分享】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用户级别

McuPlayer 发表于 2014-8-28 13:50:59

学习,请楼主再多讲一些

这对OS的使用是好事,OS可以为APP提供更好的保护和隔离

sbusr 发表于 2014-8-28 14:02:18

没看懂。。是与嵌入式实时操作系统相关的吗。

abszy 发表于 2014-8-29 14:02:28

谢谢楼主转载学习了

FSL_TICS_ZJJ 发表于 2014-8-29 14:04:56

楼主以后发帖,把资料贴标题前面加【资料分享】,请把你最近发的资料贴都标上,如果是经验就标【网友经验分享】,便于我们区别问题贴以及统计。

zhongjiequan 发表于 2014-8-29 14:36:41

MARK!!!!!!!!!

iwqt1983 发表于 2014-8-29 14:51:40

好的,这就改一下,谢谢.

lzl000 发表于 2014-8-29 14:56:23

又见楼主分享

浪里白条 发表于 2014-8-29 15:41:08

这个,没研究过,请问这些知识一般在那种情况下能用得上?

sunnyqd 发表于 2014-8-29 15:44:29

Cortex权威指南里可以找到详细的

zndz410 发表于 2014-8-29 16:27:19

学习了一下。

rootxie 发表于 2014-8-29 16:39:51

这2中模式应该和M3是一样的,比起ARM9那么多种模式,确实简化设计了

dengterry 发表于 2014-8-29 21:01:36

MARK 灌水

rockyyangyang 发表于 2014-9-4 16:16:16

mark      

JESTER9 发表于 2014-9-4 22:04:23

感谢分享
页: [1]
查看完整版本: 【分享】Cortex-M4 操作模式和特权级别