我使用6670EVM板卡,运行论坛上给出来的VCP2例程,因为程序中需要中断,我在初始化中加了KeyStone_Exception_cfg(),在运行Test_VCP2解码程序的时候出现错误:
VCP2 External exception happened.MEXPFLAG[0]=0x800000.
EDMA module 2 error
TC 0 error happened
EDMA3TC has detected an error at source or destination address
read error (1). TCC=0 TCINTEN=0. TCCHEN=0
当我把该异常处理函数里面的退出指令注释掉,发现程序可以运行,解码也是正常的,但是重新load程序就不运行,必须关闭电源重启EVM。
我将类似语句:myParamSetup.dstAddr = (Uint32) & (hVcp2Vbus->VCPWBM);的地址改为myParamSetup.dstAddr =0x8200000哎0,就不会出现TC0的错误,当然解码失败。看现象好像是这个地址出错。请问这里究竟是什么问题。该如何修改?
Andy Yin1:
是read error,应该跟你说的dstAddr无关,check一下源地址,及其他的EDMA配置,有没有可能是由于参数配置错误导致memory访问越界。
Jianyong Wei:
目前我 把KeyStone_Exception_cfg()里面的使能external exception注释掉,功能都是正常的。不知道对其他部分有没有影响?
Jianyong Wei:
回复 Andy Yin1:
我查找了没有发现有源地址越界,代码是论坛上发布的VCP代码。我后来发现重新加载不能运行的原因是定时器中断处理函数加了printf,去掉就可以
TI中文支持网