TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C674X中EDMA3的问题

使用EDMA3进行Ping-Pong方式McASP数据传送,软件处理中,设置一个PingPong标志,当接收到一个TCCNUM的EDMA3中断时,进行数据处理,并将PingPong标志反转。但由于程序正常运行时,有长时关闭中断的需求,此时可能CPU会关闭中断,因而造成PingPong的2帧数据都被处理过了,由于EDMA3会一直不停的根据PingPong来接收与发送数据,因此再次打开中断时,系统软件还是按照关闭中断前的PingPong标志位进行处理McASP数据,此时有可能CPU处理的数据通道与EDMA3正在使用的通道是同一个通道。那么会造成数据处理错误。怎么解决这个问题?

  是否可以把Ping的PARAM中的TCCNUM与Pong中的PARAM的TCCNUM设置为不一样的值,从而可以区分此时来的中断是处理哪一个Param的中断。

  TCCNUM是否与同步事件相关(0:McASP0发送中断,1:McASP0接收中断,。。。),还是可以自行定义(例如:McASP0发送,我可以设置为20,21等,不是0)

有128个Param,前面的Param(32个)与事件对应(0:McASP0发送中断,1:McASP0接收中断,。。),后面的部分用作Link,那么Link的时候产生的中断是由前面32个OPT值决定TCC,还是后面级联param中的OPT决定TCC值?(例如:McASP0—param[0]—>param[40]<—>param[41],TCC每次都是Param[0]中Tcc,还是运行哪个Param,就触发哪个Param中的TCC中断事件)

 

Tony Tang:

xing zhao

是否可以把Ping的PARAM中的TCCNUM与Pong中的PARAM的TCCNUM设置为不一样的值,从而可以区分此时来的中断是处理哪一个Param的中断。

:可以。

  TCCNUM是否与同步事件相关(0:McASP0发送中断,1:McASP0接收中断,。。。),还是可以自行定义(例如:McASP0发送,我可以设置为20,21等,不是0)

:可以自行定义,只要与其它没有冲突,你自己知道如何对应的就好了。

有128个Param,前面的Param(32个)与事件对应(0:McASP0发送中断,1:McASP0接收中断,。。),后面的部分用作Link,那么Link的时候产生的中断是由前面32个OPT值决定TCC,还是后面级联param中的OPT决定TCC值?(例如:McASP0—param[0]—>param[40]<—>param[41],TCC每次都是Param[0]中Tcc,还是运行哪个Param,就触发哪个Param中的TCC中断事件)

中断都是由自己的OPT里TCC指定的。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C674X中EDMA3的问题
分享到: 更多 (0)