Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE
Hi,
I am also having problems running the lwIP FreeRTOS example.
I haven't found a solution yet, and the related link below was not helpful:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1563127/tms320f28388d-lwip-with-freertos?keyMatch=lwip%20freertos&tisearch=universal_search
The only way I found to run the lwIP FreeRTOS example on the TMS320F28388D is by using CCS 12.8. I guess if I had installed the correct compiler in CCS 20.3.1, it might work, but the problem is in the import project—CCS 20.3.1 doesn’t have the right compiler.
For the import project, I used ethernet_ipc_ex1_basic_c28x1 and changed the code to keep the CPU1 line, like putting a while(1); there. I think the example ethernet_ipc_ex1_basic_c28x1 initializes the correct pins necessary to run lwIP.
So, I used the ethernet_ipc_ex1_basic_c28x1 project as the base for CPU1 and also added the enet_lwip_freertos project to my workspace. To debug and run lwIP, I flashed CPU1 with ethernet_ipc_ex1_basic_c28x1 selected, and CM selected enet_lwip_freertos. I started debugging and ran CPU1, then ran CM, but the software stopped at least 6 times on an assert.
I also modified lwIP to create a UDP server that runs properly. To test the interface, I developed a small tool to connect to the TMS320F28388D. Basically, the tool connects, sends a message, waits for a reply, then disconnects. The tool has a loop to send the same message multiple times at a 10 ms frequency.
On the server side (TMS320F28388D), it receives the message, turns a GPIO on or off, and sends a message back to the client (my tool). The system runs for roughly 30 minutes, then the TMS320F28388D hits the same assert function: vAssertCalled.
Sometimes I stop my client tool, wait about 5 minutes, then the TMS320F28388D recovers, and I can send messages from the client tool again.
My main questions are:
-
What is the correct way to run the TMS320F28388D lwIP FreeRTOS example?
-
Using the infrastructure I mentioned, I would expect the system to run from the start without hitting the assert breakpoint 6 times.
Additional information: In the connection accept, I only keep references to active connections, and in the main loop, I clean up connections that are no longer in use. I assume lwIP should manage this, but I do it anyway.
I need an official infrastructure or method to at least successfully run the TI lwIP FreeRTOS example. Suggestions regarding the TMS320F28388D stopping after about 30 minutes of running are also welcome.



