linux簡單易用的看門狗程式
阿新 • • 發佈:2019-02-17
看門狗程式是通過“喂狗”的形式不停的給watchdog寫入資料,一旦在一定的時間內沒有寫入,watchdog就會認為程式發生了崩潰,它能夠直接出發晶片復位,讓linux系統進行重啟。在實際的專案中具有重要的作用。
本文講解linux中標準的看門狗程式,標準指的是裝置號為/dev/watchdog,程式如下:
void feed_watchdog() { int wd_fd; wd_fd = open("/dev/watchdog",O_RDWR); if(wd_fd < 0) { printf("wd open failed\n"); return; } int timeout = 20; ioctl(wd_fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD); ioctl(wd_fd, WDIOC_SETTIMEOUT, &timeout); while(1) { sleep(10); ioctl(wd_fd,WDIOC_KEEPALIVE,NULL); } close(wd_fd); }
ioctl(wd_fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD)是使能watchdog。
ioctl(wd_fd, WDIOC_SETTIMEOUT, &timeout),設定喂狗時間