1 / 11
文档名称:

cortexm3权威指南.pdf

格式:pdf   大小:610KB   页数:11页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

cortexm3权威指南.pdf

上传人:小辰GG 2022/6/22 文件大小:610 KB

下载得到文件列表

cortexm3权威指南.pdf

文档介绍

文档介绍:: .
CM3在内核水平上搭载了若干特殊功能寄存器,包括:
①程序状态字寄存器组(PSR)
②中断屏蔽寄存器组(PRIMASK,FAULTMASK,BASEPRI)
③控制寄存器(CONTROL)

作模式和特权级别
Cortex-M3处理器支持两种处理器的操作模式,还支持两级特权操作。
两种操作模式分别为处理者模式(handlermode)和线 程模式(threadmode)。
引入两种模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码-包括中断服务例程的代码。
两级特权操作分别为特权级和用户级。
这可以提供存储器访问的保护机制,使得普通用户的程序代码不能意外地,
甚至是恶意地执行涉及要害的操作。处理器支持两种特权级,这也是一个基本的
安全模型。

特权级 用户级

错误的用法
异常 handler的代码Handler 模式
主应用程序的代码 线程模式 线程模式

Cortex-M3下的操作模式和特权级别
在 CM3运行主应用程序时(线程模式),既可以使用特权级,也可以使用用
户级;
但是异常服务例程必须在特权级下执行。
复位后,处理器默认进入线程模式,特权级访问。在特权级下,程序可以访
问所有范围的存储器(如果有 MPU,还要在 MPU规定的禁地之外),并且可以执
行所有指令。
在特权级下的程序可以为所欲为,但也可能把子集给玩进去——切换到用户
级。一旦进入用户级,再想回来得就 走“法律程序”了——用户级的程序不能简
单地试图改写 CONTROL寄存器回到特权级,就 而必须先“申诉” :执行一条系统
调用指令(SVC),这回触发 SVC异常,然后由异常服务例程(通常是操作系统的
一部分)接管,如果批准了进入,则异常服务例程修改 CONTROL寄存器,才能在
用户级的线程模式下重新进入特权级。
其实,从用户级到特权级的唯一途径就是异常: 如果在程序执行过程中触发
了一个异常,处理器总是先切换入特权级,并且在异常服务例程执行完毕退出时,
返回先前的状态。

合法 的操作模式 转换图

通过引入特权级和用户级,能就 够在硬件水平上限制某些不受信任的或者还没有调试好的程序,不让它们随便地配置涉及要害的寄存器,因而系统的可靠性
得到了提高。进一步地,如果配了 MPU,它还可以作为特权机制的补充——保护
关键的存储区域不被破坏,这些区域通常是操作系统的区域。
举例来说,操作系统的内核通常都在特权级下执行,所有没有被 MPU禁掉的
存储器都可以访问。在操作系统开启了一个用户程序后,通常都会让它在用户级
下执行,从而使系统不会因某个程序的崩溃或恶意破坏而受损。


CM3在内核水平上搭载了一颗中断控制器——嵌套向量中断控制器
NVIC(NestedVectoredInterrupt Controller) 。它与内核有很深的“亲密接触”
——与内核是紧耦合的。
NVIC提供如下的功能:
●可嵌套中断支持
●向量中断支持
●动态优先级调整支持