LV.12 D15 WDT实验 学习笔记

一、WDT简介

WDT

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

工作原理

CPU正常工作时,需要定时往看门狗计数器里刷新一个比较大的值,来保证看门狗计数器中的值不会减到0。CPU一旦遇到错误后,就没办法刷新看门狗计数器的值,减到0之后,就会向CPU发送复位信号,让CPU复位。

二、Exynos_4412下的WDT控制器

看门狗计时器使用的原始时钟是100MHz的PCLK,接着提供了两个预分频器,一级分频器能存储0-255,所以可以降低1-256倍,通过WTCON15:8来设置,二级分频器可以在一级分频器的基础上再进行固定倍数降低,通过WTCON4:3来设置。WTCNT会按照这个频率往下减,减到0后,会对外发送信号,由WTCON2和WTCON0来决定发送的是中断信号还是复位信号。

周期的计算公式:1/(PCLK/(一级分频器+1)/二级分频器)

周期是频率的倒数

三、WDT寄存器详解

WTCON:控制看门狗定时器的功能

WTCNT: 存储递减寄存器中的值

WTDAT和WTCLRINT用于中断,本次实验主要使用复位功能,暂时用不上。

四、WDT编程

先新建一个工程文件

interface.c

cpp 复制代码
#include "exynos_4412.h"

void Delay(unsigned int Time)
{
	while(Time--);
}

int main()
{
	/*设置一级分频*/
	WDT.WTCON = WDT.WTCON | (0xFF << 8);
	/*设置二级分频器*/
	WDT.WTCON = WDT.WTCON | (0x3 << 3);
	/*WTCON递减频率 = PLCK(100000000)/(0xFF + 1)/128
	 * 				= 3052
	 */
	/*禁止WDT产生中断信号*/
	WDT.WTCON = WDT.WTCON & (~(1 << 2));
	/*使能WDT产生复位信号*/
	WDT.WTCON = WDT.WTCON | 1;
	/*设置计数器的值*/
	WDT.WTCNT = (3052 * 5);
	/*使能WDT,计数器开始递减*/
	WDT.WTCON = WDT.WTCON | (1 << 5);

	while(1)
	{
		printf("WDT.WTCNT = %d\n", WDT.WTCNT);
		Delay(100000);
	}
	return 0;
}
cpp 复制代码
#include "exynos_4412.h"

void Delay(unsigned int Time)
{
	while(Time--);
}

int main()
{
	/*设置一级分频*/
	WDT.WTCON = WDT.WTCON | (0xFF << 8);
	/*设置二级分频器*/
	WDT.WTCON = WDT.WTCON | (0x3 << 3);
	/*WTCON递减频率 = PLCK(100000000)/(0xFF + 1)/128
	 * 				= 3052
	 */
	/*禁止WDT产生中断信号*/
	WDT.WTCON = WDT.WTCON & (~(1 << 2));
	/*使能WDT产生复位信号*/
	WDT.WTCON = WDT.WTCON | 1;
	/*设置计数器的值*/
	WDT.WTCNT = (3052 * 5);
	/*使能WDT,计数器开始递减*/
	WDT.WTCON = WDT.WTCON | (1 << 5);

	while(1)
	{
		printf("WDT.WTCNT = %d\n", WDT.WTCNT);
        /*喂狗*/
        WDT.WTCNT = 3052;
		Delay(100000);
	}
	return 0;
}

此时只有程序出错,导致不能喂狗,才会复位。

相关推荐
一只小菜鸡..2 小时前
南京大学 操作系统 (JYY) 学习笔记:进程、系统调用与状态机管理
笔记·学习
DeviceHub3 小时前
硬件工程师选型笔记:ALPS RK12L1230C0K 与 Tonevee RK12L1230C0K 电位器 PIN TO PIN 评估指南
笔记
whyTeaFo3 小时前
GAMES101: Lecture 13: Ray Tracing 1 (Whitted-Style Ray Tracing) ppt笔记
笔记
天国梦6 小时前
2026英语教学系统选型实战:AI如何让备课效率提升42%?天学网技术落地全解析
人工智能·学习
维克兜率天6 小时前
【维克】大数定律与中心极限定理:为什么长期均值终将回归?
经验分享·学习·金融·概率论
中微极客6 小时前
降维算法75倍加速:从PCA到稀疏字典学习的工程实践
人工智能·学习·算法
吃好睡好便好8 小时前
MATLAB中图像的读取、写入和显示
开发语言·图像处理·学习·计算机视觉·matlab
~kiss~8 小时前
大模型中的强化学习算法和对齐算法的区别
学习
MartinYeung58 小时前
[论文学习]InjecAgent:工具集成大语言模型智能体的间接提示注入基准测试
网络·学习·语言模型
XS0301068 小时前
SpringMVC核心知识点实操笔记
笔记