AWR2544 Demo程序,编译下载都已成功,想看看ENET的RX数据,出现程序卡死的情况。请问如何解决?
文件:C:\ti\mmwave_mcuplus_sdk_04_06_00_01\mmwave_mcuplus_sdk_04_06_00_01\ti\demo\awr2544\mmw\mmw_enet\mmw_enet.c
函数:static void MmwEnet_rxTask(void *args)
此函数中,增加了打印代码,想看看RX的数据内容,但是程序执行到红色注释的位置就卡死了,没有任何响应了。
增加的打印代码:
while(1)
{
SemaphoreP_pend(&mmwEnetObj.rxSemObj, SystemP_WAIT_FOREVER);
/* Get the packets received so far */
rxReadyCnt = MmwEnet_receivePkts();
if (rxReadyCnt > 0U)
{
EnetAppUtils_print("rxReadyCnt = %d\r\n", rxReadyCnt); // 这里打印没问题
/* Consume the received packets and release them */
pktInfo = (EnetDma_Pkt *)EnetQueue_deq(&mmwEnetObj.rxReadyQ);
while (NULL != pktInfo)
{
EnetDma_checkPktState(&pktInfo->pktState,
ENET_PKTSTATE_MODULE_APP,
ENET_PKTSTATE_APP_WITH_READYQ,
ENET_PKTSTATE_APP_WITH_FREEQ);
frame = (EthFrame *)pktInfo->sgList.list[0].bufPtr;
EnetAppUtils_print("Filled len = %d, Alloc len = %d\r\n", pktInfo->sgList.list[0].segmentFilledLen, pktInfo->sgList.list[0].segmentAllocLen); // 这里打印没问题:Filled len = 60, Alloc len = 1536
EnetAppUtils_print("buf address = %p\r\n", frame); // 这里打印没问题 :buf address = C025B800
EnetAppUtils_print("eth Type = %04x\r\n", frame->hdr.etherType); // 这里不能打印,程序就卡死在这里,后面就不在打印了。
EnetAppUtils_print("Check point 1111 \r\n"); // 因为上面卡死,这里就不再打印。整个程序就没有任何响应了
。。。。。。。。
如果去掉红色注释的一行打印代码,程序可以一直执行下去
请问,这是什么情况,该如何解决?