I have an application running on an EMX module that has watchdog enabled. Now and again I have noticed that looking at my log files that the watchdog has kicked in and reset the device. This happens out at one of our customer sites were we have quite a few of the devices installed. Not every device has restarted via watchdog (all the same application program) and they appear to run for varying lengths of time before the watchdog kicks in (few weeks, 2-3 months). So I am trying to identify what the issue could be.
The watchdog runs on its own processing thread and is set with quite a high time-out of 2 minutes. I have a few of questions, that maybe someone can answer:
On searching the forum, someone mentioned that the ChipworkX watchdog maximum time-out was actually 15 seconds. Is there a maximum time-out for watchdog on the EMX module i.e. I set it for 2 minutes but is it actually ignoring this? (Note this is at the very beginning of the application being installed, I gather once the time-out has been set for the first time it can’t be changed).
Has anybody come across any functionality or bug that can lock up all other processing threads i.e. during my initial development I discovered that if making outward tcp connections I unplugged the Ethernet cable, the hanging tcp socket would block all other processing threads and the watchdog would eventually kick in (I fixed this by ensuring the application only listened for incoming tcp connections and made no outbound tcp connections).
I have noticed that during some functional routines, that the application appears to run slow on executing other routines i.e. one processing thread periodically initiates an SPI data transfer, during this period other functionality appears to run slow as if the SPI transfer thread is blocking the rest of the threads.
I understand that threads are managed via a time-slicing schedule. Have any bugs been reported in this area (Googling didn’t seem to bring up anything)?
Finally the application is currently running on framework 4.1. I am waiting to move over to 4.2 until the SystemUpdate functionality has been added back. Plus I gather from reading on the forum there is an issue with UDP on EMX with 4.2.
Sorry for the long post. Thanks in advance!