cancel
Showing results for 
Search instead for 
Did you mean: 

STM32N6570-DK NX_Web_server example: Where to place .nx_data ?

MownishBugatha
Associate III

according to the Readme where i need to place the .nx_data in order to prevent Build errors

.nx_data (NOLOAD):

{

. = ABSOLUTE(0x341D4200);

*(.NxServerPoolSection)



. = ABSOLUTE(0x341F0200);

*(.NetXPoolSection)

} >RAM



 
#### <b>NetX Duo usage hints</b>



- Depending on the application scenario, the total TX and RX descriptors may need to be increased by updating respectively the "ETH_TX_DESC_CNT" and "ETH_RX_DESC_CNT" in the "stm32n6xx_hal_conf.h", to guarantee the application correct behaviour, but this will cost extra memory to allocate.

- The NetXDuo application needs to allocate the <b> <i> NX_PACKET </i> </b> pool in a dedicated section.

Below is an example of the section declaration for different IDEs.

+ For EWARM ".icf" file

```

define symbol __ICFEDIT_region_NXDATA_start__ = 0x341D4200;

define symbol __ICFEDIT_region_NXDATA_end__ = 0x341F01FF;

define region NXApp_region = mem:[from __ICFEDIT_region_NXDATA_start__ to __ICFEDIT_region_NXDATA_end__];

place in NXApp_region { section .NetXPoolSection};

```

+ For MDK-ARM

```

RW_NXServerPoolSection 0x341D4200 0x1C000 {

*(.NxServerPoolSection)

}



RW_NXDriverSection 0x341F0200 0xFE00 {

*(.NetXPoolSection)

}

```

+ For STM32CubeIDE ".ld" file

```

.nx_data (NOLOAD):

{

. = ABSOLUTE(0x341D4200);

*(.NxServerPoolSection)



. = ABSOLUTE(0x341F0200);

*(.NetXPoolSection)

} >RAM

```

This section is then used in the <code> app_azure_rtos.c</code> file to force the <code>nx_byte_pool_buffer</code> allocation.



```

/* 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 */
1 REPLY 1
STackPointer64
ST Employee

Hello @MownishBugatha,

The NX_Webserver example already includes that section declared in the linker file. For STM32CubeIDE, it is located at:

Nx_WebServer/STM32CubeIDE/FSBL/STM32N657X0HXQ_AXISRAM2_fsbl.ld

For IAR EWARM, it can be found at:

Nx_WebServer/EWARM/FSBL/stm32n657xx_axisram2_fsbl.icf

The note in the README file describes the project configuration.

Best regards,
Mohamed Ali

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