社区
嵌入开发(WinCE)
帖子详情
wince看门狗的问题
刘洪峰AIoT
领域专家: 嵌入式与硬件开发技术领域
业界专家认证
2007-11-26 05:11:13
wince启动后,怎样判断这次启动是看门狗重启,还是正常启动?
...全文
386
14
打赏
收藏
wince看门狗的问题
wince启动后,怎样判断这次启动是看门狗重启,还是正常启动?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leftyu2010
2011-09-13
打赏
举报
回复
帮顶!!
zclever
2008-08-06
打赏
举报
回复
[Quote=引用 12 楼 z820212zg 的回复:]
如果你用的是S3C2410CPU的话,可以查看GSTATUS2寄存器,这个里面的位标志着上电启动、从POWER-OFF模式恢复、以及是否是看门狗启动。
当然如果你是在应用程序里,记得要用虚拟地址访问这个寄存器。
[/Quote]
请教,应该怎么读这个寄存器啊?板子重启了都,应该怎么在它重启后读?是下次上电吗?
z820212zg
2007-12-20
打赏
举报
回复
如果你用的是S3C2410CPU的话,可以查看GSTATUS2寄存器,这个里面的位标志着上电启动、从POWER-OFF模式恢复、以及是否是看门狗启动。
当然如果你是在应用程序里,记得要用虚拟地址访问这个寄存器。
xingxing_ruby
2007-12-19
打赏
举报
回复
哈哈!啥看门狗启动呀!前几天总监还要我看一下如何开机自动安装软件哪。看门狗指的是执行这个程序吗?哈哈,太搞笑了!
刘洪峰AIoT
2007-11-28
打赏
举报
回复
wince系统和windows系统不一样,关机时一般都是直接关闭电源。重启时直接上电即可。看门狗重启有些类似系统的软启动,即不掉电重启。
//看门狗初始化
#if (Use_Watchdog)
if (IsWinCEFlag) CHMIIO.OpenWatchdog(WatchdogTime);
#endif
while (ComServiceFlag)
{
if (ReadDataFlag)
{
ReadData();
}
Thread.Sleep(20);
//清看门狗
#if (Use_Watchdog)
if (IsWinCEFlag) CHMIIO.ResetWatchdog();
#endif
}
//看门狗关闭
#if (Use_Watchdog)
if (IsWinCEFlag) CHMIIO.CloseWatchdog();
#endif
}
注意:如果ReadData长时间没有返回,此时程序在规定时间内无法清看门狗,导致看门狗超时,这时候系统就会重启,该重启过程应用程序不可知,也不可控,提供这个接口的驱动程序仅仅提供看门狗操作的几个接口,也无法知道看门狗何时何地重启的。
我只想问在wince下有经验使用看门狗的,是如何区分当前系统是看门狗启动的,还是正常上电启动的。
91program
2007-11-28
打赏
举报
回复
狗啊,楼上你不喂它,就会咬人的那一种
wxf0204
2007-11-27
打赏
举报
回复
写配置文件,确定一个标志位,但是注意干扰问题保证能喂狗。。
dthxman
2007-11-27
打赏
举报
回复
恩,就是楼上说的,如果那个看门狗是自己写的,直接写个配置文件,要重启的时候在文件中写个标志,每次重启读一次文件,然后再把文件中的标志去掉,,,
dfpgb
2007-11-27
打赏
举报
回复
晕.... 一头雾水... 什么是狗?
lbing7
2007-11-27
打赏
举报
回复
嗯,看门狗启动是热启动不会重置内存
如果不放心那啥的,可以写一个文件,保存到不丢失空间里也成
就是启动后进行读写花点时间...
KevinCEC
2007-11-27
打赏
举报
回复
感觉逻辑上有问题啊。你看门狗是通过什么方式喂狗的啊? 不是你的wince程序吗? 如果是的话就好办了,对不对?
不是的话,也就是说这个看门狗不是你用的。既然你程序都没有死,理论上来说这个看门狗就不应该重启啊。它为什么要把你的程序复位了?
还有一种方法,开启你程序的时候,写一个标记到文件,然后正常关机的话,把这个标记清除掉。 每次启动的时候判断一下就行了。
dthxman
2007-11-27
打赏
举报
回复
你的意思是你的板子上的看门狗是硬件实现的??就是开机后不管怎么样,都会到了时间重启??那能在bios中关了吗
刘洪峰AIoT
2007-11-27
打赏
举报
回复
问题是计数到0的时候,是系统自己(或CPU,这是硬看门狗)重启的,也就是说,我不知道系统什么时候重启的,我也不知道在那个地方添加写标志的代码。
系统是wince4.2 cpu 三星2410 看门狗重启是CPU上的一个管脚触动的。
91program
2007-11-26
打赏
举报
回复
自己设置标志位,启动的时候进行判断
看门狗
在多线程程序中的使用
本文探讨了在
WinCE
平台上的多线程程序中实现
看门狗
功能时遇到的
问题
,包括如何有效监测程序阻塞及线程调度等关键议题。
关于三星6410SLC版本的
wince
6.0
看门狗
不起作用的解决方案
本文介绍了解决三星6410SLC版本的
WINCE
6.0 BSP包中
看门狗
不起作用的
问题
。表现为无法写入WTCON寄存器,WTCNT默认值为0x8000。
问题
根源在于init.c文件的InitializeCLKGating函数,通过调整PCLK_GATE关于WatchDogTimer的设置即可解决。
WINCE
实现重新启动的几种方法
本文讨论了在
WinCE
环境下开发系统时遇到的死机
问题
,并详细介绍了两种常用的解决方法:使用SetSystemPowerState API进行系统重启和通过
看门狗
定时器实现定时重启。文章还特别指出在
WinCE
6.0中,应用程序调用KernelIoControl存在限制,并提供了一种利用HAL Reboot实现热重启的方法。
wince
下访问io端口的经验
博主在艾讯sbc84500主板定制的
Wince
系统中,尝试控制数字IO口和
看门狗
功能。先通过在VC中嵌入汇编语言控制IO口成功,试验
看门狗
功能时程序运行无效,后用DOS命令调试正常。又参考论坛方法用MmMapIoSpace映射地址,解决库文件
问题
后程序运行成功。
WINCE
实现重新启动的几种方法_人生几何_新浪博客
本文讨论了在
WinCE
环境下开发系统时遇到的死机
问题
,提出了使用SetSystemPowerState、
看门狗
和KernelIoControl等方法进行定时重启的解决方案,并详细介绍了每种方法的实现过程和适用场景。
嵌入开发(WinCE)
19,523
社区成员
41,565
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章