Search by Tags

Watchdog

 

Compare with Revision




Subscribe for this article updates

There are two levels of watchdogs, a HW and a SW watchdog. The HW watchdog is able to reset the device even if the kernel crashed or hangs. It is HW related and different for some Toradex modules. The SW watchdog feature can be used to detect and handle application based crashes or hangs. It is a Windows CE feature and equal for all Toradex modules and Windows CE versions.

For Linux please see our article Watchdog (Linux).

HW Watchdog

Colibri PXA270

The hardware watchdog on the Marvell PXA270 chip has a bug. It is not possible to use this watchdog on the Colibri PXA270. We recommend to use an external one. For example, we are using the MAX6369KA-T chip on our Protea Carrier Board. In some cases it might be enough to use just a SW watchdog which are able to control application based hangs or crashes.

Colibri PXA3xx

The Marvell PXA3xx chips have a functional internal watchdog. For more information see the [Article not found #100804]. We provide a SW Library to control the watchdog under Windows CE.

Colibri T20 and Colibri / Apalis T30

The Nvidia T20 and T30 processors provide a HW watchdog, which is supported by the Windows CE kernel.

The kernel is responsible for continuously restarting the watchdog timer. If the kernel hangs or crashes, the HW watchdog resets the module after a default timeout of 20 seconds.

The HW watchdog is disabled by default. it can be enabled in the bootloader Configuration Block.

pex.WDEnable=1

Important Note

On Windows CE images V1.2 and older, the watchdog may timeout and reset the system during the boot phase, if debug messages are enabled (set dbg.serial 1) and the baud rate is 9600bps or below.

Software Watchdog

Use software watchdogs to control application hangs and crashes.

Windows CE provides a SW watchdog feature. Just search for the API CreateWatchDogTimer() on MSDN for the respective Windows CE version for more information about this feature.

The watchdog functions are not declared in pkfuncs.h as it is stated on MSDN, but they are declared in the header file wdogapi.h