`
kongweile
  • 浏览: 517314 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

什么是watchdog + 为何在要系统初始化的时候关闭watchdog

 
阅读更多

什么是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功能)了。

分享到:
评论

相关推荐

    ARM开发 watchdog接口

    `watchdog_test`可能是包含WatchDog接口开发测试代码的文件,可能包括初始化、定时器预加载、“喂狗”操作的函数实现,以及中断处理函数。通过阅读和理解这些代码,可以更深入地学习如何在实际项目中应用WatchDog。 ...

    嵌入式系统之WATCHDOG(看门狗)概述.doc

    在单片机中,看门狗电路通常是芯片内部的一个独立模块,可在程序初始化时被启用或禁用。例如,51系列单片机和96系列单片机分别通过向SFR的0A6H地址写入特定序列来启动或停止看门狗功能。在工业控制主板中,类似的...

    s3c2440 看门狗、中断、时钟的初始化

    在实际应用中,这些初始化过程通常会集成到一个启动代码(Bootloader)或者操作系统内核的初始化阶段。比如,Linux内核在启动时会进行相应的硬件初始化,包括S3C2440的这些部分。 至于"LED"文件,这可能是示例代码...

    Python文件监听工具pyinotify与watchdog实例

    该示例演示了如何设置一个监控路径,并检查该路径是否存在,接着通过pyinotify库初始化一个监控器。然后,程序会输出相应的监控路径信息,表明已经设置好并开始监控指定的目录。虽然这部分内容不是很完整,但它提供...

    windows下watchdog

    在BCB中,这通常涉及初始化端口和设置适当的IO控制寄存器。 2. **编写驱动程序**:根据芯片的资料,编写驱动程序来读取和写入芯片的寄存器,实现定时器的启动、暂停、重置等功能。 3. **系统集成**:将驱动程序...

    WATCHDOG驱动程序

    5. **系统复位处理**:当看门狗超时,驱动应能正确处理系统复位,确保数据一致性,并在系统重启后重新初始化。 开发watchdog驱动程序时,开发者需要考虑以下关键点: - **硬件交互**:理解并适配特定硬件的接口,如...

    watchdog 5.8 源码

    Linux Watchdog 提供了一种方式来监控系统的健康状况,如果系统在指定时间内没有执行特定的“心跳”操作(比如写入特定的设备文件),它会触发系统重启。这种机制常用于嵌入式设备、服务器和其他需要高可用性的环境...

    windows-watchdog.zip_STM32 watchdog_windows watchdog

    代码说明部分会详细讲解如何初始化WWDG,设置相关寄存器,并在主循环中适时喂狗。通常,这涉及到配置RCC(Reset and Clock Control)寄存器以启用WWDG时钟,然后设置WWDG_CFR(Control and Status Register)寄存器...

    wdt.zip_ 430 watchdog_msp 430_msp 430 watchdog

    在"2_WDT"这个文件中,可能包含了针对MSP 430 Watchdog Timer的详细文档,涵盖了初始化设置、配置寄存器、喂狗操作、中断处理等方面的内容。例如,用户可能需要了解WDT_A控制寄存器(WDTCTL),它包含了配置Watchdog...

    STM32例程_Watchdog.7z

    "STM32例程_Watchdog"压缩包中的示例代码可能包括了如何初始化Watchdog、如何在程序中适当地喂狗以及在不同情况下处理Watchdog复位的示例。通过研究这些例程,开发者可以了解如何在实际项目中安全地使用Watchdog功能...

    Watchdog, 在主线程上,类用于记录过度阻塞.zip

    2. 初始化 Watchdog:创建 `Watchdog` 对象,并设置合适的阈值(时间间隔)。 3. 启动监控:调用 `start()` 方法启动对主线程的监控。 4. 处理阻塞事件:设置回调函数或监听器,以便在主线程阻塞时接收到通知,并...

    80s52 watchdog sofeware 程序

    - 必须在程序初始化时激活看门狗,这通常在上电复位后立即进行,确保CPU正常工作。 - 看门狗定时器依赖于微控制器的晶振。如果晶振停止工作,看门狗也将失效。 - 80s52的看门狗定时器具有14位计数器,这意味着在...

    watchdog_watchdogimx6_

    1. **初始化设置**:在程序启动时,需要对看门狗进行初始化,包括设置超时时间、选择工作模式等。 2. **喂狗操作**:在关键代码段前后,通过调用API对看门狗进行刷新,确保在设定时间内系统能够响应看门狗。 3. **...

    AUTOSAR_SWS_WatchdogManager.pdf

    此外,还明确了启动行为,包括初始化期间设置模式失败的情况,以及修正和添加了错误代码和其他编辑问题。 在R19-11版本中,Watchdog Manager增强了对超时检测的支持,更正和澄清了监督算法及其配置。在早期版本中,...

    arm资料-优龙-watchdog

    代码可能包含函数,如`init_watchdog()`来初始化WDT,`feed_watchdog()`来喂狗,以及`disable_watchdog()`在必要时禁用WDT。 2. **编译指令**:编译过程可能需要特定的交叉编译工具链,例如针对ARM架构的GCC编译器...

    ARM2410下详细的watchdog实例

    6. **实例中的源程序和工程文件**:在提供的fft2410-WatchDog压缩包中,可能包含了C或汇编语言的源代码,这些代码展示了如何初始化Watchdog,以及如何在程序运行过程中进行喂狗操作。工程文件可能包含了编译脚本、...

    ColdFire_Watchdog_Timer.rar_COLDFIRE

    它通常包含初始化Watchdog Timer的函数、设置计时周期的函数以及在程序中必要的喂狗(reset the watchdog)操作。例如,`init_watchdog()`函数可能用于配置Watchdog Timer的工作模式和超时值,`feed_watchdog()`函数...

    Watchdog应用

    1. **初始化控制寄存器**:通过设置`wtcon`寄存器来使能看门狗,并设定分频系数为128。分频系数决定了计数器的计数速率。 ```c wtcon |= S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128; ``` 2. **设定数据...

    intel_scu_watchdog.zip_intel 看门狗_intel_scu_ipc_dev

    `intel_scu_watchdog.c`文件是驱动的主体部分,它包含了初始化、启动、停止和处理看门狗定时器的函数。驱动程序通常会实现以下功能: 1. **探测(Probing)**:在系统启动时,驱动会查找和识别Intel SCU IPC(Inter-...

    watchdog驱动

    1. **初始化看门狗**:在系统启动阶段,需要对看门狗进行初始化,设置超时时间、中断处理等参数。这通常涉及读写特定的寄存器来配置看门dog的工作模式。 2. **喂狗**:在程序正常运行时,需要定期“喂狗”即重置...

Global site tag (gtag.js) - Google Analytics