"Pain" with D-cache cleaning&invalidating on STM32F7 family
I've read often about strange problems with activated D cache on M7 core and how it can be solved here in forum.
But the STM32F7xx family has implemented a fast DTCM RAM that is accessible from CPU core and DMA peripherals.
This DTCM memory should have also the same speed as D cache, so there is no performance lost and no extra cleaning/invalidating necessary.
So shouldn't be placed all buffers with DMA access in this not cacheable DTCM memory area with no extra cache handling simply?
I can see only advantages of using DTCM memory for fixed peripheral DMA buffers (Ethernet, SPI, UART, ADC, ...).
Only the linker file has to be split in DTCM memory and other cacheable memory and all DMA buffers or other buffers with external access has to be placed in DTCM memory region.
Can anyone tell me if there are disadvantages or problems in speed/performance with DTCM RAM and DMA on F7 family?
And why is DTCM not used explicitely in F7 HAL functions by ST? Theoretically it should also increase performance without unnecessary cache functions.
(Please don't confuse the possibilities of F7 family with H7 family, because MDMA access to DTCM RAM seems to be not possible there unfortunately)