I am looking into using the Core Coupled Memory in my project and I was wondering how other people are going about this with FreeRTOS.
(Core-Coupled memory, is a special area of memory offset from standard RAM, CCM can’t be DMA’ed to, but it does provide no-wait state access to memory. Benifits of CCM would be to hold run time code of functions needing to be highly optimised or lookup tables that need to be accessed quickly, rather than waiting on flash, which requires wait states),
I have currently setup a section in my linker script which sets aside 64kB of memory for CCM. However I am only able to place static variables into this region, and can’t use it as a generic RAM section. Note, I am not trying to take advantage of CCM for extra speed, I want to take advantage of CCM for extra memory. On the STM32F4 that I am using, 128kB is standard RAM, 64kB is CCM, so its a significate portion of avaliable memory.
I am thinking of extending heap_x.c to provide support for multiple memory segements, one for standard RAM, and one for CCM memory.
This would allow me to dynamically allocate variables into CCM, rather than only being able to allocate them at compile time.
Does anyone have any thoughts on this? Or has anyone implemented something along these lines already.