I am currently working on the F4 core, and using the CCM memory to store some variables is already giving a performance bump.
In the F3 the ccm memory is smaller, but better than the F4 since it can execute code from it (the F4 can't run code from CCM ram.
If anyone is using the F3 and needs help getting the linker scripts modified to use CCM let me know and I will help what I can from what I am learning with the F4.
The things that would benefit the most from using CCM are:
- NVIC table. The flash is fast when doing sequential access, but having to read the nvic to service an interrupt needs several wait states. Read from ccm is always 0 wait states.
- ISRs. When the MCU has to jump from normal code to an ISR, is again disupting sequential run of the code and having to read at a different place, which again cost several wait states. When the ISR finishes and has to return to normal program flow, again has to jump and wait several wait states.
- Any other routine that gets called a whole lot and is short.
This may not be much, but for anything where jitter has a negative effect, it should help bringing it down.