From 47a8438f5b7e146294a666a3e3ed3151fba8e9b9 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Mon, 6 Feb 2017 10:35:53 +0000 Subject: [PATCH] Fixed bug #817. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10090 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/include/hal_dac.h | 6 +++--- os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h | 6 ++---- os/hal/src/hal_dac.c | 6 +++--- os/hal/templates/hal_dac_lld.h | 6 ++---- readme.txt | 2 ++ testhal/STM32/STM32F3xx/DAC/main.c | 5 +++-- testhal/STM32/STM32F4xx/DAC/main.c | 5 +++-- testhal/STM32/STM32F4xx/DAC_DUAL/main.c | 5 +++-- testhal/STM32/STM32L1xx/DAC/main.c | 5 +++-- 9 files changed, 24 insertions(+), 22 deletions(-) diff --git a/os/hal/include/hal_dac.h b/os/hal/include/hal_dac.h index f7b609a94..04f005a1f 100644 --- a/os/hal/include/hal_dac.h +++ b/os/hal/include/hal_dac.h @@ -243,14 +243,14 @@ extern "C" { dacchannel_t channel, dacsample_t sample); void dacStartConversion(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, size_t depth); + dacsample_t *samples, size_t depth); void dacStartConversionI(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, size_t depth); + dacsample_t *samples, size_t depth); void dacStopConversion(DACDriver *dacp); void dacStopConversionI(DACDriver *dacp); #if DAC_USE_WAIT msg_t dacConvert(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, size_t depth); + dacsample_t *samples, size_t depth); #endif #if DAC_USE_MUTUAL_EXCLUSION void dacAcquireBus(DACDriver *dacp); diff --git a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h index e062a1faf..5ae8f28f0 100644 --- a/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h +++ b/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h @@ -305,9 +305,7 @@ typedef enum { * @param[in] n number of buffer rows available starting from @p buffer * callback */ -typedef void (*daccallback_t)(DACDriver *dacp, - const dacsample_t *buffer, - size_t n); +typedef void (*daccallback_t)(DACDriver *dacp, dacsample_t *buffer, size_t n); /** * @brief ADC error callback type. @@ -392,7 +390,7 @@ struct DACDriver { /** * @brief Samples buffer pointer. */ - const dacsample_t *samples; + dacsample_t *samples; /** * @brief Samples buffer size. */ diff --git a/os/hal/src/hal_dac.c b/os/hal/src/hal_dac.c index 0297f9bd4..39cb48124 100644 --- a/os/hal/src/hal_dac.c +++ b/os/hal/src/hal_dac.c @@ -166,7 +166,7 @@ void dacPutChannelX(DACDriver *dacp, dacchannel_t channel, dacsample_t sample) { */ void dacStartConversion(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, + dacsample_t *samples, size_t depth) { osalSysLock(); @@ -194,7 +194,7 @@ void dacStartConversion(DACDriver *dacp, */ void dacStartConversionI(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, + dacsample_t *samples, size_t depth) { osalDbgCheckClassI(); @@ -295,7 +295,7 @@ void dacStopConversionI(DACDriver *dacp) { */ msg_t dacConvert(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, + dacsample_t *samples, size_t depth) { msg_t msg; diff --git a/os/hal/templates/hal_dac_lld.h b/os/hal/templates/hal_dac_lld.h index d35d321d9..12c75ea6a 100644 --- a/os/hal/templates/hal_dac_lld.h +++ b/os/hal/templates/hal_dac_lld.h @@ -95,9 +95,7 @@ typedef enum { * @param[in] n number of buffer rows available starting from @p buffer * callback */ -typedef void (*daccallback_t)(DACDriver *dacp, - const dacsample_t *buffer, - size_t n); +typedef void (*daccallback_t)(DACDriver *dacp, dacsample_t *buffer, size_t n); /** * @brief ADC error callback type. @@ -150,7 +148,7 @@ struct DACDriver { /** * @brief Samples buffer pointer. */ - const dacsample_t *samples; + dacsample_t *samples; /** * @brief Samples buffer size. */ diff --git a/readme.txt b/readme.txt index 13d4a94cc..50a0d3fcc 100644 --- a/readme.txt +++ b/readme.txt @@ -157,6 +157,8 @@ - RT: Merged RT4. - NIL: Merged NIL2. - NIL: Added STM32F7 demo. +- HAL: Fixed DAC driver problem with API signature (bug #817)(backported + to 16.1.8). - HAL: Fixed STM32 OTGv1 driver not serving interrupts for endpoints > 5 (bug #816)(backported to 16.1.8). - HAL: Fixed STM32 MAC driver needs __DSB() for STM32F7 when operating in diff --git a/testhal/STM32/STM32F3xx/DAC/main.c b/testhal/STM32/STM32F3xx/DAC/main.c index d7ccfc4af..b5988383f 100644 --- a/testhal/STM32/STM32F3xx/DAC/main.c +++ b/testhal/STM32/STM32F3xx/DAC/main.c @@ -59,7 +59,7 @@ static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { * DAC streaming callback. */ size_t nx = 0, ny = 0, nz = 0; -static void end_cb1(DACDriver *dacp, const dacsample_t *buffer, size_t n) { +static void end_cb1(DACDriver *dacp, dacsample_t *buffer, size_t n) { (void)dacp; @@ -140,7 +140,8 @@ int main(void) { /* * Starting a continuous conversion. */ - dacStartConversion(&DACD1, &dacgrpcfg1, dac_buffer, DAC_BUFFER_SIZE); + dacStartConversion(&DACD1, &dacgrpcfg1, + (dacsample_t *)dac_buffer, DAC_BUFFER_SIZE); gptStartContinuous(&GPTD6, 2U); /* diff --git a/testhal/STM32/STM32F4xx/DAC/main.c b/testhal/STM32/STM32F4xx/DAC/main.c index 9a72ba0e0..817ad4a6e 100644 --- a/testhal/STM32/STM32F4xx/DAC/main.c +++ b/testhal/STM32/STM32F4xx/DAC/main.c @@ -59,7 +59,7 @@ static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { * DAC streaming callback. */ size_t nx = 0, ny = 0, nz = 0; -static void end_cb1(DACDriver *dacp, const dacsample_t *buffer, size_t n) { +static void end_cb1(DACDriver *dacp, dacsample_t *buffer, size_t n) { (void)dacp; @@ -140,7 +140,8 @@ int main(void) { /* * Starting a continuous conversion. */ - dacStartConversion(&DACD1, &dacgrpcfg1, dac_buffer, DAC_BUFFER_SIZE); + dacStartConversion(&DACD1, &dacgrpcfg1, + (dacsample_t *)dac_buffer, DAC_BUFFER_SIZE); gptStartContinuous(&GPTD6, 2U); /* diff --git a/testhal/STM32/STM32F4xx/DAC_DUAL/main.c b/testhal/STM32/STM32F4xx/DAC_DUAL/main.c index 7ce676bf2..bb67abaf3 100644 --- a/testhal/STM32/STM32F4xx/DAC_DUAL/main.c +++ b/testhal/STM32/STM32F4xx/DAC_DUAL/main.c @@ -59,7 +59,7 @@ static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { * DAC streaming callback. */ size_t nx = 0, ny = 0, nz = 0; -static void end_cb1(DACDriver *dacp, const dacsample_t *buffer, size_t n) { +static void end_cb1(DACDriver *dacp, dacsample_t *buffer, size_t n) { (void)dacp; @@ -143,7 +143,8 @@ int main(void) { * Note, the buffer size is divided by two because two elements are fetched * for each transfer. */ - dacStartConversion(&DACD1, &dacgrpcfg1, dac_buffer, DAC_BUFFER_SIZE / 2U); + dacStartConversion(&DACD1, &dacgrpcfg1, + (dacsample_t *)dac_buffer, DAC_BUFFER_SIZE / 2U); gptStartContinuous(&GPTD6, 2U); /* diff --git a/testhal/STM32/STM32L1xx/DAC/main.c b/testhal/STM32/STM32L1xx/DAC/main.c index fe4420a02..316f1f905 100644 --- a/testhal/STM32/STM32L1xx/DAC/main.c +++ b/testhal/STM32/STM32L1xx/DAC/main.c @@ -59,7 +59,7 @@ static const dacsample_t dac_buffer[DAC_BUFFER_SIZE] = { * DAC streaming callback. */ size_t nx = 0, ny = 0, nz = 0; -static void end_cb1(DACDriver *dacp, const dacsample_t *buffer, size_t n) { +static void end_cb1(DACDriver *dacp, dacsample_t *buffer, size_t n) { (void)dacp; @@ -140,7 +140,8 @@ int main(void) { /* * Starting a continuous conversion. */ - dacStartConversion(&DACD1, &dacgrpcfg1, dac_buffer, DAC_BUFFER_SIZE); + dacStartConversion(&DACD1, &dacgrpcfg1, + (dacsample_t *)dac_buffer, DAC_BUFFER_SIZE); gptStartContinuous(&GPTD6, 2U); /*