转自:http://bbs.chinaunix.net/thread-2304244-1-1.html
什么是watchdog + 为何在要系统初始化的时候关闭watchdog
关于Uboot初始化阶段,在start.S中,为何要去关闭watchdog,下面解释具体的原因:
嵌入式系统之WATCHDOG(看门狗)概述
http://wenku.baidu.com/view/e5cd52ff04a1b0717fd5dd27.html
简要摘录如下:
watchdog一般是一个硬件模块,其作用是,在嵌入式操作系统中,很多应用情况是系统长期运行且无人看守,所以难免或者怕万一出现系统死机,那就杯具了,这时,watchdog就会自动帮你重启系统。
那么其是如何实现此功能的呢?那么就要简单解释一下其实现原理了。
watchdog硬件的逻辑就是,其硬件上有个记录超时功能,然后要求用户需要每隔一段时间(此时间可以根据自己需求而配置)去对其进行一定操作,比如往里面写一些固定的值,俗称“喂狗”,那么我发现超时了,即过了这么长时间你还不给偶喂食,那么偶就认为你系统是死机了,出问题了,偶就帮你重启系统。说白了就是弄个看家狗dog,你要定期给其喂食,如果超时不喂食,那么狗就认为你,他的主人,你的系统,死机了,就帮你reset重启系统。
2. 为何在要系统初始化的时候关闭watchdog
了解了watchdog的原理后,此问题就很容易理解了。
如果不禁用watchdog,那么就要单独写程序去定期“喂狗”,那多麻烦,多无聊啊。
毕竟咱此处只是去用uboot初始化必要的硬件资源和系统资源而已,完全用不到这个watchdog的机制。需要用到,那也是你linux内核跑起来了,是你系统关心的事情,和我uboot没啥关系的,所以肯定此处要去关闭watchdog(的reset功能)了。