|
此文仅表示自己对STM32系统结构架构的理解,有所不足与谬误希望各位大佬斧正。: r6 i9 S7 V9 V* Q 1 h* R3 Y: p7 ^( V* E, G8 i- x% e
9 L; `/ X1 P8 n% T R$ P; A 首先,我认为STM32系统结构就包括两部分。 一,就是左上角Cortex-M3的内核,里面有CPU和内核外设等 二,就是剩下的所有都是存储器。 # B+ Z {$ a5 C* l# e7 S& a 所以简单来说,STM32系统结构就是CPU和存储器组成。$ B3 W2 A) R3 F" K! t * \1 X( V0 W% Q y# `7 C 右边从上到下,分别是 Flash主闪存,SRAM运行内存,和各种外设,但各种外设都可以看作寄存器,但寄存器也是一种特殊的存储器,可以看成一种SRAM存储器。! M6 M* e2 e T$ [
CPU可以对寄存器进行读写,寄存器每位后面连接一根导线,这些导线可以控制外设电路状态,例如导通和断开开关,对引脚置高低电平,切换数据选择器,或者多位结合当计数器等等。 所以寄存器是连接软件和硬件的桥梁!软件对寄存器的控制就相当于对硬件电路的控制。 % t3 E+ A8 c7 v* q0 V9 ^. ]! i7 w 黄色圈内是总线矩阵,总线矩阵左边拥有对存储器的访问权,就是主动单元,右边是被动单元,他们的存储器只能被左边的的主动单元读写。8 j) V5 b% a& r' ?( {9 }& b+ @ : N( [; D6 h+ _6 r 内核通过DCode总线专门访问Flash,内核通过系统总线访问SRAM和寄存器。 ( S- H8 D- ]: @ DMA是进行数据转运的,减轻CPU负担,也是主动单元,有访问的主动权,如图可以看到DMA1和DMA2各有一条总线,实际上还有一条以太网私有的DMA总线图上没显示。 实际上DMA1那里还有一个AHB从设备,连接在右边AHB总线上,所以DMA既是主动单元,又是被动单元,DMA可以通过总线读写寄存器,而CPU也可以对DMA进行配置。+ e+ s$ C0 ~1 q& ^( \" W 目前大致先写这些,还有些细节之后再补充。( s% Y, i& i" h5 \! W1 `) {' _2 ~: S ———————————————— 版权声明:qsx1566 I* h+ T. y6 x 如有侵权请联系删除 2 j# j6 a5 c# S b s3 z+ W! r |
【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 功能的使用
微信公众号
手机版