ARM篇七--WDT看门狗实验

  • 一、前言
  • 二、准备工作
  • 三、看门狗简介
  • 四、看门狗寄存器介绍
    • 1、看门狗结构
    • 2、看门狗寄存器
    • 3、WTCON寄存器
    • 4、WTCNT寄存器
  • 五、看门狗代码编写
    • 1、程序
    • 2、程序烧入步骤
  • 六、实验现象

一、前言

本篇使用华清远见的FS4412开发板,进行WDT开门狗实验,知识包含看门狗介绍,开门狗使用原理,看门狗代码编写、看门狗实验。


二、准备工作

  • FS4412开发板,我用的是华清远见的FS4412开发板
  • ubuntu下linux操作系统(包含交叉编译工具
  • serial-com8程序烧入执行工具
  • 开发板电路原理图、芯片手册
  • 开发程序模板

开发板资料、交叉编译工具、程序烧入工具下载(包含教程)
开发板可选择到华清远见官网进行租赁。
工程模板文件下载


三、看门狗简介

Watch Dog Timer即看门狗定时器,其主要作用是当发生软件故障时可产生复位信号使芯片复位,其本质是一个计数器。

因此在使用看门狗时,需要每隔一段时间给计数器设定值,以防止计数器减到0,跟现实生活中,给狗加狗粮的行为类似。

Exynos 4412 芯片中看门狗包括的功能:

  • 支持正常间隔定时器模式中断请求
  • 如果定时器计数值达到0(超时),激活内部复位信号。
  • 支持级触发中断机制

四、看门狗寄存器介绍

1、看门狗结构


可以看出控制看门狗的寄存器主要是WTDCON寄存器


2、看门狗寄存器


3、WTCON寄存器

  • 一级分频器分频数在1~256,而我们写0~255,内部寄存器自动+1

4、WTCNT寄存器

  • 看门狗计数器,使用看门狗时,该寄存器自动递减
  • 计数范围是0~65535

五、看门狗代码编写

1、程序

#include "exynos_4412.h"/*** @description: 延时函数 * @param {int} i- 延时计数* @return {*}*/
void delay(int i)
{while(i--);
}/*** @description: 看门狗初始化* @param {*}* @return {*}*/
void WDT_Init()
{/* 设置一级分频 156 = 0x9B+1*/WDT.WTCON = WDT.WTCON & (~(0xFF<<8)) | (0x9B<<8);/* 设置二级分频 64- 10 */WDT.WTCON |= (0x2<<3);//看门狗频率为100000000/156/64 约等为10000Hz/* 关闭中断 */WDT.WTCON &= (~(0x1<<2));/* 打开产生复位信号 */WDT.WTCON |= 1;/* 设置计数器计数值 */WDT.WTCNT = (5*10000);  //5秒/* 使能看门狗 */WDT.WTCON |= (0x1<<5);
}int main()
{WDT_Init();while(1){printf("WDT.WTCNT = %d\n", WDT.WTCNT); //打印计数器值delay(100000);}return 0;
}

2、程序烧入步骤

1.输入make生成.bin文件


2.将.bin文件复制到共享文件夹





输入:

cp ARM_LED.bin /mnt/hgfs/cca

将文件复制到cc文件夹


3.打开serial-com8,连接开发板(COM2接口),烧入程序
①查看端口

②打开serial-com8设置


③接通开发板电源,迅速按enter键,使其快速进入裸机模式。

④烧入程序

输入:

loadb 40008000

选择可执行文件烧入

烧入成功:


⑤执行程序
输入:

go 40008000


六、实验现象


计数器递减,到0时:

开发板复位。


到这里就结束啦!

【Linux】ARM篇七--WDT看门狗实验相关推荐

  1. 【嵌入式系统】独立看门狗原理+看门狗实验分析

    [嵌入式系统]独立看门狗原理+看门狗实验分析 1.看门狗模块概述 在由单片机构成的微机系统中,由于单片机工作常常会受到来自外界电磁场干扰导致程序跑飞,陷入死循环--即程序正常运行被打断,系统无法继续工 ...

  2. (实验6,实验7)单片机,STM32F4学习笔记,代码讲解【看门狗实验】【正点原子】【原创】

    文章目录 其它文章链接,独家吐血整理 实验现象(实验六) 主程序(实验六) 独立看门狗初始化程序(实验六) 代码讲解(实验六) 实验现象(实验七) 主程序(实验七) 窗口看门狗初始化程序(实验七) 代 ...

  3. stm32看门狗_「正点原子NANO STM32开发板资料连载」第十一章 独立看门狗实验

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十一章 独 ...

  4. 看门狗寄存器c语言代码_「正点原子NANO STM32F103开发板资料连载」第十一章 看门狗实验...

    1)实验平台:[正点原子] NANO STM32F103 开发板 2)摘自<正点原子STM32 F1 开发指南(NANO 板-HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 ...

  5. 嵌入式 独立看门狗实验

    独立看门狗实验: 1. 介绍: (1) 为什么需要看门狗? 在MCU微型计算机系统中,MCU运行程序很容易受到外界电磁场的干扰,从而造成程序运行错误甚至发生跑飞现象,从而陷入死循环,程序的正常运行被打 ...

  6. zigbee CC2530 系列教程 10 看门狗实验

    所有课程见此链接: zigbee CC2530 系列教程 0 课程介绍 4.9看门狗实验 4.9.1 实验目的 1.学习CC2530看门狗的工作方式: 2.学习看门狗功能在系统中的运行机制: 4.9. ...

  7. 窗口看门狗实验定时器基本原理

    目录 1.  窗口看门狗 1.1  窗口看门狗概述 1.1.1  窗口看门狗工作示意图 1.1.2  窗口看门狗工作过程总结 1.1.3  窗口看门狗超时时间 1.1.4  为什么要窗口看门狗 ? 1 ...

  8. 2021-04-20 独立看门狗实验

    独立看门狗实验 一. 独立看门狗概述 二. 常用寄存器和库函数配置 三. 编写独立看门狗实验 一. 概述 在单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞 ...

  9. STM32单片机(4) 独立看门狗实验

    [转载请注明出处:http://blog.csdn.net/leytton/article/details/38393651] /*********************************** ...

最新文章

  1. 致开发者:2018年AI技术趋势展望
  2. Output Operations on DStreams
  3. android学习之Service
  4. python快速排序最简单写法_漫画:最最最最最简单的选择排序
  5. 批处理 批量s扫1433_申报资料 | 批量整理图谱(续)
  6. 用python画风车_python接口自动化()一)(实现一款简单的接口自动化框架)
  7. android 动画结束停留,循环动画 tween durationMillis = 90195 动画将停留在最后一针
  8. 对InputStreamReader 和 OutputStreamWriter的理解
  9. gitlab服务器代码存储位置,gitlab 数据目录迁移
  10. 【编程】常见概念的理解 —— inplace、vanity url、vanilla(code/software)、编译、链接、build、(delegate、proxy)
  11. ajax data参数
  12. android 行居中,android自己定义换行居中CenterTextView
  13. 21世纪IT人才需要具有的5个鲜明特点
  14. VS2010过期密钥
  15. Android 自定义相机黑屏
  16. gns3使用简要教程(gns3-wireshark捕获教程)
  17. Android拦截黑名单(简易版)
  18. broker-list与bootstrap-server辨析
  19. 数据中台建设方法论-4 实践
  20. sql for 循环

热门文章

  1. 安卓生成keystore和查看keystore
  2. 学习python的第十四天
  3. css min-height 和 max-height
  4. 欧拉计划17——数字字母计数
  5. 【Arduino】APDS9960S手势模块控制馨品窗帘电机并在5110屏中显示指令
  6. 深入理解Linux进程描述符task_struct结构体
  7. mini2440 linux 内存布局
  8. android 选择答题功能,Android实现简单的答题系统
  9. GO语言基础进阶教程:sync包——互斥锁
  10. 职业精神:薪水到底谁来决定