/* | |
================================================================================= | |
Name : wdt_test.c | |
Version : 0.1 | |
Copyright (C) 2012 by Andre Wussow, 2012, desk@binerry.de | |
Description : | |
A simple test for working with the Raspberry Pi BCM2835 Watchdog. | |
References : | |
http://binerry.de/post/28263824530/raspberry-pi-watchdog-timer | |
================================================================================ | |
This sample is free software; you can redistribute it and/or | |
modify it under the terms of the GNU Lesser General Public | |
License as published by the Free Software Foundation; either | |
version 2.1 of the License, or (at your option) any later version. | |
This sample is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
Lesser General Public License for more details. | |
================================================================================ | |
*/ | |
#include <stdio.h> | |
#include <fcntl.h> | |
#include <linux/watchdog.h> | |
int main (int argc, char *argv[]) | |
{ | |
// print infos | |
printf("Raspberry Pi BCM2835 Watchdog Sample\n"); | |
printf("========================================\n"); | |
int deviceHandle; | |
int disableWatchdog = 1; | |
// test watchdog reset via t-param | |
if (argc > 1) { | |
if (!strncasecmp(argv[1], "-t", 2)) { | |
disableWatchdog = 0; | |
} | |
} | |
printf("Disabling watchdog before closing device: %d\n", disableWatchdog); | |
// open watchdog device on /dev/watchdog | |
if ((deviceHandle = open("/dev/watchdog", O_RDWR | O_NOCTTY)) < 0) { | |
printf("Error: Couldn't open watchdog device! %d\n", deviceHandle); | |
return 1; | |
} | |
// get timeout info of watchdog (try to set it to 15s before) | |
int timeout = 15; | |
ioctl(deviceHandle, WDIOC_SETTIMEOUT, &timeout); | |
ioctl(deviceHandle, WDIOC_GETTIMEOUT, &timeout); | |
printf("The watchdog timeout is %d seconds.\n\n", timeout); | |
// feed watchdog 3 times with heartbeats | |
int i; | |
for (i = 0; i < 3; i++) { | |
printf("Feeding the dog with a heartbeat.\n"); | |
ioctl(deviceHandle, WDIOC_KEEPALIVE, 0); | |
sleep(10); | |
} | |
if (disableWatchdog) | |
{ | |
printf("Disable watchdog.\n"); | |
write(deviceHandle, "V", 1); | |
} | |
// close connection and return | |
close(deviceHandle); | |
return 0; | |
} https://github.com/binerry/RaspberryPi/blob/master/snippets/c/watchdog/wdt_test.c |
Wednesday, April 11, 2018
I've got a snippet here, saying it all about mirai virus
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment