TS-4710 Watchdog: Difference between revisions

From embeddedTS Manuals
(Created page with "The watchdog is manipulated via the tshwctl utility. The startup scripts automatically run and daemonize tshwctl to feed the watchdog by default. It can be armed in 3 modes ...")
(No difference)

Revision as of 10:38, 27 February 2013

The watchdog is manipulated via the tshwctl utility. The startup scripts automatically run and daemonize tshwctl to feed the watchdog by default. It can be armed in 3 modes (0 - .4s, 1- 2.7s, 2 - 10.8s). It can be either auto-fed from a background process that continually feeds the watchdog while running (--autofeed option), or via a /dev/watchdog UNIX named pipe which receives single ASCII characters which are written to feed it from another application.

Value Result
0 feed watchdog for another .338s
1 feed watchdog for another 2.706s
2 feed watchdog for another 10.824s
3 disable watchdog

Watchdog by default comes out of reset armed for .338 seconds. TS-BOOTROM firmware feeds for 10.824 and OS code has 10.824 seconds to take over.

You can feed the watchdog from your application by poking a register:

#include <stdio.h>
#include <stdint.h>
#include <fcntl.h>
#include <sys/mman.h>

int main()
{
        int mem;
        volatile uint16_t *syscon;

        mem = open("/dev/mem", O_RDWR|O_SYNC);
        syscon = mmap(0,
                      getpagesize(),
                      PROT_READ|PROT_WRITE,
                      MAP_SHARED,
                      mem,
                      0x80004000);

        for(;;) {
                // This feeds the watchdog for 10s.
                syscon[0x6/2] = 2;
                sleep(5);
        }

        return 0;
}