关于DMA的笔记

DMA允许数据在外设和内存之间高速传输,减轻CPU负担,提高系统效率。STM32芯片有两个DMA控制器,具有多通道和可编程优先级。在数据传输中,DMA需考虑数据对齐和仲裁问题,DMA1不支持内存到内存,而DMA2则支持。总线矩阵优化了DMA的访问速度,减少了总线仲裁的时间消耗。
摘要由CSDN通过智能技术生成

DMA(Direct Memory Access, 直接储存器访问),是部分总线架构提供的功能,DMA传输功能能将数据从一个地址空间复制到另一个地址空间,实现从附加设备/外设与储存器或储存器与储存器之间的高速传输。

我们结合案例解释DMA的功能:在我们的设备中,CPU是运算和控制和核心,有强大的运算、储/转存数据、控制程序转移等功能。CPU在运行过程中需要处理大量的任务,在这些任务的优先级中,不同的任务有着不同的优先级,有的重要的任务需要调用CPU“亲自”参与,有的则不一定需要调用CPU的计算,比如数据的复制和储存(尤其是大量数据的复制存储,比如将数据从外设A转存到外设B),那我们在分配任务的时候会让CPU去执行更重要的任务,让DMA去执行原来由CPU执行的数据复制、转存,来提高系统的运行效率。

总结下来,DMA就是接管CPU过负责的数据复制储存的任务,减少CPU的低效率消耗,来提高系统的整体效率。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。

DMA可以实现外设(W)到内存(N)、W2W、N2N、N2W的数据存储。而DMA传输的4个关键数据是:1、数据源地址;2、数据传输的目标地址;3、数据量大小;4、数据传输的模式。
当用户将参数设置好,主要涉及源地址、目标地址、传输数据量这三个,DMA控制器就会启动数据传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值