cancel
Showing results for 
Search instead for 
Did you mean: 

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

MownishBugatha
Associate II

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 */
0 REPLIES 0