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.

AWR2544: Enet的RX数据不能访问

Part Number: AWR2544


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"); // 因为上面卡死,这里就不再打印。整个程序就没有任何响应了
 
。。。。。。。。
如果去掉红色注释的一行打印代码,程序可以一直执行下去
请问,这是什么情况,该如何解决?