2021-11-21 01:09 PM
Hi,
I use the nucleo board "Nucleo-H743ZI2 and STMCube.
See attached file for setup. (Actual DCACHE option disabled)
I call the ADC as follow.
ALIGN_32BYTES( uint32_t Buffer[11]);
if (HAL_ADC_Start_DMA(&hadc3, (uint32_t*)Buffer, 11) == HAL_OK) {
}
This works.
When i now enable the CPU DCache option in MxCube under Cortex_M7, i receive not more the data from the ADC.
How can i resolve this issue?
btw. i have also R32 (VREFP is open) removed from the nucleo board otherwise the VREFBUF can't be activated.
Regards
2021-11-21 02:41 PM
DMA is outside the scope of the MCU, the cache doesn't snoop external traffic. You have to manage cache coherency yourself, either via the MMU settings for the memory regions used for the buffer(s), or explicitly with the DCache Clean/Invalidate by Address functions.