ARM接口编程—WDT(exynos 4412平台)

WDT简介

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

ARM接口编程—WDT(exynos 4412平台)_第1张图片

  • WDT工作原理
    ARM接口编程—WDT(exynos 4412平台)_第2张图片

WTD寄存器

ARM接口编程—WDT(exynos 4412平台)_第3张图片

wtd控制寄存器

用于设置一级分频、二级分频、使能、产生复位和中断信号
ARM接口编程—WDT(exynos 4412平台)_第4张图片

WTD数据寄存器

用于获取计数值,当watch dog开启时会自动递减
ARM接口编程—WDT(exynos 4412平台)_第5张图片

WTD计数寄存器

用于设置当前的计数值

ARM接口编程—WDT(exynos 4412平台)_第6张图片
代码实现

#include "exynos_4412.h"

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

int main()
{
	// 设置一级分频为256
	WDT.WTCON |= (0xFF << 8);
	// 设置二级分频为128
	// 递减频率为 PCLOK(100000000) / (0xFF + 1) / 128 = 3052
	WDT.WTCON |= (0x3 << 3);
	// 禁用中断
	WDT.WTCON &= ~(1 << 2);
	// 使能复位功能
	WDT.WTCON |= 0x1;
	// 设置计数值为5s
	WDT.WTCNT = 3052 * 5;

	while(1)
	{
		printf("WTD.WTDAT = %d\n", WDT.WTDAT);

		// 喂狗
		WDT.WTCNT = 3052 * 5;
		delay(100000);
	}

	return 0;
}

你可能感兴趣的:(arm开发,嵌入式硬件)