其他分享
首页 > 其他分享> > 浅析嵌入式系统之uboot详解(3)—看门狗

浅析嵌入式系统之uboot详解(3)—看门狗

作者:互联网

uboot详解—看门狗

1. 前言

  uboot启动时,当将cpu运行模式设置为管理模式后,就要关闭看门狗了,那么看门狗是干什么的呢?

  狗狗是我们的好朋友,有时候,一条好狗狗能够救主人的性命,”看门狗“是cpu的“好朋友”,它也能够在cpu出状况的时候把它救活。

  看门狗其实就是一个可以在一定时间内被复位的计数器,当看门狗启动后,计数器开始自动计数,经过一定时间,cpu就会将这个计数器复位,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启,这个复位的操作就是“喂狗”。

  看门狗就这样兢兢业业的守着它的主人cpu,当cpu出状况的时候,就不能喂狗了,看门狗饿了就知道cpu不正常工作了,然后发送复位信号让cpu重新醒过来。

  对于一些安装在户外的设备,可以很直接的体现它的价值,比如运营商在荒郊野岭安装了好多基站,如果这里的基站停止工作了,就需要派人去这个基站手动重启了,有了看门狗以后,只要过一段时间没有喂狗,看门狗就将系统重启,节省了不少人力。

2. 看门狗的种类

看门狗主要分三种:

第二种和第三种看门狗,在这里不作讨论,下面将讨论怎么使用内置在cpu内部的看门狗。

因为是内置在cpu内部,所以从电路图中就找不到看门狗的连接方式了,下面是看门狗的工作原理图:
在这里插入图片描述
从图中可以看出一下几点:

  1. 看门狗使用的输入时钟是PCLK,关于时钟的知识将在后面进行详细分析

  2. 看门狗的配置涉及到三个寄存器:控制寄存器(WTCON),数据寄存器(WTDAT),计数寄存器(WTCNT)

  3. 看门狗先将PCLK时钟进行预分频 (prescaler),分频的精度为0~255 (2的8次方-1 ,由WTCON的8-15位进行设置),预分频后再除以一个分频因子(division factor,由WTCON的4:3两位进行设置,一共有4中选择——16,32,64,128),有PCLK、prescaler和division factor三个变量以后,就可以计算出看门狗计数器递减时间间隔:
    在这里插入图片描述
    t_watchdog:看门狗计数器递减时间间隔,单位秒

    PCLK:APB总线工作始终,单位HZ

    prescaler value + 1:预分频大小,因为从0开始,所以需要加一

    division_factor:分频因子,有4个档——16,32,64,128

当开发板一上电的时候,系统时钟是还没有初始化的,所以PCKL的时钟大小是和外部时钟一样的,cpu连接的外部晶振如下图:
在这里插入图片描述
所以刚上电时,PCKL的大小12MHz,WTCON[15:8]设置为74,除数因子选择16,通过上面公式可以计算出,看门狗控制器递减时间间隔0.1毫秒。将WTCNT里的值设置为0x2710(十进制10000),那么看门狗会每过一秒钟产生一次超时。

我们来看看控制寄存器(WTCON),数据寄存器(WTDAT),计数寄存器(WTCNT)芯片手册:
在这里插入图片描述
从上图可以看到WTCON的默认状态:

因为刚开机的时候,PCLK=12M, prescaler=128, division_factor=16 , 所以可以计算出 t_watchdog=1/(12M/129/16)=(129*16)/(12000000)=0.000172s=0.172ms

在这里插入图片描述
上图是WTDAT寄存器的芯片手册,默认值是0x800, 十进制是2048
在这里插入图片描述
上图是计数器寄存器的芯片手册,默认值也是0x800,十进制是2048
所以刚上电的时候,看门狗的超时时间是:time_out=2048*0.000172=0.352252s
0.352252s是如此的短暂,所以在开机的时候如果没有关闭看门狗,它将每隔0.352252s就发送一次reset信号重启cpu,不管uboot运行到哪个阶段,都将被看门狗终止并重启。

从上面可以得出结论,板子重启时,必须尽早关闭看门狗,以便后面的代码顺利执行。

看门狗关闭以后,需要在什么时候开启呢?我们将会在后面分析uboot和内核代码的时候进行分析。

3. 总结

  这篇文章讲了看门狗的一些内容,包括看门狗的作用,看门狗的分类,看门狗的工作原理和在arm处理器中看门狗的 配置手册,并根据手册计算了看门狗的计时间隔和计时周期,后面我们将继续根据uboot启动流程讲解中断相关的知识。
在这里插入图片描述

标签:分频,uboot,16,复位,浅析,寄存器,看门狗,cpu
来源: https://blog.csdn.net/IT_xiao_bai0516/article/details/121515546