Thanks for the reply, I did figure it out after a while. I misread the code initially. But for some reason the mote was reporting that the supply voltage was too low and did not want to reboot. I thought that this was not possible as the mote was plugged into a USB port. Until I physically measured the voltage and found that it was indeed below the threshold voltage. When run from batteries everything seems fine.
Leon 2009/6/11 Razvan Musaloiu-E. <[email protected]> > Hi! > > On Fri, 8 May 2009, Leon Steenkamp wrote: > > In tos\lib\net\Deluge\extra\NetProgM.nc there is the following: >> >> --<SNIP>-- >> command error_t NetProg.programImageAndReboot(uint32_t imgAddr) >> { >> reprogramImgAddr = imgAddr; >> return call ReprogramGuard.okToProgram(); >> } >> >> event void ReprogramGuard.okToProgramDone(bool ok) >> { >> BootArgs bootArgs; >> >> if (!ok) { >> // The voltage is too low. Nothing to do. >> return; >> } >> >> atomic { >> call IFlash.read(TCAST(uint8_t* >> COUNT(sizeof(bootArgs)),TOSBOOT_ARGS_ADDR), &bootArgs, sizeof(bootArgs)); >> >> bootArgs.imageAddr = reprogramImgAddr; >> bootArgs.gestureCount = 0xff; >> bootArgs.noReprogram = FALSE; >> bootArgs.address = TOS_NODE_ID; >> >> call IFlash.write(TCAST(uint8_t* >> COUNT(sizeof(bootArgs)),TOSBOOT_ARGS_ADDR), &bootArgs, sizeof(bootArgs)); >> >> // reboot >> netprog_reboot(); >> } >> } >> --<SNIP>-- >> >> I am using TelosB platform and when NetProg.programImageAndReboot is >> called >> not much happens and I guess its because ReprogramGuard.okToProgram() is >> called with no argument. >> > > ReprogramGuard.okToProgram() is called without any argument because it's a > split phase command. The response is the ReprogramGuard.okToProgramDone > event. If the ok is false it means the battery voltage is too low so the > mote will not reboot. There is another voltage check in the bootloader > (tosboot) so if you ignore the ok and initiate a reboot the mote will not > reprogram (and you can enter in a loop if you keep rebooting asking for a > reprogramming). > > Sorry for delay. I didn't notice this message until now. :-( > Razvan ME > > > And if (!ok) is always true. >> >> Am I missing something? or is there a problem with the code? I changed the >> "if (!ok)" to "if (ok)", the node now reboots but it does not seem to be >> reprogrammed. >> >> Leon >> >>
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
