Hi, The only explanation is that there is some memory access bug in my code, which illegally writes WDTIFG (i.e., 0x0120h) and causes security key violation.
Is there any debug tool to help locate where this happens? My program is of thousands of lines, so manual check is non-trivial. Also, it changes many low-level components, so it is incompatible with TOSSIM, making gdb not an option. Please weigh in if you have any suggestion. Thank you. -Xiaohui Liu TelosB T2.1.2 On Fri, Oct 26, 2012 at 10:24 PM, Xiaohui Liu <[email protected]> wrote: > Hi, > > One correction: > In case 2), there should only be one place: > /opt/tinyos-2.1.2/tos/lib/tosboot/msp430/HardwareC.nc:57: WDTCTL = 0; > > Sorry about the error. > > On Fri, Oct 26, 2012 at 6:39 PM, Xiaohui Liu <[email protected]> wrote: > >> Hi everyone, >> >> My program is reset some time after a node boots up. After the PUC reset, >> IFG1 is found with WDTIFG bit set, indicating the watchdog timer triggers >> the reset. This can happen under two cases: >> 1) Watchdog timer expiration when in watchdog mode only. But when WDTCTL >> is read out, the lower byte is 0x80, showing WDTHOLD bit is set to 1 and >> watchdog timer is stopped. >> 2) Watchdog timer security key violation. There are two places: >> /opt/tinyos-2.1.2/tos/lib/tosboot/msp430/HardwareC.nc:57: WDTCTL = 0; >> /opt/tinyos-2.1.2/tos/lib/tosboot/msp430/ExecC.nc:53: WDTCTL = WDTPW + >> WDTCNTCL; >> But neither component HardwareC nor ExecC is used. There is no place in >> my program to change the default WDTCTL setting, which is disables as shown >> in >> /opt/tinyos-2.1.2/tos/platforms/telosa/PlatformP.nc: WDTCTL = WDTPW + >> WDTHOLD; >> >> Can anyone please help me locate what is causing this strange reset? >> >> -Xiaohui Liu >> TelosB >> T2.1.2 >> > >
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
