And after reading that seeing the RAM 1: padding:27192 for this build says if 6KB of code moved to FLASHMEM that would free up 32KB of variable space in RAM1, that would overcome the shown 4.4K deficit - at least until the code grows. Also if there is const DATA that could be kept in flash with PROGMEM - and if that might be too slow when the shared data cache gets exhausted - it could be dynamically moved to RAM2 for reference perhaps.I assume you've already read this ?
What is the content of padding ?And after reading that seeing the RAM 1: padding:27192 for this build says if 6KB of code moved to FLASHMEM that would free up 32KB of variable space in RAM1, that would overcome the shown 4.4K deficit - at least until the code grows. Also if there is const DATA that could be kept in flash with PROGMEM - and if that might be too slow when the shared data cache gets exhausted - it could be dynamically moved to RAM2 for reference perhaps.
300KB of code might offer some decent savings for lesser used code executed from Flash.
Also RAM2 has 500KB of RAM available that (when not covered by the 32KB data cache) will execute at 1/4 the speed of RAM1 but over twice the RAM resource currently in use for lesser used data that doesn't need to run at full processor speed.
No. During startup all code that is not marked as FLASHMEM will be copied into RAM1 for maximum performance. Any code that does not have a type is treated as FASTRUN and copied to RAM1As far as I know, both RAM1 and RAM2 are used to store variables. The program code is stored in FLASH.
Is this as I understand it?
But RAM2 just save variables right?No. During startup all code that is not marked as FLASHMEM will be copied into RAM1 for maximum performance
Padding is abandoned space left unused as the CODE/ITCM and DATA/DTCM split is on a 32KB boundary. After the code space is allocated, the data is started on the next 32KB boundary and the 'padding' between is left unused.What is the content of padding ?
RAM2 cannot execute code and cannot have initialized data. It is available for dynamic data/variable allocation, and using DMAMEM will properly allocate usable 'names' for variable or arrays as expected - but not be given any initial value.But RAM2 just save variables right?
That seems about right. There are CODE and DATA caches on the 1062 of 32 KB that can speed up access to FLASH and RAM2Let's sum up.