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.


Part Number: TMS570LC4357-EP
Other Parts Discussed in Thread: TMS570LC4357


I'm currently using the TMS570LC4357 chip and have successfully ported LWIP with the RMII interface onto it. Now, I'm trying to port FreeRTOS onto it, but I've encountered an issue: when task scheduling is enabled, pinging the board from the computer only succeeds twice; however, when task scheduling is disabled, ping is successful continuously.

In my project, I first perform the necessary system initialization, then initialize LWIP, enable system interrupts, and finally create three tasks. Two tasks handle serial printing, while one task controls LED blinking. All three tasks have the same priority set to 1.

Observations: When the LWIP processing function is within the EMAC receive interrupt and vTaskStartScheduler is used, after powering on the system, only two ping packets can be successfully received. If I comment out the vTaskStartScheduler function, continuous ping is possible.

Later, I moved the LWIP processing function into a task and set its priority to 2. Inside the EMAC receive interrupt, I give a semaphore, and then in the task, I try to obtain the semaphore. If successful, I proceed with data processing. However, the issue persists, and no packets are successfully received.

Subsequently, I verified that once inside the task, ping becomes ineffective. What could be the reason for this? (If I add a long delay before the vTaskStartScheduler function, the success rate of ping increases accordingly, and when the breakpoint stops inside the task, ping times out.)

How can I resolve this issue? Your assistance would be greatly appreciated.

Thank you.