Appendix a: programming watchdog timer, Appendix a, Programming watchdog timer – Lanner LEC-3012 User Manual
Page 22

22
Programming Watchdog Timer
Embedded and Industrial Computing
Appendix A
Appendix A:
Programming Watchdog
Timer
A watchdog timer is a piece of hardware that can be used
to automatically detect system anomalies and reset the
system (or one pair of network ports in bypassed state;
However, only one function can be activated at a time.)
in case there are any problems. Generally speaking, a
watchdog timer is based on a counter that counts down
from an initial value to zero. The software selects the
counter’s initial value and periodically restarts it. Should
the counter reach zero before the software restarts it,
the software is presumed to be malfunctioning and the
processor’s reset signal is asserted. Thus, the processor
will be restarted as if a human operator had cycled the
power.
For sample watchdog code, see wd_bp folder under Driver
and Utility on the Driver and Manual CD
Executing the commands through the Command Line:
1. wd_tst --swtsr (Set Watchdog Timeout State to Reset)
2. wd_tst --swt xxx (Set Watchdog Timer 1-255 seconds)
3. wd_tst[*] --start (Start Watchdog Timer)
4. wd_tst --stop (Stop Watchdog Timer)
The following procedures are required for running the
watchdog program on DOS, Linux and FreeBSD.
Note:
For DOS environment, use DJGPP as compiler
1.
and the makefile: Makefile.dos.
For Linux, support kernel versions are 2.4.x and
2.
2.6.x. Use the makefile:Makefile.linux.
For FreeBSD, support version is FreeBSD 8.0.
3.
Use the makefile: Makefile.
Build
To build program source code on Linux platform, use the
following steps as a guideline:
Copy the proper makefile from the Driver and Manual
1.
CD to your system
Set the access mode with these two parameters
2.
by editing the Makefile.linux directly: DIRECT_IO_
ACCESS= [0|1] (enter either 1 or 0) and LANNER_
DRIVER= [0|1] (enter either 1 or 0). 1 is for direct access
and no driver is needed. You will only need to execute
the program directly. However, when it equaled to 0,
driver installation is needed. Refer to the following
Install section for more details.
Type make to build source code:
3.
make Makefile (Note: omit the file extensions)
After compiled, the executable program (bpwd_tst) and
the driver (bpwd_drv.ko) will be in the bin subdirectory.
Install
The installation procedures depend on the access mode
that you have set by using the above mentioned method.
If you have set DIRECT_IO_ACCESS=1, driver installation is
not necessary. Proceed to the next section on execute
If you have set DIRECT_IO_ACCESS=0, Lanner driver needs
to be installed. Install the driver and create a node in the /
dev directory as shown in the following example:
For Linux:
Insert module and create node in /dev as below
example:
#insmod wd_drv.[k]o
#mknod /dev/wd_drv c 241 0
For FreeBSD:
Insert module as below example:
#kldload -v ./wd_drv.ko
Execute
# wd_tst --swtsr (Set Watchdog Timeout State to reset
function)
# wd_tst --swtsr (Set Watchdog Timeout State to Reset
function)
# wd_tst --swt xxx (Set Watchdog Timer 1-255 seconds)
# wd_tst[*] --start (Start Watchdog Timer)
# wd_tst --stop (Stop Watchdog Timer)
Note:
wd_tst --start will not be available if
1.
DIRECT_IO_ACCESS=1, use the command: “./