Arduino Limited Memory Access?

Hi All, I am working in the Arduino environment and have recently noticed this warning message when uploading my program.

My understanding is that the Daisy has 64MB of SDRAM but this error message seems to indicate that the maximum available to me is ~500K.

Is there a limitation for Arduino on the maximum amount of memory it can access?

1 Like

Currently SDRAM chip is not used, only 512K AXISRAM section is. It’s a limitation of current Arduino setup on Daisy that’s planned to be fixed fixed within 2 weeks according to developers.

2 Likes

Great, thanks for the info!

Based on that error message it would appear that the code is actually being put in the SRAM1 block in the D2 domain whilst variables are being put in the 512k on the AXI bus.

Nope, .text is on 128k flash, it’s not copied to memory (that would probably require custom bootloader to work).

Nice to know it is being fixed. I have run in to this problem so many times
and thought I had made some error with the code that just flooded the memory with garbage.

v1.2.0 is live in the Library Manager, and adds support to SDRAM
using it works the same as it does in libdaisy:

To use the SDRAM you can declare any type as a global variable using the DSY_SDRAM_BSS attribute.

For example:

// This creates 1MB of chars
char DSY_SDRAM_BSS my_big_buffer[1024*1024];
void setup() {}
void loop() {}
4 Likes

Also worth mentioning that because the 64MB of external memory are not the default memory space, Arduino will not keep track of your usage of that memory in the same way that it keeps track of the 512kB that are readily available.

1 Like