最近需要利用C6747里面的EDMA3模块,刚开始调试程序,准备先实现一个简单的功能,把一个数组的数据搬到另一个数组里面去,调试了几天都没有成功,先把自己的配置流程说明一下,麻烦大家帮帮我看看哪里出问题了?
1、首先是对EDMA3模块进行初始化,利用PSC0对CC和TC0和TC1进行初始化
初始化完后,我仿真看了PSC0模块的MDSTAT0寄存器的值如下:
a1就是MDSTAT0寄存器的值,可以看到0x00001E03的03代表模块已经使能,1代表模块时钟是开启的。
2、然后初始化EDMA3模块,
可以看到DARE[1]的值0x00000200,第九位置1了。
然后将第九通道排到队列0里面:
配置完后看对应寄存器DMAQNUM[1]的值为:
DMAQNUM[1]的的E9,即4-6位为0,即将第九通道事件设置到队列0里。
配置完后查看对应寄存器值为:
可以看到源地址为:0x008246E0,目标地址为0X008246E8,ACNT为1,BCNT为6,SRC_BIDX和DST_BIDX都为1,CCNT为1,SRC_CIDX和DST_CIDX都为0,我设置的源数组值和目标数组值如下:
对比上面的参数RAM的值可以看到,源地址和目标地址都是正确,整个数据搬送过程我是通过手动触发的,通过将ESR寄存器的第九位置1来触发,然后调试中看到参数RAM的值为:
最后麻烦大家帮我看看是哪里出问题了!十分感谢!

