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

Reply via email to