STM32F405 has RAM (128k) and CCRAM (64k). Currently the linker script for stm32f405.ld does not utilize CCRAM at all.
Why are we not using CCRAM at all? Can we use CCRAM for DATA and BSS (332+27620 bytes) for example (and having full 128k for python runtime)? If not, why?
Why is CCRAM not being used?
Re: Why is CCRAM not being used?
CCRAM is being used as a buffer for the flash filesystem.
Basically, if we use the flash filesystem, we need enough RAM to read in an entire sector. The largest flash sector in the file system is 64K.
https://github.com/micropython/micropyt ... rage.c#L43
Basically, if we use the flash filesystem, we need enough RAM to read in an entire sector. The largest flash sector in the file system is 64K.
https://github.com/micropython/micropyt ... rage.c#L43
Re: Why is CCRAM not being used?
Ah, I see. I knew there must be something I am missing out.
Re: Why is CCRAM not being used?
There are other boards for which we're probably not using all of the CCRAM, and in those cases there may be ways to take advantage of it. But it isn't seamless, as CCRAM is closely coupled to the processor. For example, you can't DMA to/from CCRAM.
If the CCRAM is contiguous with the regular RAM then it could be made part of the heap, and the DMA code could check the address to see if it can be accessed or not.
So lots of little details to work out.
If the CCRAM is contiguous with the regular RAM then it could be made part of the heap, and the DMA code could check the address to see if it can be accessed or not.
So lots of little details to work out.