我使用EDMA例程运行,发现无法搬移数据。在将InstNum赋值1,也就是用1号EDMA时可以搬移,0号时不行。但是如果用simulator可以通过并搬移成功。请问这可能是什么原因?
我使用的开发环境是ccs5.2.1,MCSDK2.0.0,TMDSEVM6678L测试板,使用板载的XDS100V1仿真器。
调试过程中发现EMR经常产生写入。
另外有几个相关问题:
(1)手动触发传输成功有哪些前提条件?除了EMR为0,IER相应位置1,ESR相应位置1,还有别的寄存器上有要求么?
(2)如何初始化/清零所有寄存器?
(3)C6678中带有的三个EDMA除了支持通道数不同,有什么区别?
yu fei:
原准备附上程序,但是实在太长了,还是请看附件吧
yu fei:
麻烦还请各位专家抽时间解答一下,感谢!
Andy Yin1:
先回答你的几个问题:
1. 三个EDMACC在使用上没什么区别,主要是工作主频不一样,EDMACC0是1/2 CPU,其他的是1/3CPU;
2. 在配置好Paramset后,手动触发置位ESR的相应bit即可;
3. 对所需要配置的寄存器依次配置即可;
经常产生EMR有可能是在使能channel时Paraset为NULL或者前一个事件还未响应完就来了一个新的channel使能事件,附件的程序应该不会出现这种情况才对。你可以简化只测一个channel,只给一个使能事件,看看使能前后的paraset配置参数。
yu fei:
Andy你好,还有一些问题我不是非常明白
1、在手动触发的情况下,是否在EMR相应位为0,paraset完成,IER相应位为1时,将ESR操作置1,就一定能够传输?还是还有别的条件?
2、除了每个寄存器分别操作清零,有没有简便方法全部重置?
3、在重新load程序时,寄存器为何不会重置?
非常感谢!
yu fei:
请问怎么解决?