From 348506b3c4265e0cc15f6458c1d9504f72dfa3b5 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 20 Apr 2019 13:53:45 +1000 Subject: [PATCH] AP_BoardConfig: added BRD_OPTIONS used to enable STM32 watchdog # Conflicts: # libraries/AP_BoardConfig/AP_BoardConfig.cpp # libraries/AP_BoardConfig/AP_BoardConfig.h --- libraries/AP_BoardConfig/AP_BoardConfig.cpp | 15 +++++++++++++++ libraries/AP_BoardConfig/AP_BoardConfig.h | 11 +++++++++++ 2 files changed, 26 insertions(+) diff --git a/libraries/AP_BoardConfig/AP_BoardConfig.cpp b/libraries/AP_BoardConfig/AP_BoardConfig.cpp index 7be312e7f7..e2a393905e 100644 --- a/libraries/AP_BoardConfig/AP_BoardConfig.cpp +++ b/libraries/AP_BoardConfig/AP_BoardConfig.cpp @@ -97,6 +97,14 @@ #define BOARD_PWM_COUNT_DEFAULT 8 #endif +#ifndef HAL_BRD_OPTIONS_DEFAULT +#if CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS +#define HAL_BRD_OPTIONS_DEFAULT BOARD_OPTION_WATCHDOG +#else +#define HAL_BRD_OPTIONS_DEFAULT 0 +#endif +#endif + extern const AP_HAL::HAL& hal; AP_BoardConfig *AP_BoardConfig::instance; @@ -233,6 +241,13 @@ const AP_Param::GroupInfo AP_BoardConfig::var_info[] = { AP_GROUPINFO("SD_SLOWDOWN", 17, AP_BoardConfig, _sdcard_slowdown, 0), #endif + // @Param: OPTIONS + // @DisplayName: Board options + // @Description: Board specific option flags + // @Bitmask: 0:Enable hardware watchdog + // @User: Advanced + AP_GROUPINFO("OPTIONS", 19, AP_BoardConfig, _options, HAL_BRD_OPTIONS_DEFAULT), + AP_GROUPEND }; diff --git a/libraries/AP_BoardConfig/AP_BoardConfig.h b/libraries/AP_BoardConfig/AP_BoardConfig.h index 8c0168704d..ab7761ab22 100644 --- a/libraries/AP_BoardConfig/AP_BoardConfig.h +++ b/libraries/AP_BoardConfig/AP_BoardConfig.h @@ -155,6 +155,15 @@ public: } #endif + enum board_options { + BOARD_OPTION_WATCHDOG = (1 << 0), + }; + + // return true if watchdog enabled + static bool watchdog_enabled(void) { + return _singleton?(_singleton->_options & BOARD_OPTION_WATCHDOG)!=0:false; + } + private: static AP_BoardConfig *instance; @@ -225,4 +234,6 @@ private: #if CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS AP_Int8 _sdcard_slowdown; #endif + + AP_Int32 _options; };