免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9521 | 回复: 8
打印 上一主题 下一主题

[BootLoader] 什么时候需要关“闭看门狗” [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-30 10:54 |只看该作者 |倒序浏览
主要是想问“为什么裸机程序常常不关闭看门狗?”

具体问题如下:
一些裸机程序(ARM 汇编写的) 一开始就是设置 GPxCON GPxDAT控制LED,不关闭看门狗。
可是用到C语言的时候,写了一段汇编程序,完成设置堆栈,跳转到C语言入口,关闭看门狗。
对于设置堆栈,跳转到C语言入口,可以理解,但是为什么在原来“裸机程序”里面没有关闭看门狗,可是到了
有C语言的程序,怎么就要关闭看门狗了。

看了很多书都说 不关闭看门狗,会一直重启,查了资料,cpu复位后“看门狗”复位是有效的,所以要关闭。那为什么
裸机程序为什么关闭看门狗?

我在三个论坛发了贴都没人回答,CU的大哥大姐救救我把

论坛徽章:
0
2 [报告]
发表于 2012-03-30 19:25 |只看该作者
一般到汇编启动代码,马上就关了看门狗。

论坛徽章:
0
3 [报告]
发表于 2012-03-30 20:13 |只看该作者
那是肯定的   如果不关闭看门狗   就会复位   如果不关闭看门狗   必须隔段时间喂狗     不是芯片就会复位

论坛徽章:
0
4 [报告]
发表于 2012-03-30 20:31 |只看该作者
我想知道:为什么裸机程序(只有汇编,没有c程序)不关闭看门狗?

论坛徽章:
0
5 [报告]
发表于 2012-03-31 08:36 |只看该作者
我的理解,汇编阶段执行的时间比较短,还不至于看门狗溢出
不知道这样对不对

论坛徽章:
0
6 [报告]
发表于 2012-03-31 21:25 |只看该作者
上面的兄弟说得对, 其实watchdog (timer) Reset 后到底是如何工作的,跟芯片设计有关, 有些芯片默认reset 后watchdong是打开的,有些是 watchdog 是关闭的。 如果默认watchdog 是打开的,那么watdog timer 应该有个寄存器保存了一个默认值,每个watchdog timer tick/clock 会减1, 当这个值为0时,watchdog 就会送出watchdog reset ,在开始时由于PLL 还没有配置,都是跑的默认值, 时钟频率较低,所以watchdog timer 的CLK 可能会比较低,watchdog timer 不会很快count 到0。 C语言里面关闭即可。

其实一开始关闭也可以。 不要被别人束缚思想

论坛徽章:
0
7 [报告]
发表于 2012-03-31 21:26 |只看该作者
任何问题可以加我QQ 752070534

论坛徽章:
0
8 [报告]
发表于 2012-04-01 19:06 |只看该作者
回复 7# moniskiller

非常感谢您,但还有些疑惑,加你qq咯


   

论坛徽章:
0
9 [报告]
发表于 2012-04-01 19:22 |只看该作者
回复 8# 暴风lay

再次感谢你,我找到原因了,其实只有汇编的逻辑程序不关闭看门狗也会重启的,只是我写的流水灯程序在看门狗重启的时候刚好是点亮第一个小灯的时候,错觉误以为是没有重启。
我改变程序的延时程序,猜想得到验证。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP