2025-12-24 11:17 AM
Hi Everyone, I've followed STguide on Ethernet on H755 using RTOS
and a github on ETH on bare metal (my case)
https://github.com/AngryCarrot61/NUCLEO-H755ZI-Q_003_ETH?tab=readme-ov-file
i got the board to work and ping, I've implemented MPU and connected it to a laptop
DHCP is disabled, my laptop ip is 10.0.0.100, subnet 255.255.255.0, gateway 10.0.0.1
the mcu ip is 10.0.0.60
The ping works only if i flash the M4 core with an empty application which gets halted by the HSEM (it never works unless i flash the M4 first after power up) and the connection never lasts more than a minute.
Looking for some help, i've included the whole zip file of the project if someboy could replicate it on their machine, i'm using a H755ZI nucleo board
The problem seems to be releated to Rx heap size, but I'm lost
Solved! Go to Solution.
2025-12-25 8:42 AM
Hello @Federico24, and welcome to ST Community!
The reason your application stops working after about one minute is that LwIP is not utilizing the RxPoolSection you configured. Inside ethernetif.c, the variable memp_memory_RX_POOL_base is expected to be associated with a memory section named Rx_PoolSection. However, in your linker file, the memory section is named Rx_ArraySection, which needs to be corrected.
Additionally, you set LWIP_RAM_HEAP_POINTER to 0x30004000, but in the MPU configuration, it is set to 0x30040000. This discrepancy should be fixed as well.
I have attached a working project inspired by the example and knowledge base you mentioned. Please inspect and analyze it to identify the necessary modifications.
Best regards,
2025-12-25 8:01 AM
Hello,
Why you don't simply use the available example on Github provied by the article you've already mentionned?
The link to the Github: https://github.com/stm32-hotspot/STM32H7-LwIP-Examples
And select STM32H745_Nucleo (Could be used with STM32H755_Nucleo)
2025-12-25 8:42 AM
Hello @Federico24, and welcome to ST Community!
The reason your application stops working after about one minute is that LwIP is not utilizing the RxPoolSection you configured. Inside ethernetif.c, the variable memp_memory_RX_POOL_base is expected to be associated with a memory section named Rx_PoolSection. However, in your linker file, the memory section is named Rx_ArraySection, which needs to be corrected.
Additionally, you set LWIP_RAM_HEAP_POINTER to 0x30004000, but in the MPU configuration, it is set to 0x30040000. This discrepancy should be fixed as well.
I have attached a working project inspired by the example and knowledge base you mentioned. Please inspect and analyze it to identify the necessary modifications.
Best regards,