Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474954
  • 博文数量: 223
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2145
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-01 10:23
个人简介

该坚持的时候坚持,该妥协的时候妥协,该放弃的时候放弃

文章分类

全部博文(223)

文章存档

2017年(56)

2016年(118)

2015年(3)

2014年(46)

我的朋友

分类: 嵌入式

2016-09-25 14:37:56

1. 看门狗-作用
在嵌入式领域,有些系统需要长期运行在无人看守的环境。在运行过程中,难免不出现系统死机的情况,这时就需要系统自身带有一种自动重启的功能。 watchdog一般是一个硬件模块,其作用就是在系统死机时,帮助系统实现自动重启。

2. 看门狗-工作方式
Watchdog在硬件上实现了计时功能,启动计时后,用户(软件)必须在计时结束前重新开始计时,俗称“喂狗”,如果到超时的时候还没有重新开始计时,那么它就认为系统是死机了,就自动重启系统。

3. 门狗-原理图
在s3c2440芯片手册中有:

PCLK先通过一个预分频,把一个频率分成很多个频率。用累加器设置用户需要的频率,然后用用一个减法计数器。
一路可以用中断打断,一路如果计数完就发送reste信号。

如果关闭看门狗呢。

在地址0x53000000有一个WTCON寄存器,这个寄存器中可以设置看门狗

4.代码编写

  1. reset:
  2.     bl set_svc
  3.     bl disable_watchdog

  4. #define pWTCON 0x53000000            先定义一个宏,pWTCON代表了寄存器的地址
  5. disable_watchdog:
  6.     ldr r0, =pWTCON                   伪指令将pWTCON中的内容取出来
  7.     mov r1, #0x0                        设置r1为0x00
  8.     str r1, [r0]                        将r1,存储到r0所包含的地址中去

阅读(695) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~