总线矩阵用于主控总线之间的访问仲裁管理。仲裁采取循环调度算法。
八条主控总线是:
Cortex-M 内核 I 总线, D 总线和 S 总线;
DMA1 存储器总线, DMA2 存储器总线;
DMA2 外设总线;
以太网 DMA 总线;
USB OTG HS DMA 总线;
七条被控总线:
内部 FLASH ICode 总线;
内部 FLASH DCode 总线;
主要内部 SRAM1(112KB)
辅助内部 SRAM2(16KB);
辅助内部 SRAM3(64KB);
AHB1 外设 和 AHB2 外设;
FSMC
运行过程:程序编译之后以指令的形式存放在Flash中,下图中的Icode中的I即为Instruc(指令)的意思,内核通过ICode总线来读取指令。DCode数据总线,用来取数据。数据分常量与变量,常量存放在Flash中,变量存放在SRAM中。DCode与DMA有可能同时读取SRAM中的数据,这时通过总线矩阵来仲裁。System总线读取外设中寄存器的内容。DMA(direct memory access),可不经过CPU而将SRAM中的数据传送到外设寄存器中。