diff --git a/include/sta/hal/init.hpp b/include/sta/hal/init.hpp new file mode 100644 index 0000000..4c8cd48 --- /dev/null +++ b/include/sta/hal/init.hpp @@ -0,0 +1,17 @@ +/** + * @brief Global HAL initialization. + */ +#ifndef STA_HAL_INIT_HPP +#define STA_HAL_INIT_HPP + + +namespace sta +{ + /** + * @brief Initialize global HAL objects. + */ + void initHAL(); +} // namespace sta + + +#endif // STA_HAL_INIT_HPP diff --git a/src/hal/init.cpp b/src/hal/init.cpp new file mode 100644 index 0000000..4d6d13a --- /dev/null +++ b/src/hal/init.cpp @@ -0,0 +1,22 @@ +#include + +#include + +#ifdef STA_HAL_DELAY_US_TIM +#include +#endif // STA_HAL_DELAY_US_TIM + + +namespace sta +{ + void initHAL() + { +#ifdef STA_HAL_DELAY_US_TIM + // Validate TIM used for delayUs + extern bool isValidDelayUsTIM(); + STA_ASSERT(isValidDelayUsTIM()); + // Start timer base + HAL_TIM_Base_Start(&STA_HAL_DELAY_US_TIM); +#endif // STA_HAL_DELAY_US_TIM + } +}