From a2b33f23233a009759e3fad20b031b7cb9f92278 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Thu, 13 Aug 2015 13:03:42 +0000 Subject: Fixed a problem caused by STM32F7xx errata. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8213 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/ADCv2/adc_lld.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'os/hal/ports') diff --git a/os/hal/ports/STM32/LLD/ADCv2/adc_lld.c b/os/hal/ports/STM32/LLD/ADCv2/adc_lld.c index 75d7af606..e8a2e87d9 100644 --- a/os/hal/ports/STM32/LLD/ADCv2/adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv2/adc_lld.c @@ -84,6 +84,12 @@ static void adc_lld_serve_rx_interrupt(ADCDriver *adcp, uint32_t flags) { /* It is possible that the conversion group has already be reset by the ADC error handler, in this case this interrupt is spurious.*/ if (adcp->grpp != NULL) { + + /* DMA buffer invalidation because data cache.*/ + dmaBufferInvalidate(adcp->samples, + adcp->samples + + (adcp->depth * adcp->grpp->num_channels)); + if ((flags & STM32_DMA_ISR_TCIF) != 0) { /* Transfer complete processing.*/ _adc_isr_full_code(adcp); -- cgit v1.2.3