cancel
Showing results for 
Search instead for 
Did you mean: 

stm32h747i disco ping issue with NetXDuo and Azure RTOS.

ishanpadaliya
Associate II

Hello there,

Using stm32h747i disco board: azureRTOS + netxduo

I have added azure RTOS and netXDuo on CM4, I want to run MQTT on Ethernet. I have done below changes on the board.

ishanpadaliya_0-1728389123531.png

I have connected the LAN cable from board to laptop for peer to peer connection.

Initially i was trying to to ping from board to Ubuntu system with "nx_icmp_ping" but getting "NX_NO_RESPONSE (0x29)" in response.

in 2nd try i have disabled the ping related code and trying to ping from laptop to board.
I'm able ping the board when i start debugging mode,
But after flashing the code or after rest the board, not able to ping the board.

Attaching the project, please guide us on the same.


Thanks and Regards,
Ishan

2 REPLIES 2
STea
ST Employee

Hello @ishanpadaliya,

I think you are missing some needed configuration to make this work as you are not declaring .RxDecripSection

.TxDecripSection .NetXPoolSection
the following should be added to the linker script with respect to memory placement and aliasing as u are using CM4 to access those regions. it should look like this in you Flash.ld file :

     .tcp_sec (NOLOAD) :
     {

    . = ABSOLUTE(0x24030000);
    *(.RxDecripSection)

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

  } >RAM_D1 AT> FLASH


.nx_data 0x24030100 (NOLOAD):
 {
    . = ABSOLUTE(0x24032100);
    *(.NetXPoolSection)

I would highly recommend you take a look at this CubeAzure example and read the readme Thurley.
you can also take a look at this Article which describe the how to configure with CubeAzureH7 it should get you working Creating a dual IPv6 & IPv4 NetXDuo UDP applicatio... - STMicroelectronics Community
Regards


In order 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.
ishanpadaliya
Associate II

Hey there,

Thank you for the reply.
I have added below block in STM32H747XIHX_FLASH.ld
as i want to enable Ethernet in CM4, I've added below block in FLASH.ld file of CM4.

MEMORY
{
FLASH (rx) : ORIGIN = 0x08100000, LENGTH = 1024K
RAM (xrw) : ORIGIN = 0x10000000, LENGTH = 128K    /* ETH_CODE: split memory to data and ethernet buffers */
ETH_RAM (xrw) : ORIGIN = 0x10020000, LENGTH = 160K    /*added*/
}

 
.tcp_sec (NOLOAD) : 
. = ABSOLUTE(0x30000000); 
*(.RxDecripSection) 
. = ABSOLUTE(0x300000100); 
*(.TxDecripSection) 
. = ABSOLUTE(0x300000200); 
*(.NetXPoolSection)
} >ETH_RAM AT> FLASH




but getting below error.
"/opt/st/stm32cubeide_1.16.0/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.linux64_1.0.200.202406132123/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: DISCO-ETH_0_CM4.elf section `.tcp_sec' will not fit in region `ETH_RAM'
/opt/st/stm32cubeide_1.16.0/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.linux64_1.0.200.202406132123/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: section .tcp_sec VMA wraps around address space
/opt/st/stm32cubeide_1.16.0/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.linux64_1.0.200.202406132123/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld: region `ETH_RAM' overflowed by 12616184320 bytes
collect2: error: ld returned 1 exit status"


getting below warning in Ethernet configurations. and ram origin is "0x10000000".
ishanpadaliya_0-1728473894975.png

So which is the correct address for RAM in CM4 ? please guide us on the same.


Thanks and regards
Ishan