cancel
Showing results for 
Search instead for 
Did you mean: 

Troubleshooting Ping Issues on NUCLEO-H753 with LwIP

KBae.1
Associate II

"I am currently working on implementing Ethernet communication using a NUCLEO-H753 board.

As a first step, I attempted to perform a ping test. I followed the official tutorial videos provided by STMicroelectronics step-by-step, but unfortunately, I am not getting the expected results (the ping is failing).

I would appreciate any guidance or advice on what might be causing this issue or which specific configurations I should double-check."

"Let me share my CubeMX configuration with you first so we can review the setup."

1. System Core - CORTEX_M7

image1.png

 

 

2. Connectivity - ETH

image2.png

 

3. LwIP

image3.png

 

4. Clock

image4.png

 

I will also share the modified source code with you.

 

STM32H753ZITX_FLASH.ld

/* Modification start */
.lwip_sec (NOLOAD) :
{
  . = ABSOLUTE(0x30040000);
  *(.RxDecripSection)

  . = ABSOLUTE(0x30040100);
  *(.TxDecripSection)

  . = ABSOLUTE(0x30040200);
  *(.Rx_PoolSection)
} >RAM_D2
/* Modification end */

ethernetif.c

/* USER CODE BEGIN 2 */
#if defined ( __ICCARM__ ) /*!< IAR Compiler */
#pragma location = 0x30040200
extern u8_t memp_memory_RX_POOL_base[];
#elif defined ( __CC_ARM ) /* MDK ARM Compiler */
__attribute__((at(0x30040200)) extern u8_t memp_memory_RX_POOL_base[];
#elif defined ( __GNUC__ ) /* GNU Compiler */
__attribute__((section(".Rx_PoolSection"))) extern u8_t memp_memory_RX_POOL_base[];
#endif
/* USER CODE END 2 */

 

main.c

while (1)
{
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  ethernetif_input(&gnetif);
  sys_check_timeouts();
}

or

while (1)
{
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
  MX_LWIP_Process();
}

 

I have modified the source code as shown above.

 

The results are shown below.

image5.png

 

Pinging 192.168.10.123 with 32 bytes of data:
Reply from 192.168.10.50: Destination host unreachable.
Reply from 192.168.10.50: Destination host unreachable.
Reply from 192.168.10.50: Destination host unreachable.
Reply from 192.168.10.50: Destination host unreachable.

 

I am receiving these messages as shown in the screenshot,

and I'm reached out because I’m not sure what I might be missing in the configuration.

As you can see, I am getting 'Destination host unreachable' errors.

I would appreciate it if you could help me identify what's wrong.


Edited to apply proper source code formatting - please see How to insert source code for future reference.

12 REPLIES 12

Hello again @KBae.1, Have you managed to resolve the issue?

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

Hi, I have almost same settings and I can not get any result with ping. Some examples I see here with old libraries work but we need to work latest libraries what can you advise ?

Pavel A.
Super User

@KBae.1 Does your application use FreeRTOS?

Be careful when comparing example with RTOS against example without RTOS. By some Historical Reasons, there are two variants of ETH LwIP examples: with a RTOS (interrupts and threads) and "bare metal" (polling based). In these variants calls to the HAL ETH driver from ethernetif.c  differ. 

@cihatek Of course, use the latest libraries and examples.