I'm working on a TinyML project with an Arduino Nicla Vision and I need to store a model with size 808kB in RAM. In the Nicla Vision datasheet, it is stated that 864kB of SRAM are available, but it is segmented in three non contiguous parts (AXI SRAM, SRAM1-3, SRAM4).
When I try to load the model in RAM, I get the error 'linker_script.ld:110 cannot move location counter backwards (from 240db350 to 2407fc00)' because only AXI SRAM (524kB) is used.
Is there a way to distribute the model over all the available segmented RAM?
I am aware that the model size is huge and I will try to reduce it, but I am sure it won't fit in the AXI SRAM slot anyway, so the problem still stand.
Do you have any suggestion on how to distribute the model over multiple RAM slots?
Sorry, what is the model in low level? File? Data array?
You can split it into parts and load it into different areas of memory. But in this case, you will have to modify the library that works with the model so that it understands how to read it in parts
The model is a data array. I already considered the solution you propose, but I would like to avoid modifying the TFlite library and rather focus on the RAM.