hi,ti专家们:
我在优化算法时候,用DMA搬数据,但是速度没有提高,反而更慢,用了ping pong的。
一般什么情况下,不适宜用DMA啊?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,
1. 大数据量搬移
2.由于配置EDMA需要时间,如果可以,请使用Link
3.EDMA文档里有介绍什么情况下EDMA效率最高,请也参考。
你好,
1. Link的参数更新是会隐藏在上一个传输中的。
2. 如果需要修改参数表,建议只修改改变的那几个参数,不要全部写一遍。
3. 什么叫大量我也没有定数。EDMA是传输是配置EDMA时间+传输时间。你可以测试一下,看你系统上传输多少byte后,比memcpy效率高。
Chris Meng 说:你好,
2. 如果需要修改参数表,建议只修改改变的那几个参数,不要全部写一遍。
3ks!Chis Meng:
我尝试了你的第二条建议,我每次只改变 src 和dst 地址,其他的都不重新配置了。
性能有所改善了,当我尝试去掉所有不必要的,没有改变参数的时候。出现了问题。
不知道为什么,非要每次都要调用EDMA3_DRV_setTransferPaRams();里面的
a cnt bcnt ccnt,因为这几个参数其实也没有改变过的,但是,如果不调用这个配置,
程序就会死在DMA_wait里面,一直等待callback 返回。如果每次都配置,程序不会死,
但是程序会很慢。
谢谢!
Best Regards!