cancel
Showing results for 
Search instead for 
Did you mean: 

NUCLEO-N657X0-Q STM32CubeIDE NetXDuo

GEKO
Associate II

Hi everyone,

for several days I've been trying to replicate the Nx_TCP_Echo_Server application example by creating a project with the .IOC file, but I can't establish Ethernet communication.

If I compile and run the example, everything works, but my application doesn't. I'll send you my project if anyone can help.

Alternatively, can someone point me to a simple TCP stack without using an RTOS? Thanks so much for your help.

I'm using a NUCLEO-N657X0-Q board, STM32CubeIde 1.19

1 ACCEPTED SOLUTION

Accepted Solutions
STackPointer64
ST Employee

Hello @GEKO, and welcome to ST Community!

After reviewing your project, it seems two important configurations were missing:

  1. The External Loader (MX25UM51245G_STM32N6570-NUCLEO.stldr) was not specified in your Debug/Run settings.
  2. The definition of the NX_Pool Buffer was not added in the app_azure_rtos.c file.
/* USER CODE BEGIN NX_Pool_Buffer */
#if defined ( __ICCARM__ ) /* IAR Compiler */
#pragma location = ".NetXPoolSection"
#else /* GNU and AC6 compilers */
__attribute__((section(".NetXPoolSection")))
#endif
/* USER CODE END NX_Pool_Buffer */​

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

4 REPLIES 4
STackPointer64
ST Employee

Hello @GEKO, and welcome to ST Community!

After reviewing your project, it seems two important configurations were missing:

  1. The External Loader (MX25UM51245G_STM32N6570-NUCLEO.stldr) was not specified in your Debug/Run settings.
  2. The definition of the NX_Pool Buffer was not added in the app_azure_rtos.c file.
/* USER CODE BEGIN NX_Pool_Buffer */
#if defined ( __ICCARM__ ) /* IAR Compiler */
#pragma location = ".NetXPoolSection"
#else /* GNU and AC6 compilers */
__attribute__((section(".NetXPoolSection")))
#endif
/* USER CODE END NX_Pool_Buffer */​

Best regards,

 

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

Thanks @STackPointer64 for the support. I added the points you indicated, but the situation hasn't changed.

The application threads are running correctly, but the DHCP process doesn't seem to start.

STackPointer64
ST Employee

Hello,

After retesting and downloading your project with the suggested adjustments, I can confirm that it works. As shown in the Wireshark screenshot below, the board is discovered by the DHCP server and obtains a valid IP address. I was able to successfully ping the board and receive responses.

dhcp.png

As a suggestion, please ensure your DHCP server is functioning correctly. You might also have made other changes in your project. To help, I have attached a copy of the working project—please build and flash it to your MCU, then share your feedback. I’ll be happy to assist further.

Best regards,

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

Thanks again for your support.
I tested the code you submitted and confirm it works.
I checked with my code and I had mistakenly entered the definition

#if defined ( __ICCARM__ ) /* IAR Compiler */
#pragma location = ".NetXPoolSection"
#else /* GNU and AC6 compilers */
__attribute__((section(".NetXPoolSection")))
#endif

under the function


__ALIGN_BEGIN static UCHAR nx_byte_pool_buffer[NX_APP_MEM_POOL_SIZE] __ALIGN_END;

static TX_BYTE_POOL nx_app_byte_pool;

and consequently the buffer was not assigned to the correct section.

Thanks again for your support