2019-03-11 08:01 AM
Receiving TCP stream that spans two packets fails after several seconds. Pings still work.
Ethernet Receive Logic Review using STM32Cube_FW_H7_V1.3.2/Projects/STM32H743ZI-Nucleo/Applications/LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/ethernetif.c
HW MAC Questions:
Tim
2019-03-13 02:09 PM
I can't help with the other issues, but regarding your "calls several APIs" question. I recently asked ST about HAL_ETH_IsRxDataAvailable() being called by the ISRHandler and also the CMSIS driver without any locking, and ST indicated:
[ST Response ] It's fixed and will be part of the next release 1.4.0 Regards.
This is referring to the next release of the STM32H7 HAL ETH driver. It is currently 1.3.0.
In my case this problem was causing intermittent crashes of the ETH driver and network.
2019-03-13 02:26 PM
When is 1.4.0 going to be released?
2019-04-12 10:22 AM
Was stuck on this bug for a good few days since you actually has to see what Keil is doing in their ETH rx proccess thread to figure out whats wrong.
Also was totally random when the ETH driver got locked. This fix is for Keil MDK, I cant say anything about other network stacks.
For a quick patch comment this line out in the HAL driver source file stm32h7xx_hal_eth.c:1169 (DFP 2.2.0):
if(HAL_ETH_IsRxDataAvailable(heth) == 1) => //if(HAL_ETH_IsRxDataAvailable(heth) == 1)