看门狗超时前在内核打印信息
前不久,有几台设备一直在无故复位,虽然我很怀疑是应用程序搞死设备的,但公司的人员一向都是自己找不到问题就赖内核。对于这个复位,我的意见是禁止看门狗再测试,但没人理会,因此我想在看门狗超时前在内核里打印点东西,以证明到底是不是狗超时引起的复位(其实很久前就有这个想法,也尝试了,就是因为一个小小的疏忽不成功)。
在狗超时前打印信息需要在WDT驱动中改代码。加上打印信息,就能知道到底是不是看门狗超时导致系统复位了。
前提条件是芯片的看门狗支持DELAY中断(其它的不我知道,反正我所搞的那个芯片是有的)。
步骤如下:
在probe函数
1、中注册DELAY中断,
2、设置DELAY时间(即狗超时前多少秒触发中断)。
3、使能DELAY中断。
4、在DELAY中断处理函数(isr)打印你想打印的信息。
5、为了观看时间,可以调用do_gettimeofday和rtc_time_to_tm函数(只要#include <linux/rtc.h>即可)。
另外要注意的是在设置狗超时时间timeout时,要设置DELAY时间。
之前我搞不成功,是因为我没有在设置狗超时时间的同时设置DELAY时间。因为超时时间一量更改了,DELAY也必须跟着更改。
下面是效果示例:
// 启动时间:
XXXX -rtc XXXX 1-rtc: setting system clock to 2014-05-14 02:09:19 UTC (1400033359)
//狗超时:
<- Late Lee Watchdog DELAY interrupt happened ->
At UTC time :2014-04-14 02:10:18
Will reboot soon...
代码是公司的,思路是自己整理的,只给出思路,不便放代码。打印信息也作了处理,但不影响示例。
李迟记于2014年5月20日
看门狗超时前在内核打印信息相关推荐
- 关闭Linux内核打印信息方法
调试内核模块过程中,kmsg打印信息太多,通过修改/proc/sys/kernel/printk文件内容来控制. 一般通过 echo 0 > /proc/sys/kernel/printk关闭打 ...
- linux内核看门狗关闭方法,linux内核中断之看门狗
一:内核中断 linux内核中的看门狗中断跟之前的裸板的中断差不多,在编写驱动之前,需要线把内核自带的watch dog模块裁剪掉,要不然会出现错误:在Device Drivers /Watchdog ...
- linux 多线程看门狗,X86平台的看门狗驱动,在内核中开线程喂狗
1.X86平台的看门狗驱动: 相关文件为:drivers/watchdog/iTCO_wdt.c 相关配置选项为: Device Drivers ---> [*] Watchdog Timer ...
- [笔记]ESP32 踩坑 任务看门狗超时的问题---Task watchdog got triggered
一.环境配置 更新--- 2022/4/13 问题:之前的操作会造成新项目无法找到esp_vApplicationldleHook的函数,所以改成了屏蔽宏定义的操作,但是需要使用者在自己的所有项目的m ...
- STM32看门狗超时时间计算
独立看门狗 公式 超时时间的公式为 :超时时间 :IWDG_PR寄存器中位2:0的十进制值 :重装载寄存器IWDG_RLR所对应的重装载数值 公式解读 首先,我们要明白: 独立看门狗内部是一个递减计数 ...
- Linux之旅-第一个内核打印信息
1.编译环境: 根据Tiny4412用户手册.pdf中的3.2节完成开发环境的配置: 2.新增内核日志打印宏定义 #define LOGE(fmt, ...) printk(KERN_ERR &quo ...
- printk在应用层的设置方式及读取内核打印信息的方法
如果 printk 中没有加调试级别,则使用默认的调试级别.注意,调试级别和格式化字符串之间没有逗号.当前控制台的各打印级别可以通过下面的命令来查看. # cat /proc/sys/kernel/p ...
- linux查看内核打印信息,通过sysrq打印linux内核信息
1. SysRq的启用与关闭 要想启用SysRq, 需要在配置内核时设置Magic SysRq key (CONFIG_MAGIC_SYSRQ)为Y. 对于支持SysRq的内核, /proc/sys/ ...
- Linux开启关闭内核打印信息
路径: kernel/printk/printk.c 位置: int console_printk[4] = {CONSOLE_LOGLEVEL_DEFAULT, /* console_logleve ...
最新文章
- kwargs.pop是什么意思
- 阿里达摩院2020趋势第一弹:感知智能的“天花板”和认知智能的“野望”
- 使用Composer安装Laravel步骤
- 批处理中百分号%的作用
- css实现圆形钟表,js+css3圆形指针时钟代码
- 选购商用计算机任务书,计算机网络综合实习任务书-.doc
- 基于nodejs实现每天固定时间发送邮件服务
- myeclipse 注册码生成代码(6.5----9.0均可使用)
- 学习笔记之awk用法
- 祭奠被遗忘的冒泡排序
- 我的世界java营火如何合成_我的世界:关于营火的8个“冷”知识,可通过27000种方式来合成!...
- 项目管理工具 - TAPD
- A. Is your horseshoe on the other hoof?
- 【qq机器人】定时发送消息大全
- CPU idle框架
- 白蛋白纳米-超声微泡载组织型纤溶酶原激活物基因靶向制备研究
- 人人商城互动直播(与通信服务器连接失败)
- TruckSim Quick Start Guide(TruckSim快速入门)
- 人民币对美元汇率中间价报6.7615元 下调73个基点
- 为什么Android没有iOS那么顺滑
热门文章
- 线性独立路径_设计一个线性电源电路,需要准备哪些元器件呢?
- 刘强东卸任京东集团CEO!接任人是他...
- 清明档总票房仅1.2亿元 全国影院营业比例不足50%
- 小红书再度出拳整治医美 首批处置违规笔记27.9万篇
- Redmi K50电竞版卖点投票:120W神仙秒充一骑绝尘
- 799元!乐视智能门锁新品Le1S发布
- 抖音电商发布创作者管理总则 近八万名带货达人因违规被罚
- 苹果鼓励美国员工赴中国出差 一天500美元奖金
- 果然!这款不到1万的折叠手机同样秒售罄
- 马斯克再创历史!人类首个商业载人飞船发射成功:移民火星又近一步