硬件watchdog(硬件watchdog怎么使用)
一、...panic not syncing : nmi watchdog 这个跟硬件有关么
出现该种情况的原因有很多种,但若没有对计算机进行异常更改配置的话应该不会是硬件出了问题,首先想到的应该是软件或者是近期对其他配置进行了更改所造成的,笔者建议先关掉当前启动的redhat os,然后更改当前CD/CDROM中的挂载路径仍然确定为当初安装该Linux OS的ISO文件即可,我用过的,没问题!如果尝试成功的读者,请顶一下!谢谢!
二、...提示watchdog.sysy出错(大概意思是这样),我该怎么办
蓝屏的可能很多,比如驱动与硬件不匹配,或者应用程序的问题,还有就是内存条不匹配等。我那台华硕就是因为驱动没怎么安装好奥,经常性关机的时候蓝屏。你可以对照下面的代码看看是什么问题吧~这里列举几个典型的蓝屏故障的原因和解决办法。
一、0X0000000A
这个蓝屏代码和硬件无关,是驱动和软件有冲突造成的,最早发现这个代码是因为公司的DELL机器的USB键盘和QQ2007的键盘加密程序有冲突发现的这个问题。也在IBM T系列笔记本上装驱动失误产生过。
如果您的机器蓝屏了,而且每次都是这个代码请想一想最近是不是更新了什么软件或者什么驱动了,把它卸载再看一下。一般情况下就能够解决,如果实在想不起来,又非常频繁的话,那么没办法,重新做系统吧。
二、0X0000007B
这个代码和硬盘有关系,不过不用害怕,不是有坏道了,是设置问题或者病毒造成的硬盘引导分区错误。
如果您在用原版系统盘安装系统的时候出这个问题,那说明您的机器配置还是比较新的,作为老的系统盘,不认这么新的硬盘接口,所以得进BIOS把硬盘模式改成IDE兼容模式。当然了,现在人们都用ghost版的操作系统,比较新的ghost盘是不存在这个问题的。
如果您的操作系统使用了一段时间了,突然有一天出现这个问题了,那么对不起,病毒造成的,开机按F8,选择最后一次正确的配置,恢复不到正常模式的话那么请重新做系统吧。
三、0X000000ED
这个故障和硬盘有关系,系统概率比较大,硬盘真坏的概率比较小。我弄过不下二十个这个代码的蓝屏机器了,其中只有一个是硬盘真的有坏道了。剩下的都是卷出了问题,修复即可,这也是为数不多的可以修复的蓝屏代码之一。
修复方法是找原版的系统安装盘(或者金手指V6那个pe启动界面里就带控制台修复)。这里说用系统盘的方法,把系统盘放入光驱,启动到安装界面,选择按R进入控制台修复,进入控制台后会出现提示符C:\大家在这里输入 chkdsk-r然后它就会自动检测并修复问题了,修复完成之后重新启动计算机就可以进入系统了,进入系统之后最好先杀毒,然后再重新启动一下试一下,如果正常了那就没问题了,如果还出这个代码,那就说明硬盘有问题了,需要更换,或者把有问题的地方单独分区,做成隐藏分区,用后面的空间来装系统。
四、0X0000007E、0X0000008E
这俩代码多是病毒造成的,杀毒即可。正常模式进不去可以开机按F8进安全模式。当然也有可能是内存造成的,可以尝试重新插拔内存,一般这代码内存损坏概率不大。
五、0X00000050
硬件故障,硬盘的可能性很大。如果每次都出这一个代码,首先换一块硬盘试一下机器能不能正常启动,如果测试硬盘没问题,再试内存,内存也试过的话,换CPU,总之这必是硬件故障。
六、coooo21a
C开头的故障,它报的错很邪乎,报未知硬件故障,不过出这类C开头的代码多半与硬件无关。基本是与系统同时启动的一些驱动!或者服务的问题,举一个例子,一次我给一个笔记本的F盘改成了E盘,结果再启动就出这类C开头的代码,最后发现插上一个U盘就能正常启动,因为插上U盘系统里就有F盘了,然后我发现了隐藏的文件,是开机的时候系统写入的。我拔掉这个U盘这问题就又出现,后来把E盘改回F问题就没有了,想来是什么和系统一起启动的软件留在F盘一些文件,没有了它就会自己建,但是连F盘都没有了,也就只能报错了,所以看到这类蓝屏可以照比。
七、每次蓝屏的代码都不一样
这样的问题,基本上是硬件造成的,尤其以内存为第一个需要怀疑的对象,更换内存尝试,第二可能性是CPU虽然这东西不爱坏,可是从06年到现在我也遇到俩了,其他硬件基本上不会造成蓝屏代码随便变的情况。
八、偶尔蓝屏,而且代码一闪而过重新启动的问题
这个是有有两种可能
1、以XP为例,在我的电脑上点击鼠标右键选择属性,找到高级选项卡,找到下面的启动和故障修复项,点击设置。再弹出的窗口里找到中间‘系统失败’处有三个选项,第三项自动重新启动,把这项的勾选取消掉,以后再出问题蓝屏就会停住了。
2、已经做过上面的设置,但是还是会一闪而过重新启动的,那就是显卡或者CPU过热造成的,打开机箱查看散热风扇和散热器的状态吧。
另外开机就蓝屏看不见代码一闪而过然后自己重新启动的情况。这个时候已经不可能在系统里进行第一步的设置了,那么就要在机器启动的时候按F8,选择启动失败后禁用重新启动这项,选择之后启动失败了,系统就会停在蓝屏代码那里了,这样大家就可以照着蓝屏代码来查看问题了。
三、AT89S52 单片机的看门狗watchdog代码及硬件注意事项
在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激活看门狗。
ORG 0000H
LJMP begin
Begin:
MOV 0A6H,#01EH;先送1E
MOV 0A6H,#0E1H;后送E1
;在程序初始化中激活看门狗。
……
……
For:
……
MOV 0A6H,#01EH;先送1E
MOV 0A6H,#0E1H;后送E1
;喂狗指令
……
LJMP For
在C语言中要增加一个声明语句。在AT89X51.h声明文件中增加一行 sfr WDTRST= 0xA6;
Main()
{
WDTRST=0x1E;
WDTRST=0xE1;//初始化看门狗。
While(1)
{
WDTRST=0x1E;
WDTRST=0xE1;//喂狗指令
}
}
其他参考代码:
AJMP MAIN;汇编
MAIN:
;启动看门狗
Mov 0A6H,#01EH;先送1E
Mov 0A6H,#0E1H;后送E1
;主程序
START:
ACALL WDT;调用复位看门狗子程序
AJMP START
;主程序
;复位看门狗子程序
WDT:
Mov 0A6H,#01EH;先送1E
Mov 0A6H,#0E1H;后送E1
RET
END
注意事项:
1. 89S52的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。
2.看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。
3. 89S52只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。还可利用定时器把看门狗的喂狗时间延长几秒至几分钟。
你不往寄存器写值,默认是没有开看门狗的,你就不用管了
AT89S52单片机看门狗C语言程序
watchdog.h:
#include<reg52.h>
sbit LED1= P1^0;
sbit LED2= P1^1;
sfr WDTRST= 0xA6;//定义AT89S52扩展寄存器
/*********************************************************/
/*函数名字:wdtclear*/
/*输入参数:无*/
/*输出参数:无*/
/*功能喂狗指令*/
/*创建日期: 2009-04-25*/
/*********************************************************/
void wdtclear(void)
{
WDTRST=0x1E;
WDTRST=0xE1;
}
/*********************************************************/
/*函数名字:delay_nms*/
/*输入参数:延时毫秒周期参数*/
/*输出参数:无*/
/*功能延时 n毫秒*/
/*创建日期: 2009-04-25*/
/*********************************************************/
void delay_nms(unsigned int n)
{
unsigned int i;
unsigned int ii;
for(i=0;i<n;i++)
{
for(ii=0;ii<1000;ii++);
wdtclear();//LED1闪烁.注释掉这条语句后,LED1常亮
}
}
watchdog.c:
#include"watchdog.h"
main()
{
unsigned int i;
WDTRST= 0x1E;//开看门狗,包含两条指令。一旦开看门狗就没有办法关闭。
WDTRST= 0xE1;
LED1= 0;
while(1)
{
LED1= 0;
delay_nms(100);//超过16毫秒不喂狗,看门狗溢出复位。
LED1= 1;
delay_nms(100);
}
}