Cortex-M3 的CPU:32位CPU
cpu的两种运行模式:线程模式(Thread)和处理模式(Handler)。
cpu不处理异常事件时,会运行在线程(Thread)模式下。而当cpu需要处理一个异常事件时,就会切换到处理(Handler)模式下。
此外 Cortex-M3的cpu还有两种处理代码的方式:私有模式和非私有模式。
私有模式下,cpu可以执行所有指令。
非私有模式下,部分指令是被禁止执行的(xPSR寄存器操作的MRS和MSR指令)。同时也不能对cpu的系统控制区中的寄存器进行进行操作。
另外,堆栈的使用也是可以设置的,主堆栈在线程模式和处理模式下都可以使用。通过设置,Handler模式也可以使用进程堆栈。
Thumb-2指令集:
32位指令可以提高运行速度,16位指令可以提高代码密度。
Thumb-2指令集是32位指令和16位指令集的混合体。
相对于32位指令集,有26%的代码密度提升。
相对于16位指令集,有25%的性能提升。
总线:
Cortex-M3处理器基于哈佛结构,拥有独立的地址总线和数据总线。分别称为I-Code和D-Code。
这两条总线都可以在0x00000000-0x1FFFFFFF范围内存取代码和数据。
总线矩阵:
Cortex-M3处理器的系统总线和数据总线通过一系列告诉总线阵列组成的总线矩阵和外部控制器连接。
在 Cortex-M3处理器的内部总线和外部总线之间建立一些并行通道。
嵌套中断向量控制器:
嵌套中断向量控制器(NVIC)是Cortex-M3处理器的标准配备 。
这意味着所有基于Cortex-M3核心的微控制器都有着相同的中断结构。而不在取决于芯片制造商。
NVIC的特征之一是具有非常低的中断延时,这也得益于Thumb-2指令集的特征:允许多周期指令被打断(如load和store)。而NVIC的中断延时是绝对固定的。
中断嵌套:允许高级中断打断正在执行的低级中断,当执行完高级中断时,再返回去继续执行低级中断。
(摘自STM32自学笔记)