System Installation
RUBY-D716VG2AR User’s Manual 3-9
RUBY-D716VG2AR allows users to control WDT through dynamic software
programming. The WDT starts counting when it is activated. It sends out a signal to
system reset or to non-maskable interrupt (NMI), when time-out interval ends. To
prevent the time-out interval from running out, a re-trigger signal will need to be
sent before the counting reaches its end. This action will restart the counting process.
A well-written WDT program should keep the counting process running under
normal condition. WDT should never generate a system reset or NMI signal unless
the system runs into troubles.
The related Control Registers of WDT are all included in the following sample
program that is written in C language. User can fill a non-zero value into the Time-
out Value Register to enable/refresh WDT. System will be reset after the Time-out
Value to be counted down to zero. Or user can directly fill a zero value into Time-out
Value Register to disable WDT immediately. To ensure a successful accessing to the
content of desired Control Register, the sequence of following program codes should
be step-by-step run again when each register is accessed.
Additionally, there are maximum 2 seconds of counting tolerance that should be
considered into user’ application program.
There are two PNP I/O port addresses that can be used to configure WDT,
WDT Control Command Example
#include <stdio.h>
#include <dos.h>
#define EC_BASE 0x4E
#define EC_IO_BASE 0x2E
/* EC controll function */
static void EC_WriteByte (unsigned char index, unsigned char data)
{
outportb (EC_BASE, index);
delay(2);
outportb (EC_BASE+1, data);
delay(2);
}
/* Function to read value to SMFI via LPC */