栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【Linux】ARM篇7--WDT看门狗实验

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Linux】ARM篇7--WDT看门狗实验


ARM篇7--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"


void delay(int i)
{
	while(i--);
}


void WDT_Init()
{
	
	WDT.WTCON = WDT.WTCON & (~(0xFF<<8)) | (0x9B<<8);

	
	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 = %dn", 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时:

开发板复位。


到这里就结束啦!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/825530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号