From e967c2b340e0273259b089fc9b339ae550614cc3 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Tue, 2 May 2017 11:04:23 -1000 Subject: [PATCH] board_common:Added new API point board_on_reset This optionally provided function called on entry to board_system_reset. It should perform any house keeping prior to retunring to do the rest. --- src/drivers/boards/common/board_common.h | 18 ++++++++++++++++++ src/drivers/boards/common/stm32/board_reset.c | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/drivers/boards/common/board_common.h b/src/drivers/boards/common/board_common.h index d905f1470b..ca3c51ec55 100644 --- a/src/drivers/boards/common/board_common.h +++ b/src/drivers/boards/common/board_common.h @@ -310,6 +310,24 @@ __EXPORT void board_rc_input(bool invert_on); # endif #endif +/************************************************************************************ + * Name: board_on_reset + * + * Description: + * Optionally provided function called on entry to board_system_reset + * It should perform any house keeping prior to the rest. + * + * status - 1 if resetting to boot loader + * 0 if just resetting + * + ************************************************************************************/ + +#if defined(BOARD_HAS_NO_RESET) || !defined(BOARD_HAS_ON_RESET) +# define board_on_reset(status) +#else +__EXPORT void board_on_reset(int status); +#endif + /************************************************************************************ * Name: board_reset * diff --git a/src/drivers/boards/common/stm32/board_reset.c b/src/drivers/boards/common/stm32/board_reset.c index ff8e7df363..efeb1293cc 100644 --- a/src/drivers/boards/common/stm32/board_reset.c +++ b/src/drivers/boards/common/stm32/board_reset.c @@ -69,6 +69,9 @@ int board_set_bootload_mode(board_reset_e mode) void board_system_reset(int status) { +#if defined(BOARD_HAS_ON_RESET) + board_on_reset(status); +#endif board_reset(status); while (1);