All Forums
 Microsoft Windows CE
 General CE
 Watchdog on BitsyXb
 Forum Locked
 Send Topic to a Friend
 Printer Friendly
Author Topic  

erasmussen

15 Posts

Posted - 12 Jun 2009 :  16:43:34  Show Profile  Email Poster
We have an existing application running on BitsyX which re recently ported to BitsyXb and appeared to run fine in all areas. We have recently discovered that the watchdog is not kicking in when it should be on multiple systems and I am wondering if there was a change between bitsyx and bitsyxb regarding the watchdog.

When I say multiple systems I mean the two systems we have in hand.

Any help is appreciated!!

beitman

63 Posts

Posted - 15 Jun 2009 :  14:22:50  Show Profile  Email Poster
I called erasmussen to discuss this, we are looking into why the watchdog isn't working. For those of you interested in this problem, the watchdog is working on BitsyXb for erasmessen if the timeout value is ~2 minutes, but it is failing if the timeout is ~17 minutes.

When we know more, I will update this post.

Bruce
Go to Top of Page

erasmussen

15 Posts

Posted - 16 Jun 2009 :  12:27:39  Show Profile  Email Poster
Update: I took the Watchdog sample from the forums, modified WD_TIMEOUT to be 120 seconds, and at the end of TriggerWatchdog.cpp, changed it to look like this:

RETAILMSG(1,(L"Waiting for watchdog reset....\r\n"));

RETAILMSG(1,(L"Entering Suspend...\r\n"));
GwesPowerOffSystem();
RETAILMSG(1,(L"...Exiting Suspend\r\n"));

return 0;

I compiled for both BitsyX and BitsyXB and ran the test on both systems side by side.

Both systems ran the application, displayed the "Entering Suspend..." message and went to sleep. I then woke them both up with a hardware Wakeup and they both displayed the "...Exiting Suspend" message.

Two minutes later the BitsyX reset, the the BitsyXB never reset.

It appears that the behavior of the Watchdog has changed between BitsyX and BitsyXB. Is there some settings: registry, setup config, switches, ADSLOAD.REG, ADSLOAD.HWT, etc that I may be missing that might be different between the systems?

If there is some change I can make in settings that will keep the BitsyX behavior of preserving the Enabled state of the Watchdog upon return from sleep that will help us a lot as we will not need to make a whole new release of our software for all of our new BitsyXB customers...

...or if we can confirm that the behavior has changed then I can stop looking and get onto the business of making a new version that enables watchdog on return from sleep.

Thank you in advance!!

Edited by - erasmussen on 16 Jun 2009 12:28:02
Go to Top of Page

beitman

63 Posts

Posted - 17 Jun 2009 :  10:08:54  Show Profile  Email Poster
You are correct. It turns out that we implemented a method to disable the watchdog which requires a suspend/resume. The result is that the watchdog is not re-enabled after resume unless you are using some new APIs provided by the kernel. We will work on documenting the new APIs and have them posted this week.

Thank you for the background work that you did to help us identify this key difference. Note that a workaround for this is to add code to the WatchDog::Pet() function to enable the watchdog when you pet the dog.

Bruce
Go to Top of Page

beitman

63 Posts

Posted - 18 Jun 2009 :  15:02:43  Show Profile  Email Poster
Celine added an application in topic 2792 that shows how to use ADSAPI to manage the watchdog. If you use these watchdog APIs the watchdog will be re-enabled on resume and the timeout will be set to the full timeout value.
Go to Top of Page
  Topic  
 Forum Locked
 Send Topic to a Friend
 Printer Friendly
Jump To:
Eurotech Support Forums © Eurotech Inc. Go To Top Of Page
This page was generated in 0.03 seconds. Snitz Forums 2000