diff --git a/os/hal/include/hal_crc.h b/os/hal/include/hal_crc.h index 8290e2cd91..77f3ef7674 100644 --- a/os/hal/include/hal_crc.h +++ b/os/hal/include/hal_crc.h @@ -135,7 +135,15 @@ extern "C" { #endif void crcInit(void); void crcObjectInit(CRCDriver *crcp); +#if (defined(STM32F1xx) || defined(STM32F2xx) || defined(STM32F4xx) || defined(STM32L1xx) || defined(STM32F07x) || \ + defined(STM32F030x4) || defined(STM32F030x6) || defined(STM32F030x8) || defined(STM32F030xC) || \ + defined(STM32F031x6) || defined(STM32F038xx) || \ + defined(STM32F042x6) || defined(STM32F048xx) || \ + defined(STM32F051x8) || defined(STM32F058xx) ) // Those MCU dont have programmable CRC registers + void crcStart(CRCDriver *crcp); +#else void crcStart(CRCDriver *crcp, const CRCConfig *config); +#endif void crcStop(CRCDriver *crcp); void crcReset(CRCDriver *crcp); void crcResetI(CRCDriver *crcp); diff --git a/os/hal/src/hal_crc.c b/os/hal/src/hal_crc.c index 63799e4418..f4974ab60e 100644 --- a/os/hal/src/hal_crc.c +++ b/os/hal/src/hal_crc.c @@ -80,7 +80,23 @@ void crcObjectInit(CRCDriver *crcp) { * supports a default configuration * * @api - */ + */ +#if (defined(STM32F1xx) || defined(STM32F2xx) || defined(STM32F4xx) || defined(STM32L1xx) || defined(STM32F07x) || \ + defined(STM32F030x4) || defined(STM32F030x6) || defined(STM32F030x8) || defined(STM32F030xC) || \ + defined(STM32F031x6) || defined(STM32F038xx) || \ + defined(STM32F042x6) || defined(STM32F048xx) || \ + defined(STM32F051x8) || defined(STM32F058xx) ) // Those MCU dont have programmable CRC registers +void crcStart(CRCDriver *crcp) { + osalDbgCheck(crcp != NULL); + + osalSysLock(); + osalDbgAssert((crcp->state == CRC_STOP) || (crcp->state == CRC_READY), + "invalid state"); + crc_lld_start(crcp); + crcp->state = CRC_READY; + osalSysUnlock(); +} +#else void crcStart(CRCDriver *crcp, const CRCConfig *config) { osalDbgCheck(crcp != NULL); @@ -92,6 +108,7 @@ void crcStart(CRCDriver *crcp, const CRCConfig *config) { crcp->state = CRC_READY; osalSysUnlock(); } +#endif /** * @brief Deactivates the CRC peripheral.