MPU 在保护内存时是按区管理的。 指令集 Cortex‐M3 只使用Thumb‐2 指令集。 以前使用ARM指令和Thumb指令两种状态下的切换操作: 缺点即:增加时间上的额外开销。 中断和异常 支持11 种系统异常(保留了4+1 个档位),外加240 个外部中断输入。 CM3 的所有中断机制都由NVIC 实现。 具体使用了多少个是由芯片生产...
在CM3 运行主应用程序时(线程模式),既可以使用特权级,也可以使用用户级;但是异常服务例程必须在特权级下执行。复位后,处理器默认进入线程模式,特权极访问。在特权级下,程序可以访问所有范围的存储器(如果有 MPU,还要在 MPU规定的禁地之外),并且可以执行所有指令。 在特权级下的程序可以为所欲为,但也可能会把自己...
对于大多数C源程序,只需简单地重新编译就能重建,汇编代码则可能需要大面积地修改和重写,才能使用CM3的新功能,并且融入CM3新引入的统一汇编器框架(unified assembler framework)中。 Cortex-M3的设计允许单片机高频运行(现代半导体制造技术能保证100MHz以上的速度)。即使在相同的速度下运行,CM3的每指令周期数(CPI)也更低...
1.2.存储器管理 faults 存储器管理 faults 多与 MPU 有关,其诱因常常是某次访问触犯了 MPU 设置的保护规范。另外,某些非法访问,例如,在不可执行的存储器区域试图取指,也会触发一个 MemManage fault,而且在这种场合下,即使没有 MPU 也会触发 MemMange fault。MemManage faults 的常见诱因如下所示: (1).访问了...
在CM3 中,执行如下动作时,如果地址有误,亦会触发总线异常: (1).中断处理起始阶段的堆栈 PUSH 动作。此时若发生总线 fault,则称为“入栈错误”; (2).中断处理收尾阶段的堆栈 POP 动作。此时若发生总线 fault,则称为“出栈错误”; (3).在处理器启动中断服务序列(sequence)后读取向量时。这是一种极度罕见的特...
ARM ARMCM3 ARM Cortex-M3, 10 MHz, ROM, RAM The Cortex-M3 processor is a high performance 32-bit processor designed for the microcontroller market. It offers significant benefits to developers, including: outstanding processing performance combined with fast interrupt handling...
有若干个系统异常专用于 fault 处理。 CM3 中的 Faults 可分为以下几类: 1 总线 faults (取指出错,POP/PUSH错误) 2存储器管理faults (访问MPU范围外的地址,往只读区域写数据,用户级访问特权级地址) 3 用法 faults (未定义指令,除数为0) 4硬 faults (前三者错误的服务例程无法执行时,变为HardFault) ...
MPU在执行其功能时,是以所谓的“region”为单位的。一个region其实就是一段连续的地址,只是它们的位置和范围都要满足一些限制(对齐方式,最小容量等)。CM3的MPU共支持8个regions。怎么,嫌少?是少了点,不过,还允许把每个region进一步划分成更小的“子region”。此外,还允许启用一个“背景region”(即没有MPU时的全...
那么CM3到底改进了什么? ARMv7-M CPU内核:ARM公司于2004年推出的内核。哈佛体系结构,3级流水线+分支预测,支持全部的Thumb和Thumb-2指令集。内嵌32-bit硬件乘法器可返回64-bit运算结果,且新增32-bit硬件除法器。 NVIC嵌套向量中断控制器:最大支持240个外部中断,中断优先级可分组(抢占优先级、响应优先级),8bit优先...
比较复杂的应用可能需要更多的存储系统功能,为此CM3提供一个可选的MPU,而且在需要的情况下也可以使用外部的cache。另外在CM3中,Both小端模式和大端模式都是支持的。 CM3内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。另外,为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种...