cancel
Showing results for 
Search instead for 
Did you mean: 

What kind of Ethernet controller errors could trigger the HAL_ETH_error_callback function?

genisuvi
Associate III

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:

  • But I would like to know what exactly kind of error detection could trigger this callback call.
  • If not possible to explain me it will be thankfull to know where can I find formal information about the whole list of ethernet errors that trigger this.

Thanks in advance.

2 REPLIES 2
Pavel A.
Evangelist III

You can search for all HAL_ETH_ErrorCallback calls in the stm32f2xx_hal_eth.c file and see yourself. It's only one file.

I did it, but it doesn't show too much hints. It only face DMA error flags, but not ethernet MAC core error flags.