|
此文仅表示自己对STM32系统结构架构的理解,有所不足与谬误希望各位大佬斧正。' p; s- \# K& Z; @2 Y( y3 A0 n) y 9 D4 K; N1 ]; n4 D+ k- h+ j
+ s3 e1 f$ Q9 q 首先,我认为STM32系统结构就包括两部分。, L! ~- n+ c l8 {; S$ n& g- O 1 W _ H. i; u& e% d" W 一,就是左上角Cortex-M3的内核,里面有CPU和内核外设等! {3 t8 C3 ~5 q/ m5 S# ~ 6 U/ R6 a0 e% q q# { 二,就是剩下的所有都是存储器。 % E1 W0 P) g5 s: O 5 h5 J$ `8 Q+ h9 t, o9 o; Q 所以简单来说,STM32系统结构就是CPU和存储器组成。; b$ e9 }( U- w7 ? . W( ?3 F* j% `' g1 f& U% i, E% K 右边从上到下,分别是 Flash主闪存,SRAM运行内存,和各种外设,但各种外设都可以看作寄存器,但寄存器也是一种特殊的存储器,可以看成一种SRAM存储器。
CPU可以对寄存器进行读写,寄存器每位后面连接一根导线,这些导线可以控制外设电路状态,例如导通和断开开关,对引脚置高低电平,切换数据选择器,或者多位结合当计数器等等。 所以寄存器是连接软件和硬件的桥梁!软件对寄存器的控制就相当于对硬件电路的控制。# N- S) X) x0 G9 i8 m 黄色圈内是总线矩阵,总线矩阵左边拥有对存储器的访问权,就是主动单元,右边是被动单元,他们的存储器只能被左边的的主动单元读写。( j$ N5 U% X4 P) _ 内核通过DCode总线专门访问Flash,内核通过系统总线访问SRAM和寄存器。 9 P+ [, p1 C) i, T DMA是进行数据转运的,减轻CPU负担,也是主动单元,有访问的主动权,如图可以看到DMA1和DMA2各有一条总线,实际上还有一条以太网私有的DMA总线图上没显示。 ; V, J7 a! x6 |) z, L 实际上DMA1那里还有一个AHB从设备,连接在右边AHB总线上,所以DMA既是主动单元,又是被动单元,DMA可以通过总线读写寄存器,而CPU也可以对DMA进行配置。 6 `0 X$ d( k8 D$ y 目前大致先写这些,还有些细节之后再补充。& z6 B3 B6 {1 ]* h4 W ————————————————5 Y0 C+ K7 M" y+ w" H8 F0 S5 C 版权声明:qsx156 如有侵权请联系删除# n; r# z) D7 z+ ]+ ? |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版