`
kongweile
  • 浏览: 507078 次
  • 性别: 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功能)了。

分享到:
评论

相关推荐

    Uboot中start.S源码的指令级的详尽解析

    什么是watchdog + 为何在要系统初始化的时候关闭watchdog 为何ARM7中PC=PC+8 AMR寄存器的别名 + APCS 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈 关于为何不直接用mov指令,而非要用adr伪指令 mov...

    Uboot中start.S源码的指令级的详尽解析 v1.6

    4.3. 什么是watchdog + 为何在要系统初始化的时候关闭watchdog 70 4.3.1. 什么是watchdog 71 4.3.2. 为何在要系统初始化的时候关闭watchdog 71 4.4. 为何ARM7中PC=PC+8 71 4.4.1. 为何ARM9和ARM7一样,也是PC=PC+8 ...

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

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

    Linux混杂设备驱动(watchdog)

    内核抽象出这些特性而形成一些API(在文件drivers/char/misc.c中实现),以简化这些设备驱动程序的初始化。所有的misc设备被分配同一个主设备号MISC_MAJOR(10),但是每一个可以选择一个单独的次设备号。

    浅谈Android ANR在线监控原理

    Android的Watchdog是在SystemServer中进行初始化的,所以Watchdog是运行在SystemServer进程中 Watchdog是运行一个单独的线程中的,每次wait 30s之后就会发起一个监测行为,如果系统休眠了,那Watchdog的wait行为也...

    STM32F103的独立看门狗程序

    这是STM32F103基于HAL库写的一个独立看门狗测试程序,供大家参考测试

    Python库和Shell实用程序可监视文件系统事件。-Python开发

    示例API用法一个简单的程序,它使用看门狗来监视指定为命令行参数的目录并记录生成的事件:import sys导入时间从watchdog.observers导入日志记录从watchdog.events导入Observer如果__name__ ==“ __main__”则导入...

    finit:Linux系统的快速初始化。 包括饼干

    finit:Linux系统的快速初始化。 包括饼干

    DCS硬件知识

    DT是英语Watchdog Timer的缩写字母。...此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序

    ARM嵌入式C编程标准教程4

    2.4 ARM C语言程序的基本规则和系统初始化程序  2.5 习题与练习  第3章 ARM9芯片S3C2410的片上资源  3.1 S3C2410处理器介绍  3.2 S3C2410处理器片上资源的定义和使用  3.3 编程参考软件包2410TEST  3.4...

    UNIX 高级教程系统技术内幕

    15.4.1 内存对象初始化 15.4.2 内核与pager 间的接口 15.4.3 内核与pager 交互 15.5 外部pager 和内部pager 15.5.1 一个网络共享内存服务器 15.6 页面替换 15.7 分析 15.8 4.4BSD 的内存管理 15.9 快表(TLB)一致性 ...

    嵌入式系统/ARM技术中的AVR看门狗使用范例 avr wdt看门狗详解

    AVR看门狗 一个硬件单元,当程序由于某种原因跑“飞”了,它就Reset程序。就像小狗看门一样。  //Watchdog ... 上面是用ICC的App Builder生成的看门狗初始化程序,这些语句达不到初始化看门狗的目的,需要在

    针式打印机汇编程序

    2002.4.1修改,在14F0H中初始化15H位为0 ;SPAC16C为A型机内码输入,加入全部汉字命令 ;完成时间2002年7月18日, 版本号为A2.10 ;加Watchdog, 降低功耗,完成时间2002年11月27日,版本号为T3.00 ;1b 40H指令后丢数,...

    hotplug:OpenWRT 的热插拔工具

    Procd是OpenWRT下新的预初始化,初始化,热插拔和事件系统。在openwrt 中, procd 作为 init 进程会处理许多事情, 其中就包括 hotplug。procd本身并不知道如何处理hotplug事件,也没有必要知道,因为它只实现机制,而...

    uboott移植实验手册及技术文档

    在文件的最后加入Nand Flash的初始化函数,该函数在后面Nand Flash的操作都要用到。 u-boot运行到第2阶段会进入start_armboot()函数。其中nand_init()函数是对nand flash的最 初初始化函数。nand_init()函数在两个...

    手机解锁秘诀-再也不用上营业厅了

     *#3377*#读取SIM卡信息,初始化和标示 4 B! k. f" C3 f/ u+ V' p3 f& F  *#7693*#开启或关闭睡眠模式 3 z5 W: t! f. y! E* Q6 W2 B$ M, z  *#8463*#读取睡眠模式信息 ! C3 h, }5 r$ e+ }  *#337*# EFR模式开/关...

    自动循迹小车原理图

    //系统时钟初始化,aclk=32768k,mclk=XT2,SMCLK = XT2。 //****************************************************************************** void Init_clock(void) { DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO...

    基于CPLD技术的看门狗电路设计

    对此,常见的解决方法是在电路设计时放置一片硬件看门狗(Watchdog)电路,其目的是在系统"走死"后能强制系统复位并返回初始化程序。随着CPLD器件被广泛应用于各种仪器、仪表设备的设计中,而且CPLD几乎可模拟任何一...

    EDA/PLD中的基于CPLD技术的看门狗电路设计

    对此,常见的解决方法是在电路设计时放置一片硬件看门狗(Watchdog)电路,其目的是在系统"走死"后能强制系统复位并返回初始化程序。随着CPLD器件被广泛应用于各种仪器、仪表设备的设计中,而且CPLD几乎可模拟任何一...

    史上最强的嵌入式底层驱动开发课程 Linux系统开发+Linux高级程序+主板开发+ARM等

    ├操作系统基础> │ ├01 - 说在前面的话1.mp4 │ ├02 - 说在前面的话2.mp4 │ ├03 - 说在前面的话3.mp4 │ ├04 - 说在前面的话4.mp4 │ ├05 - 计算机组成原理概述1 .mp4 │ ├06 - 计算机组成原理概述2 .mp4 │...

Global site tag (gtag.js) - Google Analytics