STM32 产品命名规范
STM32:意法半导体 32 位处理器
F 407:产品类型。
I:管脚数量。
G:flash 容量。
T:芯片封装方式。
6:工作温度范围。
一、Cortex-M 基础
1、Cortex-M:
Cortex-M0 :主打低功耗和混合信号的处理。只支持Thumb
Cortex-M1 :应用于FPGA的应用控制领域
Cortex-M3、Cortex-M4:替代 ARM7,重点侧重能耗与性能的平衡
Cortex-M4基于的 ARMv7-M 体系结构,只用了16位Thumb指令和部分32位Thumb指令。
Cortex-M7: 则重点放在高性能控制运算领域。
L0、F0:Cortex-M0、Cortex-M0+。(F051)
F1、F2:Cortex-M3。(F103)
F3、F4:Cortex-M4。(F407、F429)
2、Cortex-M4 特性:
Cortex™-M4处理器内核是在Cortex-M3内核基础上发展起来的。使用ARMv7-M的体系架构支持DSP和SIMD。
其性能比Cortex-M3提高了20%。新增加了浮点、DSP、并行计算等。
RISC处理器内核:高性能32位CPU
Thumb-2 指令集,高效、高代码密度
中断数量可配置(1~240个),低中断切换时延,提供不可屏蔽中断(NMI)输入保障高可靠性系统;
低功耗模式:集成的睡眠状态支持、多电源域、基于架构的软件控制;
支持多种嵌入式操作系统,也被多种开发组件支持,包括 MDK(ARM Keil 微控制器开发套件)、RVDS(ARM RealView 开发组件)、IAR C 编译器等。
3、Cortex-M4 工作模式:
处理模式(Handler Mode):
当处理器发生了异常或者中断,则进入处理模式进行处理、处理完成后返回线程模式。
处于特权访问等级,可以访问处理器中的所有资源。
线程模式(Thread Mode):
芯片复位后,即进入线程模式(特权级),执行普通用户程序。
可以处于特权或非特权模式,访问等级由CONTROL寄存器控制
----------------------------------------------------------------------
Thumb状态:正常运行时处理器的状态(正常+异常)。
调试状态:调试程序时处理器的状态,调试器可以访问或修改处理器中寄存器的值。
二、寄存器
1、Cortex-M4 寄存器:
R0-R12:通用寄存器。
R0-R7:低端寄存器,可作为 16 位或 32 位指令操作数
R8-R12:高端寄存器,只能用作 32 位操作数
R13:堆栈指针 SP。Cortex-M4 在物理位置上存在两个栈指针,主栈指针 MSP,进程栈指针 PSP。
处理模式下,只能使用主堆栈;线程模式下,可以使用主堆栈,或进程堆栈(由 CONTROL 寄存器控制)
系统上电的默认栈指针是MSP
R14:连接寄存器(LR),用于存储子程序或者函数调用的返回地址
R15:程序计数器(PC),存储下一条将要执行的指令的地址。
2、xPSR:组合程序状态寄存器,该寄存器由三个程序状态
xPSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成:
应用PSR(APSR) 包含前一条指令执行后的条件标志
中断PSR(IPSR) 包含当前ISR的异常编号
执行PSR(EPSR) 包含Thumb状态位
PRIMSK:中断屏蔽特殊寄存器。
3、CONTROL:控制寄存器
[PRIV]:0-处理器处于线程模式的特权级;1-非特权级
[SPSEL]:0-线程模式使用MSP;1-使用PSP。处理器模式时,固定使用MSP。
三、异常和中断
1、异常中断种类:
Reset、HardFault、SVCall、PendSV、SysTick 等,主要用于操作系统和错误处理。
Cortex-M4 处理器最多支持 240 个中断输入。