看门狗是linux驱动的一个重要环节。某些特殊的设备,有时候需要放在一些环境恶劣的地方,比如电信设备。但是,任何软件都不可能100%没有bug。...如何保证软件在遇到严重bug、死机的时候也能正常运行呢,那么看门狗就是有效的一种方法。看门狗一般要求用户定时喂狗,如果一段时间没有喂狗的话,那么系统就会自动重启。...今天,我们就来看看这个看门狗驱动怎么编写?
stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。...窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。...图1 窗口看门狗的 上窗口就是配置寄存器WWDG->CFR里设定的W[6:0]; 下窗口是固定的0x40; 当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。...当外部中断发生(按下PA0按键),长时间不喂狗,引发窗口看门狗复位。 直接操作寄存器 相关寄存器如下: 控制寄存器WWDG->CR:低8位有效。 第8位为WDGA,看门狗激活位。...RCC_Configuration(); /* GPIO configuration ——————————————————*/ GPIO_Configuration(); /*注释-hope:利用窗口看门狗的提前唤醒中断服务子程序来进行独立看门狗计数值的
为什么工业级无线路由器这么重视软硬件看门狗,今天我们就来看看软硬件看门狗区别。...工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。...所以在使用有看门狗的芯片时要注意清看门狗。...4) 初始化:硬件看门狗上电后收到第一个喂狗脉冲就完成了初始化,软件看门狗则需要配置相关的寄存器(或者调用相关的看门狗子程序)。...软件和硬件的看门狗的最主要差异在于开启看门狗的时机,软件看门狗必须初始化(配置)看门狗才能使用,如果软件看门狗是厂商提供的SDK中的一个API接口,开发者又没有能力修改底层的uboot、内核,无法在uboot
在正式的产品开发中,软件中要加入看门狗,以确保系统安全和软件跑飞后可以复位到安全状态,最近一直在用NXP的K64,所以今天就以K64为例来说明,软件看门狗的使用。...首先像学其他外设一样先来看K64看门狗的框图 ? 由图就可以清楚的搞清楚他的工作流程和软件操作思路,在结合SDK的帮助,你 就可以轻松上手。...别忘了使能,其中比较重要的一点是配置时钟和看门狗定时器的值,从上图中就可以看出K64的看门狗模块由两种时钟可选,我比较喜欢用LPO时钟1kHz。...这样计算看门狗时间例如为2秒的喂狗周期,则timeoutValue 应为2000,如下图所示: ? 如果由多任务还要考虑在多个地方清狗。 喂狗可以直接使用SDK的喂狗函数 ?...注释掉喂狗程序和注释掉清狗程序一样都会引起复位,且测试方法相同,至此验证了我们的软件看门狗功能符合设计需求。
一、独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。...看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。..._t Reload); //设置 IWDG 重装载值 设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间 (也就是看门狗溢出时间) ,该时间的计算方式为: Tout=((4×2^prer...) ×rlr) /40 其中 Tout 为看门狗溢出时间(单位为 ms) ;prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值) ;...4) 启动看门狗(向 IWDG_KR 写入 0XCCCC) 库函数里面启动独立看门狗的函数是: IWDG_Enable(); //使能 IWDG 通过这句,来启动 STM32 的看门狗。
前言: 今天我们来学习看门狗的配置与函数,看门狗可以有效解决程序的跑飞,在使用过程中比较常见,是防止芯片故障的有效外设,我们一起来学习下HAL库 STM32CubeMX的独立看门狗,窗口看门狗的使用...独立看门狗,靠窗看门狗 工作原理 看门狗 在由单片机构成的微型计算机系统中单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环;或者因为用户配置代码出现BUG,导致芯片无法正常工作...两个看门狗设备(独立看门狗、窗口看门狗)可以用来检测和解决由软件错误引起的故障。当计数器达到给定的超时值时,触发一个中断(仅适用窗口看门狗)或者产生系统复位。...窗口看门狗由从APB1时钟(36MHz)分频后得到时钟驱动。通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。 窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。...举例: HAL_IWDG_Refresh(&hiwdg); //看门狗喂狗 使用该函数定时喂狗即可 WWDG-窗口看门狗 窗口看门狗的定义 窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下递减计数
/*此程序实现单片机”看门狗”WDT的功能*/ #include”p18f458.h” unsignedlongi; /*系统初始化子程序*/ voidinitial() { TRISD = 0X00...口设为输出*/ } /*延时子程序*/ voidDELAY() { for(i=19999;–i;) continue; } /*主程序*/ main () { initial();/*初始化,设定看门狗的相关寄存器...0X00;/*D口送00H,发光二极管亮*/ DELAY();/*给予一定时间的延时*/ PORTD = 0XFF;/*D口送FFH,发光二极管灭*/ while(1) { ; }/*死循环,等待看门狗溢出复位...*/ } ——————-汇编语言版本的单片机看门狗程序—————- ;此程序实现”看门狗”WDT的功能 ;此单片机看门狗由http://www.51hei.com独家提供 LISTP=18F458 INCLUDE...MOVLW0X00 MOVWFPORTD;D口送00H,发光二极管亮 CALLDELAY MOVLW0XFF MOVWFPORTD;D口送FFH,发光二极管灭 LOOP GOTOLOOP;死循环,等待看门狗复位
在Linux中,所有内容都是文件,你可以将套接字视为写入网络的文件。
为了避免应用陷入错误状态导致界面无响应,Apple 设计了看门狗 (WatchDog) 机制。一旦超时,强制杀死进程。...8badf00d = ate bad food,大概是在说看门狗吃了坏的食物所以暴走了?!异常记录则表示这并不是一次崩溃(邪魅一笑:强制退出而已)。信息一栏指出时间限制为 20 s。...同步网络请求,主线程,超长超时时间,满足这三点,一定场景下几乎必然会触发看门狗机制。 对策 合理解决方案: 异步网络请求:优点很多,最重要的是可以让你无忧无虑安全地访问网络,而无需担心线程。...此外,一部分情况下,例如这次遇到登录和模版同步时触发看门狗,事实上,即使在运用到模版时再次请求也是勉强可行的,因此姑且先跳过网络请求也可以。...应用的网络部分基于公司的通用框架,因此优先考虑在非主线程中进行网络请求来避免触发看门狗。 至于调试模式下为什么可以正常启动应用,完全是因为该模式下看门狗机制处于禁用状态。
这个类实现了程序退出能重启,但是程序停止运行弹出对话框,进程并没有退出却无法重启。希望有好建议处理这个bug的朋友提出你们的宝贵意见。 源码如下:
---- 前言 看门狗 看门狗的含义:当一切正常时,看门狗不会有什么反应,但是出现异常情况时,看门狗就会叫,并把异常情况阻挡在门外。...一般来说,看门狗我们也叫他看门狗定时器,从本质上面来看,其实它就是一个计数器,在使用的时候,我们需要给它一个数值,随后看门狗的计数器根据计数方向开始累计,在看门狗的计数器达到预设的数值之前,我们可以进行重置看门狗计数器的操作...软件方面,看门狗模块需要由程序员编写相应的代码实现,具体过程如下: 初始化看门狗模块,包括设置看门狗定时器的超时时间和模式等参数。...当看门狗定时器达到预设的超时时间时,会产生看门狗中断,并自动复位系统。...同时也可以通过设置看门狗模块的 RSTEN 位实现看门狗产生复位信号直接重启系统。
看门狗的作用:防止单片机因未知原因死机或比我们预期的时间过长长时间不能响应,如果出现这种问题,看门狗就会把单片机复位 独立看门狗(IWDG): 时钟来源:内部低速时钟(LSI),所以用看门狗时不需要配置时钟...: 32位寄存器,低3位有效 配置分频系数,4*2^prer IWDG_RLR: 32位寄存器,低12位有效,每次对IWDG_KR写入0xAAAA,这个值会装载到看门狗计数器中(向下记数,记到0复位)...IWDG_SR: 32位寄存器,低2位有效 位0:PVU:看门狗预分频值更新状态位,1:指示预分频正在更新,预分频器值只有在 PVU 位为 0 时才可更新。...位1:RVU:看门狗重装载值更新状态位,1:指示重装载值正在更新,重载值只有在 RVU 位为 0 时才可更新。...IWDG->KR=0XCCCC; } 窗口看门狗(WWDG): 时钟来源:APB1时钟,使用时应先使能时钟,这一点与独立看门狗不一样 会先分频4096倍,再分2^WDGTB,所以WWDG超时公式如下
1.基本概念 物理CPU数 主板上实际插入的CPU数量,可以数不重复的physical id 有几个(physical id) CPU核数 单块CPU上...
Linux登录日志的存储 在Linux系统中,登录日志主要存储在三个文件中,/var/log/wtmp,/var/run/utmp,/var/log/lastlog。...常用的查询命令有w,who,last,users,lastlog等。 2. w命令 w命令可用于显示当前登录系统的用户信息。 执行这项指令可查询目前登录系统的用户有哪些人,以及正在执行的程序。...root@0b6987cc587f /workspace $ ac total 4595.16 参考资料 http://www.runoob.com/linux/linux-comm-w.html...http://www.runoob.com/linux/linux-comm-who.html https://linux.cn/article-2437-1.html http://www.runoob.com.../blog/2015/06/26/linux-ac-ming-ling/
目录 1、IWDG 1.1 独立看门狗简介 1.2 独立看门狗的特点 1.3 独立看门狗功能描述 1.4 硬件看门狗 1.5 寄存器访问保护 1.6 调试模式 2、WWDG 2.1 简介 2.2 窗口看门狗主要特点...2.3 窗口看门狗功能说明 2.4 如何设置看门狗超时 2.5 调试模式 3、区别 1、IWDG 1.1 独立看门狗简介 IWDG(Independent watchdog)独立看门狗,可以用来检测并解决由于软件错误导致的故障...当计数器值到达0,会产生一个复位信号(独立看门狗复位) 无论何时向关键字寄存器写入0XAAAA,IWDG_RLR的数值会重载进计数器,避免看门狗复位 1.4 硬件看门狗 如果通过器件选项位使能“硬件看门狗...WWDG 最适合那些要求看门狗在精确计时窗口起作用的应用程序 为什么要窗口看门狗?...对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了; 如果使用窗口看门狗
1 查询目前已登录的用户信息w 或者 who [@bjzw_11_210 ~]# w 14:03:18 up 342 days, 16:01, 2 users, load average: 0.03.../0 2017-12-05 09:50 (10.149.239.20) root pts/1 2017-12-07 20:41 (10.149.239.20) 2 查询每个账号最近登录时间
STM32的看门狗 STM32芯片一共有两个看门狗,一个是独立看门狗(IWDG),另一个是窗体看门狗(WWDG) 先来讲讲独立看门狗: STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动...独立看门狗有自由运行的递减计数器 独立看门狗的时钟由独立的RC振荡器提供(可在停止和待机模式下工作) 独立看门狗被激活后,则在计数器计数至0x000时产生复位 独立看门狗的配置工作代码: 1 void...(IWDG)和窗体看门狗(WWDG)的区别: (1)独立看门狗没有中断,窗口看门狗有中断 (2)独立看门狗有硬件软件之分,窗口看门狗只能软件控制 (3)独立看门狗只有下限,窗口看门狗又下限和上限 (4)...窗口看门狗是7位递减的 (5)独立看门狗是用的内部的大约40KHZ RC振荡器,窗口看门狗是用的系统时钟APB1ENR 功能不重复说明 功能不重复,独立看门狗用于防止系统死机,而窗口看门狗用于保证系统运行的正确性...总之就是,窗口看门狗用于保证已知时序的系统正常运行,独立看门狗保证系统不死机,两个看门狗各有其应用场景,所以不重复.
,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称:看门狗 看门狗的意义 在启动正常运行的时候,系统不能复位 在系统跑飞(程序异常执行...)的情况,系统复位,程序重新执行 独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它仍有效 独立看门狗适合应用于需要看门狗作为一个在主程序之外能够完全独立工作,并且对时间精度要求低的场合...独立看门狗功能描述 在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗。...首先是溢出时间Tout(超时时间)=(IWDG_RLR寄存器对应的装载数值) * (看门狗时钟周期) 看门狗时钟周期=1/freq。...(); 2.设置独立看门狗的预分频系数,确定时钟 IWDG_SetPrescaler(); 3.设置看门狗重装载值,确定溢出时间 IWDG_SetReload(); 3.设置看门狗重装载值,确定溢出时间
领取专属 10元无门槛券
手把手带您无忧上云