01. 系统架构$ ~: k1 k9 [% G3 \- K% R* u1 q 主系统由 32 位多层 AHB 总线矩阵构成,可实现以下部分的互连: ● 八条主控总线: — Cortex™-M4F 内核 I 总线、D 总线和 S 总线* e# c- Q2 j2 t — DMA1 存储器总线 — DMA2 存储器总线: \- x5 D7 u3 i1 ^: p& o — DMA2 外设总线& y1 \/ X8 { d- V+ U2 K — 以太网 DMA 总线 — USB OTG HS DMA 总线 ● 七条被控总线:7 ^4 p! K+ e/ J0 | — 内部 Flash ICode 总线 — 内部 Flash DCode 总线0 ?3 v3 _/ v4 v) } g$ I1 {" N — 主要内部 SRAM1 (112 KB)2 E! v' M: H; O. _2 x6 ~ — 辅助内部 SRAM2 (16 KB)$ v+ W/ P% J, D4 f/ {$ V5 X — 辅助内部 SRAM3 (64 KB)(仅适用于 STM32F42xxx 和 STM32F43xxx 器件) — AHB1 外设(包括 AHB-APB 总线桥和 APB 外设); l1 T8 B0 Q' M( M' P — AHB2 外设/ Y, s i8 b/ L2 H( R8 u# ~) | — FSMC/ m% o1 Y' z2 B& J7 s 借助总线矩阵,可以实现主控总线到被控总线的访问,这样即使在多个高速外设同时运行期间,系统也可以实现并发访问和高效运行。 " W/ ?$ D# J# @% _ 注意:6 r5 ?# z$ e& s! {- w( T 64 KB CCM (内核耦合存储器)数据 RAM 不属于总线矩阵(请参见图 1 : STM32F405xx/07xx和 STM32F415xx/17xx 器件的系统架构和图 2 : STM32F42xxx 和 STM32F43xxx 器件的系统架构)。只能通过 CPU 对其进行访问。 02. 总线架构图 " r3 [' x; {# p5 C ' n! k2 H& E; c5 @5 Z+ G 03. 总线详解 3.1 S0 :I 总线此总线用于将 Cortex™-M4F 内核的指令总线连接到总线矩阵。内核通过此总线获取指令。此总线访问的对象是包含代码的存储器(内部 Flash/SRAM 或通过 FSMC 的外部存储器)。 3.2 S1 :D 总线 此总线用于将 Cortex™-M4F 数据总线和 64 KB CCM 数据 RAM 连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。此总线访问的对象是包含代码或数据的存储器(内部Flash 或通过 FSMC 的外部存储器)。 - G* P J0 X% r 3.3 S2 :S 总线 此总线用于将 Cortex™-M4F 内核的系统总线连接到总线矩阵。此总线用于访问位于外设或 SRAM 中的数据。也可通过此总线获取指令(效率低于 ICode)。此总线访问的对象是112 KB、64 KB 和 16 KB 的内部 SRAM、包括 APB 外设在内的 AHB1 外设、AHB2 外设以及通过 FSMC 的外部存储器。. h- N( o2 Q; C/ X' Z1 M % Y9 m0 t: y& A4 H' B" ~! A : D2 h" Q# [9 _. w8 |( ]: c 3.4 S3 、S4 :DMA 存储器总线" X& U! V3 L% K# }+ X" C* q9 `: q 此总线用于将 DMA 存储器总线主接口连接到总线矩阵。DMA 通过此总线来执行存储器数据的传入和传出。此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB、16 KB)以及通过 FSMC 的外部存储器。 * `/ e/ a, X, j. w 3.5 S5 :DMA 外设总线 此总线用于将 DMA 外设主总线接口连接到总线矩阵。DMA 通过此总线访问 AHB 外设或执行存储器间的数据传输。此总线访问的对象是 AHB 和 APB 外设以及数据存储器:内部SRAM 以及通过 FSMC 的外部存储器。 3.6 S6 :以太网 DMA 总线 此总线用于将以太网 DMA 主接口连接到总线矩阵。以太网 DMA 通过此总线向存储器存取数据。此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB 和 16 KB)以及通过FSMC 的外部存储器。2 D' ?" h3 K3 T q8 N4 X* G & p S' x1 k; F: M/ h5 A( V# x+ e 3.7 S7 :USB OTG HS DMA 总线8 b% [* R" B* ?3 o& r: [' A0 p' Z$ A 此总线用于将 USB OTG HS DMA 主接口连接到总线矩阵。USB OTG DMA 通过此总线向存储器加载/存储数据。此总线访问的对象是数据存储器:内部 SRAM(112 KB、64 KB 和 16 KB)以及通过 FSMC 的外部存储器。8 S' ]/ v a1 b3 N , J, j3 g8 f6 E1 a 3.8 AHB/APB 总线桥 (APB)8 {! d1 R: {9 e0 h2 |( @ 借助两个 AHB/APB 总线桥 APB1 和 APB2,可在 AHB 总线与两个 APB 总线之间实现完全同步的连接,从而灵活选择外设频率。4 a; ]5 i) ^) k L6 e: N: c 每次芯片复位后,所有外设时钟都被关闭(SRAM 和 Flash 接口除外)。使用外设前,必须在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其时钟。7 D# `, {' i" d! ]1 C 总线矩阵用于主控总线之间的访问仲裁管理。仲裁采用循环调度算法。; s8 r4 h- Q/ z3 U5 c " e: ~. K1 }9 p3 e 3 m+ [( m: a) v% M7 M% L9 b |
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32固件库分享,超全系列整理
STM32F4中文用户手册
基于STM32F407的FreeRTOS阶段性的总结(13)
STM32F400、STM32F402 Cortex-M4超值单片机
基于STM32F407的FreeRTOS获取各任务运行时间及占用情况(4)
基于STM32F407的FreeRTOS任务的挂起与恢复(3)
基于STM32F407的FreeRTOS任务的创建与删除经验分享(2)
基于STM32F407的FreeRTOS环境搭建经验分享(1)