STM32标准库开发——DMA直接存储器存取

DMA介绍

  • DMA (Direct Memory Access)直接存储器存取
  • DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源.
    12个独立可配置的通道:DMA1(7个通道),,DMA2 (5个通道)
  • 每个通道都支持软件触发和特定的硬件触发
  • STM32F103C8T6 DMA资源:DMA1 (7个通道)

DMA框架图

在这里插入图片描述

在DMA框架图中,主要为Cortex-M3核心以及三条总线,其他部分都可以看为存储器。 DCODE 总线是用于连接 Flash
存储器和处理器核心的总线。DCODE 总线是指指令解码总线(Data Code Bus),用于传输指令和相关的控制信号。
DMA总线用于访问存储器 或者 外设寄存器的数据 系统总线用来控制DMA配置寄存器
DMA1以及DMA2各自有不同的通道,每个通道配备仲裁器,用来控制通道中搬运顺序,AHB从设备是DMA配置寄存器
APB1以及APB2各自挂载着不同的外设,描述中的外设都可以触发DMA请求,但是每个请求会对应不同的DMA以及DMA中不同的通道,只能触发特定DMA通道

DMA1请求映像关系图
在这里插入图片描述

存储器映像

在这里插入图片描述

数据宽度与对齐

在DMA转运过程中,由于外设寄存器或者存储器并不都是位数一致的,所以当位长度不相等时,需要匹配,匹配规则如下。
在这里插入图片描述

注意:在转运的源地址外设寄存器与目标地址存储器并不是绝对的,外设寄存器里可以放存储器的地址,同理存储器也是

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值