总结一下TMS320C6455的SRIO模块调试
1 测试TI的demo程序,是4x模式的,可以顺利的执行;
2 修改关键寄存器,配置不成功,可以通过0port的测试,但是其余三个总是调试不通过;
3 于是仔细读spru976,发现配置两个关键寄存器即可,但是其中一个是只读模式的。于是大惊,心想,莫非TI的这款C6455的rapid IO模块有问题,怎么能对这种只读存储器进行配置呢。
4 于是再仔细阅读,找到一个SW_PORT的寄存器在文档上有代码参考,但是这款DSP没有这个寄存器,于是找到相关感觉有问题的地方总结一下,通过各种渠道联系到了TI技术支持的回应,回应中一句话,有可能文档有些问题,但是配置两个寄存器即可切换 4 port模式和 1port 模式。这些话当时真是无用的,后来发现给了我一些启示,还是解决了这个模式切换的问题。
5 然后尝试srio user guide上的代码,发现可以配置4p1x成功,但是传输数据用lsu是不能全部成功的
6 自己决心写配置初始化的代码,繁琐的寄存器一个个配置完成,调试之后发现,还是不能实现lsu的正确传输,结果是0 port有问题,1,2,3 port都可以正确传输,但是传输一定数据后 3 port 就会出问题。
7 于是又返回头来折腾了demo的代码和 user guide 上的代码,二者结合后,终于实现了 4p1x的传输模式,数据100%正确。在evm上速度很高,但是担心在自己的板子上达不到这么高的速度。
8 总结发现,最后解决问题的竟然还是利用了TI给的CSL库