2021-06-21 12:33 AM
Hi, I'm using STM32H7 nucleo board and I have written a simple UDP client that receives a message and loops it back.
I was using the LwIP Socket API for this (lwip_sendto) and using Wireshark I can see that packets are coming out of the board, but the data section is filled with 0s (the header looks fine).
After debugging it for a while, and using udp api directly (udp_send) - where I was successful using this loop test, I found out that the difference was that when I used the socket API I just passed the data as a local buffer, the API itself allocated the pbuf (using pbuf_alloc) and when it does so, it does not leave space for the header, which is later added as another pbuf that points to my data.
I followed the code up until these pbufs are loaded into the DMA TxBuffers in ETH_Prepare_Tx_Descriptors function, they are copied correctly into the right descriptors and they updated the length correctly, but for some reason. The DMA does not transmit the second TxBuffer on DESC1.
I need the socket API for my final solution (for design purposes) so using the udp API is not an option unfortunately.
I would appreciated any advice.
2021-07-08 06:16 AM
Hello @IKayk.1 ,
Your issue has been reported internally and is being investigated. I will keep you informed.
Thanks for your contribution.
BeST Regards,
Walid