完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
|
|
|
|
但效率不同,mcu的负荷不同。
|
|
|
|
|
|
DMA是硬件直接数据传输,不需要通过CPU控制。这样不仅传输速度快了,更减轻了cpu的运行负担。
|
|
|
|
|
|
用和不用当然都可以发送。不用DMA发送是需要单片机实时参与,由单片机一个一个地发送数据并进行监控。但是如果用DMA设置了起始地址,数据大小等参数后,就直接由专门的一个DMA模块进行数据发送,发送过程中单片机无需参与。发送完后会产生中断告知单片机。由此可知用DMA可以节省单片机资源,让单片可以在同一时间里干更多事。
|
|
|
|
|
|
提高效率,不占用MCU的资源、
|
|
|
|
|
|
dma传输可以不利用mcv资源,你单线程是没啥区别的
|
|
|
|
|
|
DMA是对硬件直接传输,不占MCU的资源,传输速度快
|
|
|
|
|
|
之前没有DMA的时候串口也是正常用。不过现在有了DMA,可以减少单片机的负荷,降低资源占用,让单片机在串口接收时能干其他事情。
|
|
|
|
|
|
DMA相当于是在内存和外设之间打开了一条通道,允许外设控制器直接访问内存的内容,这样从内存拷贝数据到外设控制器可以不消耗CPU的处理能力
|
|
|
|
|
|
速度问题和效率问题,就好像可以用IO口模拟的SPI赶不上硬件SPI,另外DMA可以减少CPU的负担,从而让CPU做更多的事情。
|
|
|
|
|
|
DMA就是一个搬运工,可以将数据从一个位置搬运到另一个位置。
以UART为例,如果要接收数据,会触发UART中断,然后CPU介入,在中断中通过CPU将UART输入寄存器的值读出来,存放到内存中; 而DMA方式,产生UART中断后,DMA直接参与,把UART输入寄存器的值搬运到内存中,CPU只需要在去检查内存的值就好了,这样提高了CPU的效率。 |
|
|
|
|
|
对于数据量的大的应用,有DMA可以提高效率。
|
|
|
|
|
|
DMA是一个不占用CPU即可将数据从一个地址搬运到另一个地址,可以降低CPU开销,不使用也不影响
|
|
|
|
|
|
DMA的发送是不占用CPU的时间的,CPU可以去做其他的工作的
|
|
|
|
|
|
DMA的作用是可以让CPU不专门处理串口接收,串口外设对应的DMA通道可以直接将数据放到定义的缓存里。CPU可以等收完了再去处理。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1021浏览 1评论
1850浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1360浏览 1评论
1852浏览 0评论
1178浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:27 , Processed in 1.344655 second(s), Total 102, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1719