您好:
我用定时器8产生EDMA3控制器0输入事件,让EDMA3去进行数据传输,传输完成产生DMA中断.我发现,我在CORE0上运行时,DMA没有进行数据传输,但是我在core1-core7上运行同样的工程时,DMA数据传输正常.请问,这有可能是什么原因造成的?误操作某些寄存器会导致这种情况吗? 谢谢!
Andy Yin:
si cheng您好,
可以比对一下core0上运行前后EDMA相关PaRAM及寄存器等与其他核运行正常时的差异,谢谢
Andy Yin:
回复 Andy Yin:
si cheng您好,
我查阅了一下文档,你这种触发EDMA的方式没有core的限制,需要注意的是使用EDMA时的源与目的地址需要保证为全局地址,即需要人为将L2地址转为全局的,你可以核实一下EDMA的PaRAM的配置,如果还有问题,可以将core0上运行异常前后,及其他核运行正常前后时的配置截屏贴上来分析。谢谢
si cheng:
回复 Andy Yin:
Andy Yin ,您好:
8个核我使用的是同一个.out文件,我将out文件加载到core0运行时,DMA没有传输数据,然后系统复位,加载到core1,运行正常,core2-core7的操作同core1都正常,DMA使用的地址均是全局地址,让我奇怪的时,8个核硬件上结构都一样,我使用相同的out文件,在不同核上运行,还有不同的效果,费解! 需要说明的是,我之前直接操作寄存器配置DMA传输数据时,偶偶也出现这种情况,我现在是用csl库实现的,之前和现在,我都是手动触发DMA事件,进行DMA传输, 然而,我现在将DMA触发事件改成定时器触发,core0运行就很正常!
Andy Yin:
回复 si cheng:
si cheng你好,
对你遇到的问题有点头疼,可否将你的工程简化共享一下呢,也方便共同调测一下,谢谢。