Confused about DMA and Cache on STM32 H7 devices.
While I was looking for H7 DMA data,
I saw the article below that DMA is not working on the H7 device.
https://community.st.com/s/article/FAQ-DMA-is-not-working-on-STM32H7-devices
Solution 1 from that article is shown below.
-----------------------------------------------------------------------------------------------------------------------------
Solution example 1: Simple placement of all memory to D1 domain
"D-Cache must be disabled globally for this solution to work."
GCC (Atollic TrueStudio/System Workbench for STM32/Eclipse)
"Replace DTCMRAM with RAM_D1" for section placement in linkerscript (.ld file extension). E.g. like this:
.data :
{
... /* Keep same */
} >RAM_D1 AT> FLASH
-----------------------------------------------------------------------------------------------------------------------------
But, "STM32Cube_FW_H7_V1.9.0/NUCLEO-H743ZI/Examples/ADC/ADC_DMA_Transfer"
In the example, DTC MRAM is changed to RAM_D1 (STM32H743ZITx_FLASH.ld),
but the Main.c file is : (Line 58)
/* Enable the CPU Cache */
CPU_CACHE_Enable();
The solution should replace DTC MRAM with RAM_D1 and disable D-Cache globally, but the example does not appear to be the case.
Which one is correct?