寄存器及其功能-史上最全的测试用例设计方法总结

上传者: 26717681 | 上传时间: 2021-07-26 15:37:28 | 文件大小: 9.63MB | 文件类型: PDF
表 2.1 寄存器及其功能 寄存器  功能  xPSR  记录 ALU标志(0 标志,进位标志,负数标志,溢出标志),执行状态,以及 当前正服务的中断号  PRIMASK  除能所有的中断——当然了,不可屏蔽中断(NMI)才不甩它呢。  FAULTMASK  除能所有的 fault——NMI依然不受影响,而且被除能的 faults会“上访”,见 后续章节的叙述。  BASEPRI  除能所有优先级不高于某个具体数值的中断。  CONTROL  定义特权状态(见后续章节对特权的叙述),并且决定使用哪一个堆栈指针  第 3 章对此有展开的叙述。  操作模式和特权极别 Cortex‐M3 处理器支持两种处理器的操作模式,还支持两级特权操作。  两种操作模式分别为:处理者模式(handler mode,以后不再把 handler 中译——译注)和线程模 式(thread mode)。引入两个模式的本意,是用于区别普通应用程序的代码和异常服务例程的代码 ——包括中断服务例程的代码。   Cortex‐M3 的另一个侧面则是特权的分级——特权级和用户级。这可以提供一种存储器访问的 保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及到要害的操作。处理器支 持两种特权级,这也是一个基本的安全模型。    图 2.4  Cortex‐M3 下的操作模式和特权级别    在 CM3 运行主应用程序时(线程模式),既可以使用特权级,也可以使用用户级;但是异常服 务例程必须在特权级下执行。复位后,处理器默认进入线程模式,特权极访问。在特权级下,程序 可以访问所有范围的存储器(如果有MPU,还要在MPU规定的禁地之外),并且可以执行所有指令。    在特权级下的程序可以为所欲为,但也可能会把自己给玩进去——切换到用户级。一旦进入用 户级,再想回来就得走“法律程序”了——用户级的程序不能简简单单地试图改写 CONTROL 寄存器 就回到特权级,它必须先“申诉”:执行一条系统调用指令(SVC)。这会触发 SVC 异常,然后由异常 服务例程(通常是操作系统的一部分)接管,如果批准了进入,则异常服务例程修改 CONTROL 寄存 器,才能在用户级的线程模式下重新进入特权级。  事实上,从用户级到特权级的唯一途径就是异常:如果在程序执行过程中触发了一个异常,处 理器总是先切换入特权级,并且在异常服务例程执行完毕退出时,返回先前的状态(也可以手工指 定返回的状态——译注)。  28

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明