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
and declared some data there by
__NOINIT(RamExternal32M) uint32_t bigData;
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?
Other references, for later use if I do have to modify linker files: