扩展知识点----Linux中看门狗应用编程

简介: 扩展知识点----Linux中看门狗应用编程

1、在嵌入式产品中,为了方便Linux操作系统在异常情况下,能够自动复位,一般需要引入看门狗。看门狗其实就是在一定的时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,如果计数器溢出就会产生CPU产生一个复位信号使得系统重启--俗称被狗咬。如果在一定的时间内对看门狗及时喂狗,不产生复位信号。


2、正常的Linux开发板中,都会集成看门狗定时器:WDOG1 普通的看门狗,支持产生中断信号或者复位CPU。 相应的设备节点在对应的路径下为:/dev/watchdog0  /dev/watchdog1等。


3、看门狗应用编程实验代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#define WDOG_DEV  “/dev/watchdog”
int main(int argc,char *argv[])
{
struct watchdog_info info;
int timeout; int time;
int fd;
int op;
/* 打开看门狗 */
fd = open(WDOG_DEV, O_RDWR);
if (0 > fd) { fprintf(stderr, "open error: %s: %s\n", WDOG_DEV, strerror(errno)); exit(EXIT_FAILURE); }
/* 打开之后看门狗计时器会开启、先停止它 */
op = WDIOS_DISABLECARD;
if (0 > ioctl(fd, WDIOC_SETOPTIONS, &op)) {
fprintf(stderr, "ioctl error: WDIOC_SETOPTIONS: %s\n", strerror(errno));
close(fd);
exit(EXIT_FAILURE);
}
timeout = atoi(argv[1]);
if (1 > timeout)
timeout = 1;
/* 设置超时时间 */
printf("timeout: %ds\n", timeout);
if (0 > ioctl(fd, WDIOC_SETTIMEOUT, &timeout)) {
fprintf(stderr, "ioctl error: WDIOC_SETTIMEOUT: %s\n", strerror(errno));
close(fd);
exit(EXIT_FAILURE);
}
/* 开启看门狗计时器 */
op = WDIOS_ENABLECARD;
if (0 > ioctl(fd, WDIOC_SETOPTIONS, &op)) {
fprintf(stderr, "ioctl error: WDIOC_SETOPTIONS: %s\n", strerror(errno));
close(fd); exit(EXIT_FAILURE);
}
/* 喂狗 */
time = (timeout * 1000 - 100) * 1000;//喂狗时间设置 us 微秒、在超时时间到来前 100ms 喂狗
for ( ; ; ) {
usleep(time);
ioctl(fd, WDIOC_KEEPALIVE, NULL);
}
}

总结:1、实例的代码很简单,利用参数传进来相应的超时时间,需要传入一个参数作为看门狗超时时间。2、Linux系统下都会有常用硬件的驱动节点,直接调用即可控制硬件。

目录
相关文章
|
4月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
289 10
|
4月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
446 13
|
3月前
|
存储 数据采集 监控
ubuntu(linux)系统主要应用于哪些工业场景中?研维三防ubuntu系统的手持工业三防平板电脑在哪些行业中有实际应用
Ubuntu 系统凭借其独特的优势,在众多工业场景中得到了广泛应用,为工业数字化、智能化发展提供了有力支持。而研维三防基于 Ubuntu 定制系统的手持工业三防平板电脑,更是将 Ubuntu 系统的优势与工业级的性能、坚固耐用性完美结合,在电力、物流、制造等多个行业中展现出强大的应用价值,助力企业提高生产效率、优化管理流程、提升产品质量,成为推动工业现代化发展的重要力量。随着技术的不断进步与创新,相信 Ubuntu 系统以及研维三防这类工业级设备将在更多的工业领域中发挥更大的作用,为工业发展带来更多的机遇与变革。
|
6月前
|
安全 算法 Ubuntu
Linux(openssl)环境:编程控制让证书自签的技巧。
总结:在Linux环境中,OpenSSL是一个非常实用的工具,可以帮助我们轻松地生成自签名证书。通过上述三个简单步骤,即可为内部网络、测试环境或开发环境创建自签名证书。但在公共访问场景下,建议购买经过权威认证机构签发的证书,以避免安全警告。
277 13
|
8月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
9月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
通过本文,您可以了解如何在业务线程中注册和处理Linux信号。正确处理信号可以提高程序的健壮性和稳定性。希望这些内容能帮助您更好地理解和应用Linux信号处理机制。
144 26
|
9月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
本文详细介绍了如何在Linux中通过在业务线程中注册和处理信号。我们讨论了信号的基本概念,并通过完整的代码示例展示了在业务线程中注册和处理信号的方法。通过正确地使用信号处理机制,可以提高程序的健壮性和响应能力。希望本文能帮助您更好地理解和应用Linux信号处理,提高开发效率和代码质量。
153 17
|
9月前
|
机器学习/深度学习 安全 Linux
Linux 主要应用领域的归纳
服务器领域 Linux在服务器领域的应用是其最为广泛和成熟的领域之一。由于其开源、稳定、高效和安全的特性,Linux成为许多企业服务器的首选操作系统。 Web服务器:Linux是Web服务器的理想选择,因为它支持Apache、Nginx等流行的Web服务器软件,这些软件在Linux上运行稳定且性能卓越。Linux服务器可以高效地处理大量并发请求,提供快速、可靠的Web服务。 数据库服务器:Linux也广泛用于数据库服务器,如MySQL、PostgreSQL和Oracle等数据库管理系统在Linux上运行良好。Linux的稳定性和安全性使得它成为存储和管理敏感数据的理想平台。 邮件服务器:Lin
335 5
|
10月前
|
安全 Ubuntu Linux
Linux重要知识点
掌握以上Linux重要知识点可以帮助你高效地使用和管理Linux系统。这些知识不仅在日常使用中非常重要,而且在系统维护、网络配置和安全管理等方面也非常关键。通过不断实践和深入学习,可以进一步提高对Linux系统的理解和掌握。
192 22