1. 首先晓得看门狗的基本知识

  看门狗是带复位功能的定时器,用于在系统跑飞时复位系统。

  接下来按照上次的知识对看门狗进行推导

  看门狗的关键词是 定时器 复位

  定时器 关键是 时间段 中断

  时间段 关键的是 时钟周期 计数值

  时间周期 关键是 时钟源 分频

  

  至此,我们就晓得处理看门狗定时器的基本思路,

  即设置 时钟源 和 分频 和 计数值 完成 基本初始化,

  这里,只是用中断功能,所以还需要设置使用中断,禁止复位。

2. 有了基本思路,下面来看数据手册(由于看门狗是SoC内部的,原理图上没有)

  找到最关键的图

  可以看出符合上面猜想的思路,

  即 时钟源 为 PCLK, 分频 两次, 得到时钟周期

  WTDAT 设置 计数值

  WTCON[2] ,WTCON[0],设置是否产生 中断 或 复位

3. 既然思路清晰了,下面开始编程

#define        WTCON        (0xE2700000)
#define        WTDAT        (0xE2700004)
#define        WTCNT        (0xE2700008)
#define     WTCLRINT    (0xE270000C)

#define     rWTCON        (*(volatile unsigned int *)WTCON)
#define     rWTDAT        (*(volatile unsigned int *)WTDAT)
#define     rWTCNT        (*(volatile unsigned int *)WTCNT)
#define     rWTCLRINT    (*(volatile unsigned int *)WTCLRINT)

#include "stdio.h"

void intc_clearvectaddr(void);

void wdt_init()
{
    // 设置时钟周期
    rWTCON &= ~(() | ( << ));
    rWTCON |= ( << ) | ( << );

    // 设置计数值
    rWTDAT = ;
    rWTCNT = ;

    // 关闭复位,开启中断
    rWTCON |=  << ;
    rWTCON &= ~( << );

    // 开启看门狗
    rWTCON |=  << ;
}

;

void isr_wdt()
{
    printf("----isr_wdt %d----\n", i++);
    rWTCLRINT = ;
    intc_clearvectaddr();
}

裸机——wdt的更多相关文章

  1. 基于KEIL4开发ARM9(S3C2440)的裸机程序

    本文主要介绍如何使用Keil4开发ARM9(S3C2440)裸机程序. 说明: 一.平台: 操作系统:Windows XP系统 KEIL版本:4.73 开发板:ARM9(S3C2440) 二.建立工程 ...

  2. tiny4412学习一:编译uboot,体验裸机

    首先,我们在ubuntu建立一个自己的文件夹,我的是:​ /home/wang/tiny_4412下有 datasheet  shc(原理图PCB文件夹) src tools src下有 codes  ...

  3. ubuntu15.10跑裸机程序跑.bin文件

    1:安装tftp:#apt-get update#apt-get install tftp-hpa tftpd-hpa xinetd2:#cd /srv#mkdir tftp#chmod 777 tf ...

  4. Cubieboard2裸机开发之(四)定时器操作

    前言 在Cubieboard2裸机开发之(三)里用到了一个延时函数delay,它的延时时间是不精确的,因此为了能够精确延时,就需要定时器的配合.定时器可以精确延时的一个重要原因是它的计时时钟(或者说频 ...

  5. Cubieboard2裸机开发之(二)板载LED交替闪烁

    前言 电路原理在文章http://www.cnblogs.com/lknlfy/p/3583806.html中已经说明,两个LED的原理图是一样的.要使两个LED交替闪烁,只需要在点亮蓝色LED,熄灭 ...

  6. Cubieboard2裸机开发之(一)点亮板载LED

    前言 CUbieboard2板载两个LED,一个绿色的,一个蓝色的,其中绿色LED通过三极管与PH20管脚连接,蓝色LED通过三极管与PH21管脚连接,这里只以蓝色LED为例,电路原理图如图1和图2所 ...

  7. EB-SAM9G45裸机程序下载方法

    开发板:EB-SAM9G45 这里提供一种裸程序下载的方法. 在官方提供的下载方法中有手动下载和自动下载,它们都离不开SAM-BA软件,而该软件使用比较麻烦,而且操作不当很容易导致电脑蓝屏,还有一个很 ...

  8. nRF51822之WDT浅析

    看门狗定时器 NRF51822 的看门狗定时器是倒计数器, 当计数值减少到 0 时产生 TIMEOUT 事件. 通过 START task 来启动看门狗定时器. 看门狗定时器启动时,如没有其他 32. ...

  9. nrf51822裸机教程-RTC

    RTC0被协议栈使用了.所以在跑蓝牙程序的情况下.RTC0不能使用. RTC相关寄存器如下: EVTEN,EVTENSET,EVTENCLR. 这三个寄存器用来设置是否使能某个事件.(TICK,OVR ...

随机推荐

  1. Python元组类型、字典类型及常用操作

    一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...

  2. MongoDB之mongodb.cnf配置

    # mongodb3.2.1 的主配置文件,将此文件放置于 mongodb3.2.1/bin 目录下 # hapday 2016-01-27-16:55 start # 数据文件存放目录 dbpath ...

  3. js获取文件上传进度

    js获取文件上传进度: <input name="file" id="FileUpload" type="file" /> &l ...

  4. 我的Android开发之路——百度地图开源工具获取定位信息

    定位技术在现在的移动设备上是必不可少的,许多app都会使用定位功能. 通常定位方式有两种:GPS定位:网络定位. Android系统对这两种定位方式都提供了相应的API支持,但是因为google的网络 ...

  5. 微信公众平台开发——helloworld

    威信公众平台有两种模式:编辑模式 和 开发模式. 普通的功能可以通过编辑模式来搞定.开发模式具有更多的功能.让我们来使用开发模式开发helloword吧 步骤如下: 1.先注册一个公众号(https: ...

  6. ansible使用2-命令

    并发与shell # bruce用户身份,-m指定模块名称,默认模块名command,all所有目标主机,也可以指定组名或者主机名 ansible all -m ping -u bruce # bru ...

  7. C# 安装 Visual Studio IDE

    官网: https://visualstudio.microsoft.com/zh-hans/ 下载社区版(免费的) .微软的软件安装都是很nice的.安装过程中选择需要的配置进行安装(比如.net桌 ...

  8. DOM笔记(十二):又谈原型对象

    因为之前谢过一篇关于原型对象的笔记:浅谈JavaScript中的原型模式.现在我又重新看到这个话题,对原型有了进一步的理解,所以,又要谈谈原型对象. 一.理解原型对象 创建的每一个函数都有一个prot ...

  9. iOS开发:小技巧积累2

    http://blog.sina.com.cn/s/articlelist_1935098904_1_1.html .获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量: [(My ...

  10. 解析xml文件,修改Jenkins的配置

    最近因为服务器移动,在Jenkins中配置的一些地址之类的,都要改变,如图,我因为使用插件Sidebar Links增加一个链接地址,现在地址变了,所以在Jenkins中配置就需要改动link url ...