STM32H7 中 AXI SRAM(如 D1 域 512KB)挂在 AXI 总线上,DMA 可全速访问,实测在 480MHz 下 MDMA 可跑到约 1.2~1.5GB/s(受总线仲裁与目标外设限制);而 DTCM 是紧耦合内存,仅 CPU 通过 TCM 接口直连,普通 DMA1/DMA2 无法访问,只有 MDMA 在部分型号上可通过 AHB 到 TCM 的路径访问,且带宽明显低于 AXI SRAM(实测约 400~600MB/s,且会与 CPU 取指/数据访问争抢)。分配策略建议:DMA 缓冲区、以太网/USB/SDMMC 描述符放 AXI SRAM(注意 MPU 配置为 Non-cacheable 或 Write-Through,或用 SCB_CleanInvalidateDCache 维护一致性);高频中断栈、实时控制变量、紧循环代码放 DTCM,保证零等待和确定性。若必须用 DTCM 做 DMA,优先选 MDMA 并做双缓冲,同时把 CPU 热代码挪到 ITCM 减少争抢。
mcuku 阿沐 · 2026-09-16