cancel
Showing results for 
Search instead for 
Did you mean: 

ETH H755 Nucleo Hard Faults

Federico24
Associate

Hi Everyone, I've followed STguide on Ethernet on H755 using RTOS

https://community.st.com/t5/stm32-mcus/how-to-create-a-project-for-stm32h7-with-ethernet-and-lwip-stack/ta-p/49308/page/2/show-comments/true

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

1 ACCEPTED SOLUTION

Accepted Solutions
STackPointer64
ST Employee

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,

To improve visibility of answered topics, please click 'Accept as Solution' on the reply that resolved your issue or answered your question.

View solution in original post

2 REPLIES 2
mƎALLEm
ST Employee

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)

mALLEm_0-1766678390742.png

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
STackPointer64
ST Employee

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,

To improve visibility of answered topics, please click 'Accept as Solution' on the reply that resolved your issue or answered your question.