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.
Tool/software: Code Composer Studio
Hello,
I have been working on an application on the Hercules TMS570LC43x development kit. I have integrated FreeRTOS within the application and now I was hoping to create a task which would send some data over UDP, along with other tasks that read data from Flexray and CAN, and communicate between each other via a queue.
The library chosen for UDP sending is lwIP, a library which I have already been able to successfully integrate with the Hercules TMS570LC43x development kit.
However, the two, FreeRTOS + lwIP seem to not work together. I have managed to successfully setup the EMAC hardware, because I can see these configuration messages in the terminal :
If I try to send some data over UDP, the following happens:
1. The lwIP library tries to send an UDP package to the given IP address, but because it does not know the MAC address of the receiving computer, sends an ARP request in order to find the MAC address.
2. The packet gets sent, and no error is signaled on the Hercules board, the TXGOODFRAMES register gets incremented.
3. On the receiving computer, running tcpdump in order to see the packets, outputs the following:
These should be ARP packages, however, somehow it seems that the data gets corrupted, since on the receiving computer, no sending address, or receiving address is found.
I have also tried to move the EMACCore0RxIsr and EMACCore0TxIsr interrupts to FIQ instead of IRQ, and disable IRQ handling via VIC controller, but to no success. I have seen that there are many functions which swizzle the data, and maybe those are corrupting the data in some way, but I have not been able to find anything yet.
To summarize, there are a few questions that I would be grateful for an answer:
1. What does the FreeRTOS do that somehow messes with the lwIP library?
2. Are there any extra steps that I might have missed in order to make the library work?
3. Is there another library for sending UDP data that works reliably with FreeRTOS?
4. Has anyone encountered this payload : "[|llc]", and what does this mean?
Thank you,
Adrian.