Add watchdog feeding macro
When HW / OS provides an always enabled watchdog, this macro can optionally be implemented to avoid resets which are expected to occur under normal conditions when swapping very large images or running on slower devices. Signed-off-by: Fabio Utzig <utzig@apache.org>
This commit is contained in:
parent
af1e02e347
commit
853657c23d
|
@ -954,6 +954,8 @@ boot_copy_sector(const struct flash_area *fap_src,
|
|||
}
|
||||
|
||||
bytes_copied += chunk_sz;
|
||||
|
||||
MCUBOOT_WATCHDOG_FEED();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -73,4 +73,14 @@
|
|||
|
||||
#define MCUBOOT_MAX_IMG_SECTORS MYNEWT_VAL(BOOTUTIL_MAX_IMG_SECTORS)
|
||||
|
||||
#if MYNEWT_VAL(WATCHDOG_INTERVAL)
|
||||
#include <hal/hal_watchdog.h>
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
hal_watchdog_tickle(); \
|
||||
} while (0)
|
||||
#else
|
||||
#define MCUBOOT_WATCHDOG_FEED() do {} while (0)
|
||||
#endif
|
||||
|
||||
#endif /* __MCUBOOT_CONFIG_H__ */
|
||||
|
|
|
@ -78,4 +78,9 @@
|
|||
|
||||
#endif /* !__BOOTSIM__ */
|
||||
|
||||
#define MCUBOOT_WATCHDOG_FEED() \
|
||||
do { \
|
||||
/* TODO: to be implemented */ \
|
||||
} while (0)
|
||||
|
||||
#endif /* __MCUBOOT_CONFIG_H__ */
|
||||
|
|
|
@ -116,4 +116,17 @@
|
|||
* "assert" is used. */
|
||||
/* #define MCUBOOT_HAVE_ASSERT_H */
|
||||
|
||||
/*
|
||||
* Watchdog feeding
|
||||
*/
|
||||
|
||||
/* This macro might be implemented if the OS / HW watchdog is enabled while
|
||||
* doing a swap upgrade and the time it takes for a swapping is long enough
|
||||
* to cause an unwanted reset. If implementing this, the OS main.c must also
|
||||
* enable the watchdog (if required)!
|
||||
*
|
||||
* #define MCUBOOT_WATCHDOG_FEED()
|
||||
* do { do watchdog feeding here! } while (0)
|
||||
*/
|
||||
|
||||
#endif /* __MCUBOOT_CONFIG_H__ */
|
||||
|
|
Loading…
Reference in New Issue