使用的芯片是tms320C6747,在使用EDMA3时,出现以下异常:
1、希望通过写ESR使能某通道传输,写入ESR后,相应的IPR位被置1,但从内存中读取的结果表明,传输未发生;
2、IPR被置位后,程序进入中断程序,进入的是6747的事件8对应的中断,应该不是error中断,而是正常的传输完成的中断;
3、Halt程序后,"Ctrl+R" Reset CPU 后,发现内存中的数据传输已发生,即上述EDMA传输的目标地址内已有数据;
4、使用外设触发,则工作较正常,未发生上述异象。
1、希望通过写ESR使能某通道传输,写入ESR后,相应的IPR位被置1,但从内存中读取的结果表明,传输未发生;
2、IPR被置位后,程序进入中断程序,进入的是6747的事件8对应的中断,应该不是error中断,而是正常的传输完成的中断;
3、Halt程序后,"Ctrl+R" Reset CPU 后,发现内存中的数据传输已发生,即上述EDMA传输的目标地址内已有数据;
4、使用外设触发,则工作较正常,未发生上述异象。
请帮助,谢谢!
Tony Tang:
是不是把Cache打开了,这块内存被CPU访问过,而且没有做Cache同步操作,所以读取到的数据是Cache里的数据而不是物理内存上的数据。在CCS的memory窗口里可以勾选查看Cache或者memory。
RESET CPU是清除了Cache的内容,查看到的就是物理内存的数据。