打印
[技术讨论]

关于DMA传输的理解

[复制链接]
29|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qinlu123|  楼主 | 2024-11-15 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以SPI+DMA举例,我认为SPI+DMA比较适合固定设备周期性读取数据,在DMA接收完成中断里开启下一次DMA读取可以极大解放CPU。但是用DMA发送会有些困难,因为使用了DMA那么SPI发送就不再是阻塞式,当下一次调用DMA发送函数时有可能上一次还没发送完(尤其是在for循环里调用SPI发送)需要判断当前的SPI总线是否忙碌,如果阻塞式等待SPI进入空闲状态那么使用DMA就没有了意义,如果非阻塞式等待那么逻辑就会复杂许多,如果一个总线挂载多个设备那么逻辑又会复杂一个维度。除非是大数据量且发送周期远大于传输时间,这样就可以把DMA发送当成普通发送来处理不需要再判忙了即解放了CPU又不会造成复杂的代码逻辑。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

147

主题

1419

帖子

12

粉丝