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

同问BCP例程调不通问题

min wang1:

Andy Yin ,您好:

      我想问一个wenzheng liu之前问过的有关BCP例程调试不通的问题,我们也遇到了信号量pend等不到中断响应去post它。您之前的回答是“不要加上SIMULATOR_SUPPORT”,而我们并没有定义SIMULATOR_SUPPORT,但程序还是调不通,同样是上述问题,想请问一下还可能是什么原因,非常感谢!

min wang1:

回复 min wang1:

原帖在:www.deyisupport.com/…/14024.aspx

min wang1:

http://www.deyisupport.com/question_answer/f/53/t/14024.aspx

Andy Yin1:

回复 min wang1:

您好,

将Bcp_main.c中的#define SIMULATOR_SUPPORT注释掉,在core0上跑。给出你的测试过程及运行的PDK版本。

min wang1:

回复 Andy Yin1:

Andy Yin:

    您好,非常感谢您的回复,#define SIMULATOR_SUPPORT是注释掉的,我在PDK_17、_19、_21上都跑过,结果都一样,下面这些是pdk _21版本的测试结果:

[C66xx_0] **************************************************

[C66xx_0] *************** BCP Example Start ****************

[C66xx_0] **************************************************

[C66xx_0] Using BCP Driver version: 0x1000009 Version Info: BCP Driver Revision: 01.00.00.09:May 25 2012:13:13:45

[C66xx_0] [Core 0]: L1D cache size 0. L2 cache size 0.

[C66xx_0] [Core 0]: BCP instance 0 successfully initialized

[C66xx_0] [Core 0]: BCP driver successfully opened

[C66xx_0] Global FDQ 877 successfully setup with 256 descriptors

[C66xx_0]

[C66xx_0] ————– LTE UL Test Start ————–

[C66xx_0] Rx FDQ 736 successfully setup with 62 descriptors

[C66xx_0] Flow 0 opened to send data to RxQ: 900

[C66xx_0] Tx FDQ 737 successfully setup with 2 descriptors

[C66xx_0] LTE UL Test:    PASS

[C66xx_0]

[C66xx_0] ————– LTE DL Test Start ————–

[C66xx_0] Rx FDQ 736 successfully setup with 62 descriptors

[C66xx_0] Flow 0 opened to send data to RxQ: 900

[C66xx_0] Tx FDQ 737 successfully setup with 2 descriptors

程序到这就halt住了,而且四个core显示的都是running状态,感觉bcp_send的数据并没有收到,中断没有启动,所以信号量hRxSem并没有post,因此程序停在了Semaphore_pend (hRxSem, BIOS_WAIT_FOREVER)的地方。

麻烦您给看看,谢谢啦。

Andy Yin1:

回复 min wang1:

您好,

在C6670 Errata中提到对于PG1.0版本的芯片,CRC可能存在异常,所以很有可能是由于CRC模块异常导致,所以建议修改代码,不经过BCP CRC模块,看看BCP能否输出数据,如果可以的话就是CRC模块异常导致。在实际应用中建议使用软件实现CRC,具体可参考C6670 Errata关于CRC相应的规避方式。

同时可以加上SIMULATOR_SUPPORT宏定义,在simulator环境测试看看,如果可以通过的话也大致可以证明是CRC模块的原因。

min wang1:

回复 Andy Yin1:

Andy Yin:

     您好,非常感谢您的解答,问题的确是由CRC模块导致,不经过CRC模块程序就可以一直跑下去。我仔细阅读了您上面提到的C6670 Errata文档,但文档中只是概括的说用软件方法实现,有一些细节的东西我还不是很了解,想再请教一下。我现在是自己编程给输入信息比特加CRC校验,并直接注释掉bcp_lte_dl.c中下面部分:

   /* Header 2: CRC Header */

   prepare_crchdr_cfg (&crcHdrCfg, radioStd, tbSize, codeBlkParams.numFillerBits, 0, 0, 0, 0, 0, 0, 0, NULL);

   if (Bcp_addCRCHeader (&crcHdrCfg, pDataBuffer, &tmpLen) < 0)

   {

#ifdef BCP_EXAMPLE_DEBUG

       System_printf ("Failed to add CRC Header to packet \n");

#endif

       return -1;

   }  

   pDataBuffer      += tmpLen;

   dataBufferLen  += tmpLen;

   tmpLen          = 0;

但结果不对,如下所示:

[C66xx_0] ————– LTE DL Test Start ————–

[C66xx_0] Rx FDQ 736 successfully setup with 62 descriptors

[C66xx_0] Flow 0 opened to send data to RxQ: 900

[C66xx_0] Tx FDQ 737 successfully setup with 2 descriptors

[C66xx_0] Reading test configuration …

[C66xx_0] Sending a packet of len 432 to BCP …

[C66xx_0] Waiting on output from BCP …

[C66xx_0] Got 1 packet(s) from BCP

[C66xx_0] [Pkt 0]: Total Len: 50416 DestnTag: 0x0 SrcId: 0x0

[C66xx_0] LTE DL Test:    FAILED

[C66xx_0]

[C66xx_0] ————– BCP Testing Complete ————–

[C66xx_0] Num Test Failures = 1

[C66xx_0] **************************************************

[C66xx_0] ****************** BCP Example End ***************

[C66xx_0] **************************************************

[C66xx_0] [Core 0]: BCP Example Unloaded successfully

[C66xx_0] BcpAlloc Cnt:135 BcpFree Cnt: 135

[C66xx_0] CppiMalloc Cnt:1 CppiFree Cnt: 0

[C66xx_0] QmssAlloc Cnt:0 QmssFree Cnt: 0

自己改来改去还是不对,所以想问一下您还需要配置哪些东西,非常感谢!

min wang1:

回复 Andy Yin1:

Andy Yin:

   您好,问题已经解决,非常感谢您的指导!

赞(0)
未经允许不得转载:TI中文支持网 » 同问BCP例程调不通问题
分享到: 更多 (0)