ATSAME系列芯片DMA异常处理

[复制链接]
 楼主| xinzhaodadi 发表于 2020-9-4 15:27 | 显示全部楼层 |阅读模式
请教:比如启用了多路DMA通道,若担心某通道接收异常,DMA怎样处理较好?另外,为了通信可靠,是否每次DMA收发成功都重新配置其参数为好?
可爱的烧饼 发表于 2020-9-4 15:48 | 显示全部楼层
不用的,DMA设置一次就可以了,不用总是设置的。
 楼主| xinzhaodadi 发表于 2020-9-4 18:20 | 显示全部楼层
可爱的烧饼 发表于 2020-9-4 15:48
不用的,DMA设置一次就可以了,不用总是设置的。

我现在是多个串口同时收发工作,每个收发都单独对应一个通道,仿真时发现有个时候接收到的数据顺序不对,想的是重新配置DMA 相应通道,现在不知道怎样处理更好
勇敢的大白菜 发表于 2020-9-6 07:42 | 显示全部楼层
重新配置,就是重新进行初始化即可,没有过多的要求。
huangcunxiake 发表于 2020-9-6 23:16 | 显示全部楼层
一次就行了。你也可以某些空闲后,或者休眠唤醒后重新配置。
别看我照片 发表于 2020-9-7 14:03 | 显示全部楼层
感谢楼主的分享,真的是受益匪浅的事情。不错,一直。
明天真的好 发表于 2020-9-7 16:04 | 显示全部楼层
其实只要一次重置就可以了,不用太多次的重置吧,我没有用过,不知道为什么?
 楼主| xinzhaodadi 发表于 2020-9-8 16:42 | 显示全部楼层
本帖最后由 xinzhaodadi 于 2020-9-8 16:52 编辑

源地址、目标地址(描述地址)、收发数据个数可不需要重新配置,但是,就传输(_dma_enable_transaction函数)和中断(_dma_set_irq_state函数),我现在的测试和应用的情况,是需要根据应用来重新开启或开关中断的。不知道大家的经验如何?
另外,向大家请教和学习,回调函数内可以执行多数据处理程序吗?还是像中断一样尽量放少的程序?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

119

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部