Skip to content

Commit

Permalink
Merge pull request #110 from cskarai/fix-optiboot-watchdog
Browse files Browse the repository at this point in the history
Optiboot bootloader unintentionally enables watchdog
  • Loading branch information
buserror committed Feb 16, 2015
2 parents f73a44a + 91259f9 commit 33c4799
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions simavr/sim/avr_watchdog.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 33c4799

Please sign in to comment.