diff --git a/os/hal/include/dac.h b/os/hal/include/dac.h index 65b0aa4eb..028d4fa78 100644 --- a/os/hal/include/dac.h +++ b/os/hal/include/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/dac_lld.h b/os/hal/ports/STM32/LLD/DACv1/dac_lld.h index 2589acb24..4ae673a3b 100644 --- a/os/hal/ports/STM32/LLD/DACv1/dac_lld.h +++ b/os/hal/ports/STM32/LLD/DACv1/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/dac.c b/os/hal/src/dac.c index c3c1b7c0c..1fba41656 100644 --- a/os/hal/src/dac.c +++ b/os/hal/src/dac.c @@ -165,7 +165,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(); @@ -193,7 +193,7 @@ void dacStartConversion(DACDriver *dacp, */ void dacStartConversionI(DACDriver *dacp, const DACConversionGroup *grpp, - const dacsample_t *samples, + dacsample_t *samples, size_t depth) { osalDbgCheckClassI(); @@ -294,7 +294,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/dac_lld.h b/os/hal/templates/dac_lld.h index 5d437fffd..f8e4854cc 100644 --- a/os/hal/templates/dac_lld.h +++ b/os/hal/templates/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 ef70507b7..d22a12279 100644 --- a/readme.txt +++ b/readme.txt @@ -73,6 +73,7 @@ ***************************************************************************** *** 16.1.8 *** +- HAL: Fixed DAC driver problem with API signature (bug #817). - HAL: Fixed STM32 OTGv1 driver not serving interrupts for endpoints > 5 (bug #816). - 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 c9a78cd33..75a70c696 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 8f7b41253..cb3d08bb9 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 0c96583eb..5b6a18bc9 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 f7eb9bff3..b79521574 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); /*