diff --git a/libraries/AP_HAL_ChibiOS/CANFDIface.cpp b/libraries/AP_HAL_ChibiOS/CANFDIface.cpp index f0169a3664..388db3f076 100644 --- a/libraries/AP_HAL_ChibiOS/CANFDIface.cpp +++ b/libraries/AP_HAL_ChibiOS/CANFDIface.cpp @@ -89,7 +89,9 @@ extern const AP_HAL::HAL& hal; #define STR(x) #x #define XSTR(x) STR(x) +#if !defined(HAL_LLD_USE_CLOCK_MANAGEMENT) static_assert(STM32_FDCANCLK == 80U*1000U*1000U, "FDCAN clock must be 80MHz, got " XSTR(STM32_FDCANCLK)); +#endif using namespace ChibiOS; diff --git a/libraries/AP_HAL_ChibiOS/hwdef/common/stm32g4_mcuconf.h b/libraries/AP_HAL_ChibiOS/hwdef/common/stm32g4_mcuconf.h index ce7eb94907..3c692db1d5 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/common/stm32g4_mcuconf.h +++ b/libraries/AP_HAL_ChibiOS/hwdef/common/stm32g4_mcuconf.h @@ -25,6 +25,12 @@ #define STM32_LSEDRV (3U << 3U) #endif +/* + we need to use HAL_LLD_USE_CLOCK_MANAGEMENT in order to allow a + different clock tree in the main firmware from the bootloader. + */ +#define HAL_LLD_USE_CLOCK_MANAGEMENT 1 + /* * STM32G4xx drivers configuration. * The following settings override the default settings present in