Programmer’s Guide |
WDT (Watch Dog Timer)
This function is only available for firmware version V1.5 (and later versions).
1.Introduction
The WDT works like a watch dog function. You can enable it or disable it. When the user enables WDT but the application does not acknowledge it, the system will reboot. You can set the ack time from a minimum of 50 msec to a maximum of 60 seconds.
2.How the WDT works
The sWatchDog is enabled when the system boots up. The kernel will auto ack it. The user application can also enable ack. When the user does not ack, it will let the system reboot.
Kernel boot …..
….
User application running and enable user ack ….
….
3.The user API
The user application must include <moxadevic.h>, and link moxalib.a. A makefile example is shown below:
all:
int swtd_open(void)
Description
Open the file handle to control the sWatchDog. If you want to do something you must first to this. And keep the file handle to do other.
Input
None
Output
The return value is file handle. If has some error, it will return < 0 value.
You can get error from errno().
int swtd_enable(int fd, unsigned long time)
Description
Enable application sWatchDog. And you must do ack after this process.
Input |
|
int fd | - the file handle, from the swtd_open() return value. |
unsigned long time - The time you wish to ack sWatchDog periodically. You must ack the sWatchDog before timeout. If you do not ack, the system will be reboot automatically. The minimal time is 50 msec, the maximum time is 60 seconds. The time unit is msec.
Output
OK will be zero. The other has some error, to get the error code from errno().