Disable the watchdog early in the program

This commit is contained in:
Alex Voinea 2022-12-16 12:25:40 +01:00
parent 451f601697
commit e8c8945650
1 changed files with 12 additions and 0 deletions

View File

@ -685,6 +685,18 @@ void failstats_reset_print()
eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
}
extern "C" {
void __attribute__ ((naked)) __attribute__ ((section (".init3"))) stopWatchdogOnInit(void) {
// Regardless if the watchdog support is enabled or not, disable the watchdog very early
// after the program starts since there's no danger in doing this.
// The reason for this is because old bootloaders might not handle the watchdog timer at all,
// leaving it enabled when jumping to the program. This could cause another watchdog reset
// during setup() if not handled properly. So to avoid any issue of this kind, stop the
// watchdog timer manually.
wdt_disable();
}
}
void softReset()
{
cli();