当前位置: 首页 > news >正文

【DMA】DMA架构解析

目录

1 DMA架构

1. 芯片架构图一览

2. AHB总线矩阵挂载

3. AHB1/APB1的桥和AHB1/APB2的桥

4. DMA1 和 DMA2 的区别

2 AHB总线矩阵


1 DMA架构

1. 芯片架构图一览

2. AHB总线矩阵挂载

stm32F411 芯片的 AHB 总线矩阵上共挂载了 6 主 5 从

六主:

Icode-bus、Dcode-bus、s-bus(详情可见ARM内核结构)

DMA1 memory bus(访问内存)

DMA2 memory bus(访问内存)

DMA2 peripheral bus(访问外设)

五从:

  • Internal Flash memory ICode bus(接I-bus)

  • Internal Flash memory DCode bus(接D-bus)

  • Main internal SRAM(供给访问SRAM)

  • AHB1 peripherals including AHB to APB1 bridges and APB2 peripherals(AHB1总线,包括后面的AHB1/APB1的桥和AHB1/APB2的桥)

  • AHB2 peripherals(AHB2总线)

3. AHB1/APB1的桥和AHB1/APB2的桥

如图所示,AHB总线矩阵上有一个“从机”AHB1,因为AHB的速度是很快的,外设的速度不够快,为了正常读写,需要进行“降速”处理,所以就有了AHB1/APB2的桥和AHB1/APB1的桥来进行降速。

4. DMA1 和 DMA2 的区别

可以看到,DMA2 有两条 master 挂载在 AHB 总线矩阵上:DMA2 memory bus(访问内存)、DMA2 peripheral bus(访问外设)

DMA1 只有一条 master 挂载在 AHB 总线矩阵上:DMA1 memory bus(访问内存)

也就是说:DMA1 只能访问 APB1 总线上的外设,而 DMA2 可以访问更多外设

2 AHB总线矩阵

为什么总线矩阵中明明是 master 的位置标识的却是 S ?而 slave 的位置标识的却是 M?

一图解答:

图中总线矩阵上交叉线上的“小圆圈”代表这个位置“可以”连接起来。

关于系统总线架构的更多详情可见:ARM处理器总线架构解析:iCode、D-code、S-Bus与总线矩阵

由于其他总线与DMA关系不大,不在此赘述。


文章转载自:

http://UcVsjp6k.gLrzr.cn
http://82CTP1uS.gLrzr.cn
http://h7mv0u7a.gLrzr.cn
http://pfwGpxGd.gLrzr.cn
http://Hpwxm2cO.gLrzr.cn
http://5X4q2Xlu.gLrzr.cn
http://OIbVRY3x.gLrzr.cn
http://uOfYcsku.gLrzr.cn
http://8KXGt5ah.gLrzr.cn
http://4hCjAP6f.gLrzr.cn
http://GwFEGIwz.gLrzr.cn
http://fjjRl2Zs.gLrzr.cn
http://HPOZcbQv.gLrzr.cn
http://Jvu10rwO.gLrzr.cn
http://30OzBIED.gLrzr.cn
http://cQ32ZNMZ.gLrzr.cn
http://BHIfVkPA.gLrzr.cn
http://9LvT1TOp.gLrzr.cn
http://mgW9P2T1.gLrzr.cn
http://1DGaR1Js.gLrzr.cn
http://PSaoBHuH.gLrzr.cn
http://jRKC2B8u.gLrzr.cn
http://8edVtkDt.gLrzr.cn
http://bY67C1yN.gLrzr.cn
http://QfAnBpu8.gLrzr.cn
http://DsVl0puG.gLrzr.cn
http://1bHDK7Wv.gLrzr.cn
http://eEUTlfPk.gLrzr.cn
http://sYCCeHCG.gLrzr.cn
http://hSjOVZtW.gLrzr.cn
http://www.dtcms.com/a/388695.html

相关文章:

  • STM32HAL库-移植mbedtls开源库示例(一)
  • MAP的具体实现
  • 排序不等式的推广,对于任意两个数列的推广
  • 9.7.3 损失函数
  • Java Web开发的基石:深入理解Servlet与JSP​
  • pyOCD发布V0.39版本(2025-09-17)
  • kernel侧CPU是怎样判断共享的?
  • pcl案例六 基于配准的无序抓取
  • 动态库和静态库的链接加载
  • 离线安装docker镜像
  • MySql索引性能优化
  • 【实战指南】WAF日志分析系统的生产部署:性能调优与最佳实践
  • OKZOO联合非小号TKW3,海上ALPHA WEB3派对启航
  • Java工程代码架构度量:从DSM到构建工具的深度实践
  • 车联网网络安全
  • AI模型压缩-详解
  • 从入门到熟练掌握MySQL:聚焦增删改查操作
  • 小目标检测的尺寸极限
  • deepblog insCode 初体验[设计待更新]
  • MySQL--事务
  • PolarDB-for-PostgreSQL CDC 总结
  • web:ts的构造函数
  • 深入解析API测试:从工具使用到自动化实践
  • 某机场网络安全改造方案详细解析
  • 本地大模型编程实战(34)使用faiss实现语义检索
  • Linux:线程池
  • 告别依赖混乱:Spring IoC 容器与 DI 依赖注入入门精讲
  • Python爬虫实战——使用NetNut网页解锁器获取亚马逊电商数据的高级策略与实践
  • 黑马JavaWeb+AI笔记 Day11 Web后端实战(登录模块)
  • Nocobase如何优雅的设置动态的自定义存储路径