28、嵌入式 Linux 看门狗与电源管理指南

嵌入式 Linux 看门狗与电源管理指南

1. 看门狗的添加

在嵌入式设备中,看门狗是常见需求。当关键服务停止工作时,通常需要采取行动,一般是重置系统。大多数嵌入式片上系统(SoC)都有硬件看门狗,可通过 /dev/watchdog 设备节点访问。看门狗在启动时会设置超时时间,必须在该时间段内重置,否则会触发看门狗,导致系统重启。与看门狗驱动的接口在 Documentation/watchdog 内核源码中描述,驱动代码位于 drivers/watchdog 目录。

若有两个或更多关键服务需要看门狗保护,会出现问题。 systemd 有一个实用功能,可在多个服务间分配看门狗。

systemd 可配置为期望从服务定期收到保活调用,若未收到则采取行动,为每个服务创建软件看门狗。要实现这一点,需在守护进程中添加代码以发送保活消息。代码需检查 WATCHDOG_USEC 环境变量是否为非零值,然后在该时间内(建议为看门狗超时时间的一半)调用 sd_notify(false, "WATCHDOG=1") systemd 源代码中有相关示例。

要在服务单元中启用看门狗,可在 [Service] 部分添加如下内容:

WatchdogSec=30s 
Restart=on-watchdog 
StartLimitInte
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值