您好,我目前在使用贵公司TMS320C6455自带的TCP2协处理器,目前是基于贵网站提供的例程“tcp2_standalone_mode”上进行相应的修改已适用我的需求。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,我目前在使用贵公司TMS320C6455自带的TCP2协处理器,目前是基于贵网站提供的例程“tcp2_standalone_mode”上进行相应的修改已适用我的需求。
1. TCP2_statTcpState是读TCPSTATE状态寄存器,读取状态值来确定TCP是否译码完成;这个函数在csl_tcp2Aux.h中有源码查看;
在这里不推荐都状态机的方式,因为此时可能译码结果还没有通过EDMA搬移到外部实际memory,推荐配置TCPRX EDMA在搬移完成后产生一个中断事件的方式来通知外部处理;
2. Tcp2_standalone_mode_example.c line181有明确的参数传递帧长,configBase.frameLen = frameLen; 所以只需要修改tcpExampleData.c中的frameLength即可;
3. CRCITERPASS: configBase.numCrcPass = 0; /* default value, 配置为0、1均对应1次迭代CRC正确即推出 */
迭代次数:configBase.maxIter = MAX_TCP_ITERATIONS;configBase.minIter = MIN_TCP_ITERATIONS;
4 数据手册在http://www.ti.com/product/tms320c6455 (user guide)下载最新的版本为准,如有问题请详细列出讨论。
关于上述问题,都可以在TCP2例程的源码中找到,例程中调用的函数TCP2_statTcpState等都是csl函数,下载安装mcsdk后,源码分布在pdk_c64x_1_00_00_06\components当中相应device src目录下inc及src的文件当中,TCP2的例程包含在pdk_c64x_1_00_00_06\packages\ti\csl\c6457\csl_c6457\example\tcp2
mcsdk:http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/01_00_00_08/index_FDS.html
关于TCP2具体的编程及寄存器定义请参考TCP2 user guide相关章节。
1、最后发现例程中对EDMA的配置参数用的都是根据当然数据信息的常数值。。。。通过修改,上面的N多问题都一一搞定了。。。总结一下还是pdf文档看得不仔细。
2、但是目前还是有一个问题,就是CRC校验,为什么我设置了configBase.crcLen = 6; configBase.crcPoly = 0x00000023;这个参数是从参考文档找的,这个对应的CRC生成多项式是x6+x2+x1+1。。。可是我调用了函数TCP2_statCrc,根据上面的CRC生成多项式进步CRC编码和turbo编码,再通过这个tcp2核来译码。译码结果和信息是相同的,但是这个TCP2_statCrc就是不返回1,,是不是我对CRC的上面两个参数配置不对?还是对EDMA的配置还不到位?
3、觉得pfd文档有疑问的地方:
我第一次说的pdf文档感觉有问题的地方是这个,感觉应该是 SP4 SP3 SP2 SP1 SP0.。。。