OpenHarmony喂狗源码解读之内核态源码 原创 精华
民之码农
发布于 2022-1-17 09:24
1.2w浏览
9收藏
春节不停更,此文正在参加「星光计划-春节更帖活动」https://harmonyos.51cto.com/posts/9923
OpenHarmony3.1Beta喂狗内核源码解读
一、喂狗的芯片手册资料
1.概述
看门狗 WatchDog 用于系统异常情况下,一定时间内发出复位信号,以复位整个系统。系统提供 2 个 WatchDog 模块。
2.特点
WatchDog 具备以下特点:
内部具有一个 32bit 减法计数器。
支持超时时间间隔(即计数初值)可配置。
支持寄存器锁定,防止寄存器被误改。
支持超时中断产生。
支持复位信号产生。
支持调试模式
3.DG 寄存器概览
具体详细的内核请查看附件芯片手册
二、内核态代码分析
1.定义喂狗IO地址
- 代码位置
2.代码函数接口分析
hidog_open 是用户态句柄代码开始喂狗
hidog_release是用户态停止喂狗,设置喂狗超时时间,并喂一次狗;
hidog_ioctl是设置喂狗参数,获取喂狗参数或者喂狗的函数接口;
寄存器的读写是寄存器的物理地址通过ioremap转换成虚拟内存地址再进行读写的,程序退出需要对ioremap的地址进行iounmap。
喂狗模块watchdog_init初始化之后开始喂狗,先有内核喂狗,内核是慢喂狗 30.01s喂一次狗;而用户态(watchdog_service 10 2)接管喂狗是重新设置的了超时时间12s,快于内核的喂狗时间,只要用户态设置的时间超过30s那么用户态停止喂狗,将继续有内核态喂狗。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
Hi3516DV300 专业型 Smart IP Camera SoC .pdf 12.07M 74次下载
已于2022-1-20 15:49:09修改
赞
13
收藏 9
回复
13
3
9
相关推荐
结合大佬之前的文章食用更佳
OpenHarmony喂狗源码解读之启动喂狗服务
https://harmonyos.51cto.com/posts/9945
OpenHarmony喂狗源码解读之用户态源码
https://harmonyos.51cto.com/posts/9967
配合以下阅读,效果更佳
1、OpenHarmony喂狗源码解读之启动喂狗服务
https://harmonyos.51cto.com/posts/9945
2、OpenHarmony喂狗源码解读之内核态源码
https://harmonyos.51cto.com/posts/9966
3、OpenHarmony喂狗源码解读之用户态源码
https://harmonyos.51cto.com/posts/9967
4、OpenHarmony喂狗源码解读之Linux内核原生喂狗配置
https://harmonyos.51cto.com/posts/9969