什么是watchdog + 为何在要系统初始化的时候关闭watchdog
关于Uboot初始化阶段,在start.S中,为何要去关闭watchdog,下面解释具体的原因:
1.什么是watchdog
嵌入式系统之WATCHDOG(看门狗)概述
http://wenku.baidu.com/view/e5cd52ff04a1b0717fd5dd27.html
简要摘录如下:
watchdog一般是一个硬件模块,其作用是,在嵌入式操作系统中,很多应用情况是系统长期运行且无人看守,所以难免或者怕万一出现系统死机,那就杯具了,这时,watchdog就会自动帮你重启系统。
那么其是如何实现此功能的呢?那么就要简单解释一下其实现原理了。
watchdog硬件的逻辑就是,其硬件上有个记录超时功能,然后要求用户需要每隔一段时间(此时间可以根据自己需求而配置)去对其进行一定操作,比如往里面写一些固定的值,俗称“喂狗”,那么我发现超时了,即过了这么长时间你还不给偶喂食,那么偶就认为你系统是死机了,出问题了,偶就帮你重启系统。说白了就是弄个看家狗dog,你要定期给其喂食,如果超时不喂食,那么狗就认为你,他的主人,你的系统,死机了,就帮你reset重启系统。
2.为何在要系统初始化的时候关闭watchdog
了解了watchdog的原理后,此问题就很容易理解了。
如果不禁用watchdog,那么就要单独写程序去定期“喂狗”,那多麻烦,多无聊啊。
毕竟咱此处只是去用uboot初始化必要的硬件资源和系统资源而已,完全用不到这个watchdog的机制。需要用到,那也是你linux内核跑起来了,是你系统关心的事情,和我uboot没啥关系的,所以肯定此处要去关闭watchdog(的reset功能)了。
分享到:
相关推荐
`watchdog_test`可能是包含WatchDog接口开发测试代码的文件,可能包括初始化、定时器预加载、“喂狗”操作的函数实现,以及中断处理函数。通过阅读和理解这些代码,可以更深入地学习如何在实际项目中应用WatchDog。 ...
在单片机中,看门狗电路通常是芯片内部的一个独立模块,可在程序初始化时被启用或禁用。例如,51系列单片机和96系列单片机分别通过向SFR的0A6H地址写入特定序列来启动或停止看门狗功能。在工业控制主板中,类似的...
在实际应用中,这些初始化过程通常会集成到一个启动代码(Bootloader)或者操作系统内核的初始化阶段。比如,Linux内核在启动时会进行相应的硬件初始化,包括S3C2440的这些部分。 至于"LED"文件,这可能是示例代码...
该示例演示了如何设置一个监控路径,并检查该路径是否存在,接着通过pyinotify库初始化一个监控器。然后,程序会输出相应的监控路径信息,表明已经设置好并开始监控指定的目录。虽然这部分内容不是很完整,但它提供...
在BCB中,这通常涉及初始化端口和设置适当的IO控制寄存器。 2. **编写驱动程序**:根据芯片的资料,编写驱动程序来读取和写入芯片的寄存器,实现定时器的启动、暂停、重置等功能。 3. **系统集成**:将驱动程序...
5. **系统复位处理**:当看门狗超时,驱动应能正确处理系统复位,确保数据一致性,并在系统重启后重新初始化。 开发watchdog驱动程序时,开发者需要考虑以下关键点: - **硬件交互**:理解并适配特定硬件的接口,如...
Linux Watchdog 提供了一种方式来监控系统的健康状况,如果系统在指定时间内没有执行特定的“心跳”操作(比如写入特定的设备文件),它会触发系统重启。这种机制常用于嵌入式设备、服务器和其他需要高可用性的环境...
代码说明部分会详细讲解如何初始化WWDG,设置相关寄存器,并在主循环中适时喂狗。通常,这涉及到配置RCC(Reset and Clock Control)寄存器以启用WWDG时钟,然后设置WWDG_CFR(Control and Status Register)寄存器...
在"2_WDT"这个文件中,可能包含了针对MSP 430 Watchdog Timer的详细文档,涵盖了初始化设置、配置寄存器、喂狗操作、中断处理等方面的内容。例如,用户可能需要了解WDT_A控制寄存器(WDTCTL),它包含了配置Watchdog...
"STM32例程_Watchdog"压缩包中的示例代码可能包括了如何初始化Watchdog、如何在程序中适当地喂狗以及在不同情况下处理Watchdog复位的示例。通过研究这些例程,开发者可以了解如何在实际项目中安全地使用Watchdog功能...
2. 初始化 Watchdog:创建 `Watchdog` 对象,并设置合适的阈值(时间间隔)。 3. 启动监控:调用 `start()` 方法启动对主线程的监控。 4. 处理阻塞事件:设置回调函数或监听器,以便在主线程阻塞时接收到通知,并...
- 必须在程序初始化时激活看门狗,这通常在上电复位后立即进行,确保CPU正常工作。 - 看门狗定时器依赖于微控制器的晶振。如果晶振停止工作,看门狗也将失效。 - 80s52的看门狗定时器具有14位计数器,这意味着在...
1. **初始化设置**:在程序启动时,需要对看门狗进行初始化,包括设置超时时间、选择工作模式等。 2. **喂狗操作**:在关键代码段前后,通过调用API对看门狗进行刷新,确保在设定时间内系统能够响应看门狗。 3. **...
此外,还明确了启动行为,包括初始化期间设置模式失败的情况,以及修正和添加了错误代码和其他编辑问题。 在R19-11版本中,Watchdog Manager增强了对超时检测的支持,更正和澄清了监督算法及其配置。在早期版本中,...
代码可能包含函数,如`init_watchdog()`来初始化WDT,`feed_watchdog()`来喂狗,以及`disable_watchdog()`在必要时禁用WDT。 2. **编译指令**:编译过程可能需要特定的交叉编译工具链,例如针对ARM架构的GCC编译器...
6. **实例中的源程序和工程文件**:在提供的fft2410-WatchDog压缩包中,可能包含了C或汇编语言的源代码,这些代码展示了如何初始化Watchdog,以及如何在程序运行过程中进行喂狗操作。工程文件可能包含了编译脚本、...
它通常包含初始化Watchdog Timer的函数、设置计时周期的函数以及在程序中必要的喂狗(reset the watchdog)操作。例如,`init_watchdog()`函数可能用于配置Watchdog Timer的工作模式和超时值,`feed_watchdog()`函数...
1. **初始化控制寄存器**:通过设置`wtcon`寄存器来使能看门狗,并设定分频系数为128。分频系数决定了计数器的计数速率。 ```c wtcon |= S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128; ``` 2. **设定数据...
`intel_scu_watchdog.c`文件是驱动的主体部分,它包含了初始化、启动、停止和处理看门狗定时器的函数。驱动程序通常会实现以下功能: 1. **探测(Probing)**:在系统启动时,驱动会查找和识别Intel SCU IPC(Inter-...
1. **初始化看门狗**:在系统启动阶段,需要对看门狗进行初始化,设置超时时间、中断处理等参数。这通常涉及读写特定的寄存器来配置看门dog的工作模式。 2. **喂狗**:在程序正常运行时,需要定期“喂狗”即重置...