From: Karai Csaba Date: Sun, 4 Jan 2015 09:15:35 +0000 (+0100) Subject: Fixed: optiboot issue, watchdog is unintentionally enabled X-Git-Tag: v1.3~54^2 X-Git-Url: https://git.htl-mechatronik.at/public/?a=commitdiff_plain;h=91259f9096689f9caac0faa4c23ca132082b12b6;p=sx%2Fsimavr.git Fixed: optiboot issue, watchdog is unintentionally enabled --- diff --git a/simavr/sim/avr_watchdog.c b/simavr/sim/avr_watchdog.c index b4628ca..f8a5938 100644 --- a/simavr/sim/avr_watchdog.c +++ b/simavr/sim/avr_watchdog.c @@ -103,13 +103,14 @@ static void avr_watchdog_write(avr_t * avr, avr_io_addr_t addr, uint8_t v, void uint8_t old_wde = avr_regbit_get(avr, p->wde); uint8_t old_wdie = avr_regbit_get(avr, p->watchdog.enable); - + uint8_t old_wdce = avr_regbit_get(avr, p->wdce); + uint8_t was_enabled = (old_wde || old_wdie); uint8_t old_v = avr->data[addr]; // allow gdb to see write... avr_core_watch_write(avr, addr, v); - if (avr_regbit_get(avr, p->wdce)) { + if (old_wdce) { uint8_t old_wdp = avr_regbit_get_array(avr, p->wdp, 4); // wdrf (watchdog reset flag) must be cleared before wde can be cleared.