Skip to main content
Associate
August 18, 2026
Question

STM32H755ZI-Q: LAN8742,problem with ping after dhcp server gives ip address to the nucleo-board.All set-up made by example for STM32H745ZI-Q

  • August 18, 2026
  • 2 replies
  • 74 views

Hi
I am trying to make simple setup for H755ZI-Q nucleo-board with ETH + LWIP + RTOS. I was using  this Forum Section as the source of example that i used (H745ZI-Q) that is by all documents have same characteristics as my board and compatible with it . 

So back to the Problem, my board doesn^t respond to ping that i send even when the dhcp server that i started on my PC gives me that the board on this “IP-address” . After what the ping don^t  go through.  I added a breakpoint to "void ETH_IRQHandler(void)". After the initial power-on, the system reaches the breakpoint three times even when there is no ping command on the Ethernet port. Can u please help me with that?

I tried to reconfigure everything from flash memory , turn off the Cache to check if that change anything , I have even Hybrid of RTOS + Raw Api ETH + LWIP that works. I could not understand is smth wrong with my board or with code that generates cause in Documents everything sounded simplier. 
 
My Project (Main Files)

Exam
ple that was used as Reference

2 replies

Associate
August 18, 2026

Hello.
To enable ICMP you need to set up:

#define LWIP_ICMP 1
#define LWIP_IPV4 1

Also, please check that LWIP_ARP is 1. If everything looks fine, use Wireshark to capture packets — if you see something like "Checksum Error", you have a problem with your checksum settings.

Next, I suspect ETH_IRQn doesn't have an explicit HAL_NVIC_SetPriority call, so it stays at its default priority of 0 — the highest urgency in Cortex-M NVIC. Since osSemaphoreRelease (called inside HAL_ETH_RxCpltCallback) is an ISR-safe FreeRTOS API, the interrupt priority must be numerically ≥ configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY (5 in your config). Priority 0 violates this — DMA physically receives the frame, but the semaphore release may not safely propagate to the ethernetif_input task.

I haven't fully confirmed why DHCP would still succeed through the same RX path — worth checking that separately if the priority fix alone doesn't resolve it.

Associate
August 19, 2026

Hi.

I double checked everything u wrote  and is set right as u sayed arp 1 icmp 1 ipv4 1 but as u can see on the screenshot it boots without checksum errors so i can not confirm or deny what u said. 

So my last suggestion was the thread that makes MX_LWIP_INIT(); , I cant double check that cause it make my laptop crash CubeIDE and actually hard to be checked , but it the last thing i cant double check . 

memset(&attributes, 0x0, sizeof(osThreadAttr_t));

attributes.name = "EthLink";

attributes.stack_size = INTERFACE_THREAD_STACK_SIZE;

attributes.priority = osPriorityBelowNormal;

osThreadNew(ethernet_link_thread, &gnetif, &attributes);

This one cause it declare it self before dhcp_start so if it should take the connection and maintain it , it can not know the IP of the board.



UPD: I tried to install a break point in dhcp_start to check if it is first called or the thread but it just get ignored.



For any respond i would be greatful

Sincerly yours

Al-Dzhavad