This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6442: Ethernet driver conflicts with heap memory

Part Number: AM6442

I am using SDK mcu_plus_sdk_am64x_08_01_00_14 with AM64x EVM TMDS64GPEVM

In case of configuring ICSS + Heap memory allocation (on external DDR), there is a conflict between ethernet driver and heap memory space.

In the file enet_udmautils.c there is a zero length array static declaration:

/* UDMA driver objects */
static Udma_DrvObject udmaDrvObj[0U];

This cause the symbol udmaDrvObj to be relocated at the beginning of .bss section, exactly the same place where is also gHeapMem.

Please consider that zero length arrays are suitable for dynamic allocation, but not for static since it is unpredictable behavior.

I would recommend to change with:

/* UDMA driver objects */
static Udma_DrvObject udmaDrvObj[ENET_TYPE_COUNT];