AnsweredAssumed Answered

Placing data in external RAM - LPC4088 / MCUXpresso

Question asked by Brendan McDonnell on Oct 26, 2017
Latest reply on Oct 27, 2017 by LPCX presso support

How do I put variables/data in external RAM? (Meaning off-chip, on-board, requiring initialization before use.) I'm using an Embedded Artists LPC4088 QuickStart Board in MCUXpresso IDE v10.0.2 [Build 411] [2017-07-11]. The board has an external 32 MB SDRAM chip.

 

I know the RAM works because I got the periph_memtest program working on it. That program uses the pointers to address the memory directly, though; it doesn't declare any variables to be located there.

 

I tried following the directions at Placing data into different RAM blocks - I added another memory area in the Memory Config Editor as pictured below, did 

#include <cr_section_macros.h> 

and declared some data there by

__NOINIT(RamExternal32M) uint32_t bigData[1000000];

but when I try to build it, the linker fails with

.../arm-none-eabi/bin/ld.exe: myproject.axf section `.noinit.$RamExternal32M' will not fit in region `RAM'

 

It's like it doesn't even see the macro.

 

(I chose __NOINIT because it needs to wait for the SDRAM initialization. 'Noinit' Memory Sections)

 

What am I doing wrong? What am I missing? Do I have to mess with the linker file(s)? If so, why? Why isn't what I've described sufficient?

 

 

MCUXpresso Memory Configuration Editor - added external RAM section

 

Other references, for later use if I do have to modify linker files:

Outcomes