打印
[通用 MCU]

等待DMA传输完成的目的包括

[复制链接]
109|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
为你转身|  楼主 | 2024-3-29 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
轮询或等待DMA传输的完成状态是为了确保数据在DMA传输完成之前不会被更改或丢失,并且在数据发送完成后能够执行后续的操作。具体来说,等待DMA传输完成的目的包括:

确保数据完整性:在DMA传输过程中,数据正在从一个位置传输到另一个位置。等待传输完成意味着等待所有数据都已经从源地址传输到目标地址,确保数据完整性。

准确判断传输状态:等待传输完成可以确保在检查传输状态时获得准确的结果。只有在传输完成后才能判断传输是否成功或失败。

避免竞态条件:如果在DMA传输尚未完成时对数据进行处理或更改,可能会导致竞态条件,即不可预测的结果。等待传输完成可以避免这种情况的发生。

执行后续操作:一旦传输完成,可以执行后续的操作,例如发送下一批数据、处理接收到的数据或者通知应用程序数据发送已完成等。

因此,轮询或等待DMA传输的完成状态是确保数据传输安全和可靠性的重要步骤,尤其是在需要确保数据完整性和可靠性的应用中,如通信系统、数据存储等。

使用特权

评论回复
沙发
tpgf| | 2024-4-7 09:46 | 只看该作者
这里的等待 并不耗费单片机的自身的资源吧

使用特权

评论回复
板凳
观海| | 2024-4-7 12:18 | 只看该作者
所有的这些流程应该都是启用dma之后自动进行的吧

使用特权

评论回复
地板
guanjiaer| | 2024-4-7 13:03 | 只看该作者
执行后续操作需要有多长时间的等待时间啊

使用特权

评论回复
5
heimaojingzhang| | 2024-4-7 14:08 | 只看该作者
启用dma的话 也需要轮询或者等待吗

使用特权

评论回复
6
weifeng90| | 2024-4-7 19:16 | 只看该作者
最大化利用CPU

使用特权

评论回复
7
八层楼| | 2024-4-7 22:54 | 只看该作者
这种等待传输完成是自动完成的还是需要进行轮询等待

使用特权

评论回复
8
晓伍| | 2024-4-7 23:28 | 只看该作者
通过判定什么条件可以知道传输已经完成了呢

使用特权

评论回复
9
huquanz711| | 2024-4-20 22:05 | 只看该作者
DMA的发明确实提升了CPU的利用率

使用特权

评论回复
10
zhengshuai888| | 2024-4-21 11:58 | 只看该作者
这样可以减少CPU的干预,提高利用率。

使用特权

评论回复
11
小夏天的大西瓜| | 2024-4-22 20:34 | 只看该作者
轮询或等待DMA传输的完成状态是确保数据传输安全和可靠性的重要步骤,尤其是在需要确保数据完整性和可靠性的应用中,如通信系统、数据存储等

使用特权

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

本版积分规则

37

主题

405

帖子

0

粉丝