2026-02-04 2:59 AM - last edited on 2026-02-04 3:03 AM by Andrew Neil
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 */