It's been harder than I expected to find a reference source or usage guide.
There's a number of sources I've looked at along the road to this question:
The Due is listed here and here as having 512KB flash memory, 96KB SRAM and zero EEPROM.
The arduino foundation tutorial notes that Due memory architecture is different but doesn't expand further.
@Majenko's answer to this previous question notes, "There is no PROGMEM required on ARM. There is no memory bus separation between Flash and RAM"
The SAM3x datasheet block diagrams show a unified bus (i.e. Von Neumann architecture (not Harvard architecture like the AVR boards))
This answer on the Arduino Forum suggests (regarding allocating constants to flash), "[...] all you have to do is use "const" in the variable declaration. [...] Everything that's "const" gets put into flash without consuming any RAM. PROGMEM, pgm_read_byte() and the other AVR names are defined only so code designed for AVR can compile. But they do absolutely nothing on [SAM3X MCUs] "
The
F()
macro seems to still work.
So my question is searching for links to a reference or guide for memory usage on the Arduino Due. I hope a guide (or your answers) might explain the differences caused by the change to a Von Neumann architecture bus, what is stored where, highlighting which memory handling techniques developed for Harvard architecture AVR MCUs remain relevant on the Due.
If there is no guide I'm hoping this question and your answers may become a good reference point. Thanks for reading!