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

4 篇文章 0 订阅

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

在ECU(Electronic Control Unit)的初始化过程中,EcuMDriverInitListOne函数负责初始化各个模块。其中先初始化port、wdg、Mcu、Gpt、WdgM等几个模块的原因如下: 1. Port模块:Port模块负责处理ECU与外部设备之间的IO口操作,包括输入输出的配置和控制。在初始化过程中,先初始化Port模块可以确保IO口的正确配置,保证后续模块对IO口的访问正常。 2. Wdg模块:Wdg(Watchdog)模块是用于系统的看门狗功能,它能够监控系统的运行状态,当系统出现异常或死锁时进行重启或其他处理。在初始化过程中,先初始化Wdg模块可以确保系统在正常运行前就开启了看门狗功能,提高系统的可靠性。 3. Mcu模块:Mcu(Microcontroller Unit)模块是处理器内部的控制单元,负责对处理器进行初始化和配置。在初始化过程中,先初始化Mcu模块可以确保处理器正常工作,为其他模块提供良好的硬件环境。 4. Gpt模块:Gpt(General Purpose Timer)模块是用于定时和计时功能的模块,可以用于实现各种定时任务和计时操作。在初始化过程中,先初始化Gpt模块可以确保后续模块对定时功能的使用正常。 5. WdgM模块:WdgM(Watchdog Manager)模块是用于管理多个看门狗的模块,可以对多个看门狗进行配置和监控。在初始化过程中,先初始化WdgM模块可以确保对多个看门狗的管理正常进行。 综上所述,先初始化port、wdg、Mcu、Gpt、WdgM等几个模块可以确保硬件环境的正确配置、系统的可靠性和定时功能的正常使用,为后续模块的初始化和运行提供良好的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值