From 9210ae4da0ebf07120028faf2473b1a11d84863c Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio <gdisirio@gmail.com> Date: Sat, 5 Dec 2015 11:17:28 +0000 Subject: Fixed bug #677. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8568 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/DACv1/dac_lld.c | 3 +++ readme.txt | 2 ++ .../STM32F3xx/DAC/debug/STM32F3xx-DAC (OpenOCD, Flash and Run).launch | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/os/hal/ports/STM32/LLD/DACv1/dac_lld.c b/os/hal/ports/STM32/LLD/DACv1/dac_lld.c index faebcadc0..5ab25bae1 100644 --- a/os/hal/ports/STM32/LLD/DACv1/dac_lld.c +++ b/os/hal/ports/STM32/LLD/DACv1/dac_lld.c @@ -419,6 +419,7 @@ void dac_lld_start_conversion(DACDriver *dacp) { dmaStreamSetPeripheral(dacp->params->dma, &dacp->params->dac->DHR12RD); dmamode = dacp->params->dmamode | STM32_DMA_CR_PSIZE_WORD | STM32_DMA_CR_MSIZE_WORD; + n /= 2; break; case DAC_DHRM_12BIT_LEFT_DUAL: osalDbgAssert(dacp->grpp->num_channels == 2, "invalid number of channels"); @@ -426,6 +427,7 @@ void dac_lld_start_conversion(DACDriver *dacp) { dmaStreamSetPeripheral(dacp->params->dma, &dacp->params->dac->DHR12LD); dmamode = dacp->params->dmamode | STM32_DMA_CR_PSIZE_WORD | STM32_DMA_CR_MSIZE_WORD; + n /= 2; break; case DAC_DHRM_8BIT_RIGHT_DUAL: osalDbgAssert(dacp->grpp->num_channels == 1, "invalid number of channels"); @@ -433,6 +435,7 @@ void dac_lld_start_conversion(DACDriver *dacp) { dmaStreamSetPeripheral(dacp->params->dma, &dacp->params->dac->DHR8RD); dmamode = dacp->params->dmamode | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD; + n /= 2; break; #endif default: diff --git a/readme.txt b/readme.txt index 8fefe6b4a..0460478d1 100644 --- a/readme.txt +++ b/readme.txt @@ -137,6 +137,8 @@ - HAL: Updated STM32F0xx headers to STM32CubeF0 version 1.3.0. Added support for STM32F030xC, STM32F070x6, STM32F070xB, STM32F091xC, STM32F098xx devices. +- HAL: Fixed invalid DMA settings in STM32 DACv1 driver in dual mode + (bug #677)(backported to 3.0.4). - HAL: Fixed usbStop() hangs in STM32 OTGv1 driver (bug #674)(backported to 3.0.4 and 2.6.10). - HAL: Fixed STM32 I2Cv2 driver fails on transfers greater than 255 bytes diff --git a/testhal/STM32/STM32F3xx/DAC/debug/STM32F3xx-DAC (OpenOCD, Flash and Run).launch b/testhal/STM32/STM32F3xx/DAC/debug/STM32F3xx-DAC (OpenOCD, Flash and Run).launch index 1672e88e6..847724394 100644 --- a/testhal/STM32/STM32F3xx/DAC/debug/STM32F3xx-DAC (OpenOCD, Flash and Run).launch +++ b/testhal/STM32/STM32F3xx/DAC/debug/STM32F3xx-DAC (OpenOCD, Flash and Run).launch @@ -33,7 +33,7 @@ <intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/> <stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/> <stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/> -<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="CR2-adc-adcp-adc_lld_start_conversion-(format)" val="4"/><content id="CR2-adc-null-port_wait_for_interrupt-(format)" val="4"/><content id="cr2-adc_lld_start_conversion-(format)" val="4"/></contentList>"/> +<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="cr2-adc_lld_start_conversion-(format)" val="4"/><content id="CR2-adc-null-port_wait_for_interrupt-(format)" val="4"/><content id="CR2-adc-adcp-adc_lld_start_conversion-(format)" val="4"/></contentList>"/> <stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/> <stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList/> "/> <stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="./build/ch.elf"/> -- cgit v1.2.3