目录
二、STM32芯片内部结构
从图中我们可以看出,一个完整的STM32芯片其实是由两大部分组成的:ARM公司设计的部分 + 芯片制造商设计的部分。接下来我们就从这两部分开始了解学习。
1. ARM设计的 Cortex-M内核
Cortex-M家族有一系列的处理器,STM32F103内部使用的是Cortex-M3内核,STM32G431内部使用的是Cortex-M4内核。这里以Cortex-M3内核为例。
Cortex-M3内部结构如下图所示:
从上图我们可以看出,STM32的 “中断系统” 和 “调试系统” 都属于Cortex-M内核。
取指单元:通过总线将程序从程序存储器(前面介绍的128K闪存)取出,交给解码器。
解码器:对程序进行解码。
算数逻辑运算单元ALU:对程序中进行逻辑运算。
寄存器组:存储逻辑运算的结果。
(详细介绍请参考这位大佬的文章:MCU运行原理-Cortex-M3内核_qingchunwang的专栏-CSDN博客_mcu工作原理)
2. STM32内部资源
参考
《STM32G4系列微控制器参考手册.pdf》
《STM32F10xxx参考手册.pdf》
3. STM32内部模块框图
参考
《STM32G431数据手册.pdf》 P16
《STM32F103数据手册.pdf》 P14
STM32G431
在STM32G431内部结构中,各个模块都是通过总线相连接。Cortex-M4内核相当于心脏,最高频率可达170MHz,它通过总线AHB进行数据交换,AHB分为AHB1和AHB2,AHB1又分为APB1和APB2。
所以共有三根总线:APB1、APB2、AHB2。每一根总线都分配有与之相对应的模块。
STM32F103
在STM32F103内部结构中,使用的是Cortex-M3内核,最高频率为72MHz,总线为APB1、APB2,相较G431少了一根。每根总线也有与之相对应的模块。
Cortex-M内核的内部结构和STM32内部资源需要了解,但STM32内部模块需要十分熟练,没事的时候可以经常翻阅这两张图。