|
此文仅表示自己对STM32系统结构架构的理解,有所不足与谬误希望各位大佬斧正。 , C! Z+ r- @& i/ v
$ A8 f/ |8 m) P [ 首先,我认为STM32系统结构就包括两部分。5 _4 }: G" J8 H% C9 w8 h8 _+ E 2 F+ [9 d4 Y7 c 一,就是左上角Cortex-M3的内核,里面有CPU和内核外设等 / D+ F& G3 G4 T2 f7 L/ L7 h- ? 二,就是剩下的所有都是存储器。 & _ \/ ~% S, C; y& M D 所以简单来说,STM32系统结构就是CPU和存储器组成。. D" `6 w- G) @' S7 ^ 右边从上到下,分别是 Flash主闪存,SRAM运行内存,和各种外设,但各种外设都可以看作寄存器,但寄存器也是一种特殊的存储器,可以看成一种SRAM存储器。* v5 C4 T1 [2 c5 l W5 c, F) A 5 {9 n5 h G7 w5 E) a( f# x
7 y( @2 q+ `" N" w- n: F5 | CPU可以对寄存器进行读写,寄存器每位后面连接一根导线,这些导线可以控制外设电路状态,例如导通和断开开关,对引脚置高低电平,切换数据选择器,或者多位结合当计数器等等。 7 ~& T g2 F$ z1 K# T$ `4 L 所以寄存器是连接软件和硬件的桥梁!软件对寄存器的控制就相当于对硬件电路的控制。 ' u) Q& `, K& X0 A3 o 黄色圈内是总线矩阵,总线矩阵左边拥有对存储器的访问权,就是主动单元,右边是被动单元,他们的存储器只能被左边的的主动单元读写。# p ?7 C9 [7 g( h3 i z 2 {& q. ^6 O, S) w6 U0 ]: g3 l" M3 U 内核通过DCode总线专门访问Flash,内核通过系统总线访问SRAM和寄存器。 DMA是进行数据转运的,减轻CPU负担,也是主动单元,有访问的主动权,如图可以看到DMA1和DMA2各有一条总线,实际上还有一条以太网私有的DMA总线图上没显示。- I! z6 [3 a4 e# V8 |& ? / g/ p( r- u9 N% ]# j 实际上DMA1那里还有一个AHB从设备,连接在右边AHB总线上,所以DMA既是主动单元,又是被动单元,DMA可以通过总线读写寄存器,而CPU也可以对DMA进行配置。6 m: h" z& h% [. x % D! {$ M# ~1 j% y0 W; ~ 目前大致先写这些,还有些细节之后再补充。 ———————————————— 版权声明:qsx156# F% M4 ]6 q' H+ y2 d 如有侵权请联系删除 ( w+ f, S- z: x: i |
【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 功能的使用
微信公众号
手机版