AnsweredAssumed Answered

LPC54606 Undeclared memory region

Question asked by Jelle van Geel on Mar 3, 2019
Latest reply on Mar 21, 2019 by ZhangJennie

Hello all,

 

When using the MCUXpresso SDK 2.5 with arm embedded GCC compiler I believe there is a bug in the LPC54606 linker file. 

 

The following memory areas are declared:

/* Specify the memory areas */
MEMORY
{
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_text (RX) : ORIGIN = 0x00000400, LENGTH = 0x0007FC00
m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00028000
m_sramx (RW) : ORIGIN = 0x04000000, LENGTH = 0x00008000
m_usb_sram (RW) : ORIGIN = 0x40100000, LENGTH = 0x00002000
}

 

But there is a mapping to the memory area "m_data_3" that does not exist:

/* Initializes stack on the end of block */
__StackTop = ORIGIN(m_data_3) + LENGTH(m_data_3);
__StackLimit = __StackTop - STACK_SIZE;
PROVIDE(__stack = __StackTop);

 

This results in the following GCC linker warning:

LPC54606J512_flash.ld:183: warning: memory region `m_data_3' not declared

 

The code does not work since the stack is now undefined. As workaround I use the LPC54608J512 linker file which works but it is not the best solution.

Outcomes