From 78e234bb6fbd836ddc478d55f6f04ca0a9315622 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 c6a76a1c56..f91f7447fb 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 fb03855941..21b6d82c6e 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; @@ -226,4 +235,6 @@ private: #if CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS AP_Int8 _sdcard_slowdown; #endif + + AP_Int32 _options; };