2023-06-01 03:05 AM
I'm working with stm32f207zg ethernet based project with LWIP stack, no RTOS and using HAL library. I have an udp server application implemented and running over there. It's talking with a python udp client. Not much data bytes on the udp transmitted packets.
Server is working under stress test:
1) Every client sends the same command in a infinite loop, waiting for answers, in a constantly way (same ratio).
2) Clients sends data request to the server and the server sends to them 16 payload data bytes.
The question is that after some working hours under stress test the server stops. Connection is lost because server stops receiving any frame.
After this, when client try to send frames, I can see how descriptor STATUS register has not set any error bit, but OWN bit is set for ever. DMA descriptor is not passing to the MAC core any more.
So I decided to use HAL_ETH_ErrorCallback() in order to get new information about possible errors that triggers this callback call.
Questions:
Thanks in advance.
2023-06-01 06:21 AM
You can search for all HAL_ETH_ErrorCallback calls in the stm32f2xx_hal_eth.c file and see yourself. It's only one file.
2023-06-01 07:34 AM
I did it, but it doesn't show too much hints. It only face DMA error flags, but not ethernet MAC core error flags.