DMA(cpu的秘书,数据的搬运工)

目录

DMA简介

DMA作用

DMA主要特性

DMA的寄存器

DMA的增量或者循环模式

 DMA中断


DMA简介

首先,我们先来理解一下DMA是什么

比较官方的解释是:

DMA,全称为:Direct Memory Access,即直接存储器访问。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。

我的理解是:它不通过CPU,也不需要CPU的干预。因此,DMA本身不对数据进行处理,它只负责在内存和设备之间高效地传输数据。ps:我目前接触到的功能,就只有数据的传输,类似于老板的秘书,如果不需要老板进行决断,只需要把信息传输以及接收,就可以自己处理,不经过老板。

DMA作用

DMA的传输方式不需要CPU参与,可以直接控制传输

DMA给外部设备和内存开辟一条直接传输数据的通道

目的:给CPU节省资源,使CPU的工作效率提高。

DMA主要特性

    1)同一个DMA模块可以有多个优先级请求:很高、高、中等、低

    2)每个通道有3个事件标志: DMA半传输、DMA传输完成、 DMA传输出错

    3)数据源 目标源 数据传输宽度对齐

    4)传输数据 字节(8位) 半字(16位) 全字(32位 )

    5)存储器<->存储器、外设<->存储器、外设<->外设

    6)闪存(flash) 、SRAM、 APB 、AHB 、外设均可以作为源或者目标

    7)搬移数据的最大长度为65535字节

DMA的寄存器

    DMA_CPARx :设置外设地址的寄存器

    DMA_CMARx :设置存储器地址的寄存器

    DMA_CCRx :  设置数据传输方向

    DMA_CNDTRx:设置传输的数据量

DMA的增量或者循环模式

   1)增量:外设搬移到存储器的时候 ,不希望覆盖上一个数据,会将内存设置为增量模式

    2)循环:DMA不停循环的搬移数据,一组的数据传输完成时,计数寄存器将会自动地被恢复成配置该通道时设置的初值。

 DMA中断

每个 DMA 通道都可以在 DMA 传输过半、传输完成和传输错误时产生中断。为应用的灵活性考虑,通过设置寄存器的不同位来打开这些中断

以上就是我对DMA的一些简单的理解,如有补充,欢迎个位大佬在评论区进行指导。

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花田里的泪光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值