lv11 嵌入式开发 WDT实验 12

目录

1 WDT简介

2 Exynos4412下的WDT控制器

2.1 概述

2.2 WDT的特性

2.3 工作原理

2.4 其他细节

3 WDT寄存器详解

3.1 WTCON控制寄存器

3.2 WTDAT 实时中断寄存器

3.3 WTCNT 递减计数器

3.4 WTCLRINT清除中断寄存器

4 WDT编程


1 WDT简介

Watch Dog Timer即看门狗定时器,其主要作用是当发生软件故障时可产生复位信号使SOC复位,其本质是一个计数器(独立于CPU,但是集成在SOC中的芯片)

WDT工作原理

2 Exynos4412下的WDT控制器

2.1 概述

Exynos 4412 SCP中的看门狗定时器(WDT)是一种计时设备。可以使用该设备在系统错误引起的故障后恢复控制器的操作。可以将WDT用作普通的16位间隔定时器,以请求中断服务。WDT也可以生成复位信号。

2.2 WDT的特性

  • 支持带有中断请求的普通间隔定时器模式。
  • 当定时器计数值达到0(超时)时,会触发内部复位信号。
  • 支持电平触发的中断机制。

2.3 工作原理

看门狗定时器使用的时PCLK时钟,100Mhz ,由soc提供给我们

WTCNT寄存器中存入的是递减计数器的值,会自动递减。

减到0时可以发送2种信号,中断(和普通定时器一样)和复位(监控CPU)

WTCON寄存器[2]位可以设置是否中断

WTCON寄存器[0]位可以设置是否复位

WTCON寄存器[15:8]位,设置预分频器,降低频率,可以设置0~255,降低1~256倍。

WTCON寄存器[4:3]位,二级分频,再次降低频率,可以降低1/16 1/32 1/64 1/128。

公式为递减周期计算

2.4 其他细节

3 WDT寄存器详解

3.1 WTCON控制寄存器

 

3.2 WTDAT 实时中断寄存器

WTDAT寄存器可以指定超时持续时间。在初始WDT操作中,您无法将WTDAT的内容加载到计时器计数器中。然而,通过使用0x8000(初始值),可以驱动WDT计数器首次超时。设置Count reload value每当超时,都会把WTDAT里的值复制到WTCNT中,来产生实时中断。

3.3 WTCNT 递减计数器

 不好超过65535

3.4 WTCLRINT清除中断寄存器

4 WDT编程

介绍:编程实现看门狗运行,程序运行5s后开发板复位

注:exynos_4412.h见前期接口介绍。


#include "exynos_4412.h"void Delay(unsigned int Time)
{while(Time--);
}int main()
{/*设置一级分频*/WDT.WTCON = WDT.WTCON | (0xFF << 8);/*设置二级分频*//*WTCNT递减频率 = PLCK(100000000)/(0xFF + 1)/128 = 3052*/WDT.WTCON = WDT.WTCON | (0x3 << 3);/*禁止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;
}

练习

编程实现将WDT的递减频率设置为10000HZ,程序运行5s后开发板复位


#include "exynos_4412.h"void Delay(unsigned int Time)
{while(Time--);
}int main()
{/*设置一级分频*/WDT.WTCON = WDT.WTCON | (0x4D << 8);/*设置二级分频*//*WTCNT递减频率 = PLCK(100000000)/(0x4D + 1)/128 ≈ 10000*/WDT.WTCON = WDT.WTCON | (0x3 << 3);/*禁止WDT产生中断信号*/WDT.WTCON = WDT.WTCON & (~(1 << 2));/*使能WDT产生复位信号*/WDT.WTCON = WDT.WTCON | 1;/*设置计数器的初始值*/WDT.WTCNT = (10000 * 5);/*使能WDT,计数器开始递减*/WDT.WTCON = WDT.WTCON | (1 << 5);while(1){printf("WDT.WTCNT = %d\n",WDT.WTCNT);/*喂狗*///WDT.WTCNT = 10000;Delay(100000);}return 0;
}

效果:5s后开发板复位

注:开发板已经帮我们实现了串口的功能,所以直接调用printf即可,否则串口也不会打印上电的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZKP15.2 Formal Methods in ZK (Part I)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 15: Secure ZK Circuits via Formal Methods (Guest Lecturer: Yu Feng (UCSB & Veridise)) 15.2 Formal Methods in ZK (Part I) Circuits Workflow Source Code: Witness Generation and ConstraintsWitness Generatio…

【力扣】 209. 长度最小的子数组

【力扣】 209. 长度最小的子数组 文章目录 【力扣】 209. 长度最小的子数组1. 题目介绍2. 解法2.1 暴力求解2.2 前缀和 二分查找2.3 滑动窗口2.4 贪心回溯 3. Danger参考 1. 题目介绍 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 …

ubuntu安装远程桌面

ubuntu安装远程桌面 xrdp远程桌面访问 #用windows远程桌面连接成功,只能用root用户,用普通用户连接是灰色 sudo apt install xrdp systemctl status xrdpsystemctl stop xrdp解决普通用户连接是灰色 参考链接: https://blog.csdn.net/leegh1992/article/details/51160864 s…

PyCharm安装PyQt5及工具(Qt Designer、PyUIC、PyRcc)详细教程来了

Qt是常用的用户界面设计工具&#xff0c;而在Python中则使用PyQt这一工具包&#xff0c;它是Python编程语言和Qt库的成功融合。这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包&#xff0c;主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Desig…

C或C++报错:ld returned 1 exit status报错的原因

C或C报错&#xff1a;ld returned 1 exit status&#xff08;ld返回1&#xff0c;退出状态&#xff09; 可能是以下原因: 1&#xff09;程序正在运行&#xff0c;无法编译&#xff0c;上次运行的窗口未关闭。 程序窗口重复运行没有及时关闭&#xff0c;存在多个打开窗…

Python中的sys模块详解

1. 简介 sys模块是Python标准库中的一个内置模块&#xff0c;提供了与Python解释器和运行环境相关的功能。它包含了一些与系统操作和交互相关的函数和变量&#xff0c;可以用于获取命令行参数、控制程序的执行、管理模块和包、处理异常等。 2. 常用函数和变量 2.1 命令行参数…

二叉树之推排序(升序)

目录 1.思路1.1大堆的建立方法1.2排序的方法 2.代码实现以及测试代码 1.思路 如何将一个堆进行排序&#xff0c;并变成升序&#xff1f;首先&#xff0c;如果要完成升序&#xff0c;那我们可以建立一个大堆&#xff0c;因为大堆可以选出一个最大的值放在堆的最上面&#xff0c…

数组中的第 K 个最大元素(C++实现)

数组中的第 K 个最大元素 题目思路代码 题目 数组中的第 K 个最大元素 思路 通过使用优先队列&#xff08;最大堆&#xff09;来找到数组中第k大的元素。通过弹出最大堆中的前k-1个元素&#xff0c;留下堆中的顶部元素作为结果返回。 代码 class Solution { public:int find…

Java17(LTS Long Term Support)特性

支持JDK17的主流技术框架 spring framework 6.xspringboot 3.xkafka 3.0(不在支持jdk8)jenkins 2.357&#xff08;必须jdk11起步&#xff09;James Gosling表示赶紧弃用Java8&#xff0c;使用性能最好的JDK17Chart GPT也推荐JDK17&#xff0c;从长期到性能来说。 JDK17的特性 …

htop命令中显示相同进程的解决方案

使用 htop 的过程中会发现有很多同样的进程被标注了绿色大量显示。如下图所示。 这使得在大量程序运行时想要找到需要观察的进程变的困难。本文介绍了如何省略这些重复现实的进程。 输入 htop&#xff0c;显示出 htop 界面。按下 F2 键&#xff0c;进入 Setup 模式点击 Displa…

C++基础 -10- 类

类的格式 public:公共成员 类外可访问 protected:保护成员 类外不可访问 private:私有成员 类外不可访问 class base {public:int a;protected:int b;private:int c;};

WEB渗透—反序列化(八)

Web渗透—反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩哔_…

Blazor Select 实现点击一次选项触发一次后台事件

Blazor的官方案例中&#xff0c;Select组件只有两个事件 1、OnSelectedItemChanged 每次选项的时候改变触发&#xff0c;如果你点击同一个选项是不会触发后台的方法的 2、OnBeforeSelectedItemChange 我们可以用这个事件实现每次点击同一个选项都可以触发后台事件 需要注意下最…

先喝点水,这期程序员兼职干货没有水分!

钱越来越难挣?程序员找兼职越来越难&#xff1f;结局只能指路美团&#xff1f; 还没看透职场“高薪”骗局&#xff1f;别人早就把精力放在了做副业上。兼职找不到&#xff0c;多半是经验不够、思路没打开&#xff0c;本篇文章&#xff0c;应该能让你茅塞顿开、收获颇丰。先喝…

Linux环境安装Java,Tomcat,Mysql,

1、Java的安装 载 jdk1.8 注&#xff1a;此处 CentOS7 是64位&#xff0c;所以下载的是&#xff1a;Linux x64&#xff0c; 文件类型为 tar.gz 的文件 JDK 官网地址&#xff1a;https://www.oracle.com/java/ cd /usr/local/ mkdir jdk cd jdk/tar -xvf jdk-8u202-linux-x64.…

配置华为云镜像加速器

登录华为云官网&#xff0c;点击控制台 在服务列表里面寻找swr服务 点击镜像中心&#xff0c;点击镜像加速器 {"registry-mirrors": [ "https://301dc05233c6419b810bdb22135af9eb.mirror.swr.myhuaweicloud.com" ]}配置镜像加速器 vim /etc/docker…

物理机虚拟化关键技术介绍

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、虚拟化原理 将多个“同质或异构”资源&#xff08;包括但不限于芯片、硬件、软件、应用&#xff09;形成一个资源池&#xff0c;对资源池进行抽象、解耦形成独立的“虚拟资源”&#xff0c;并实现虚拟资…

Adversarial Attack and Defense on Graph Data: A Survey(2022 IEEE Trans)

Adversarial Attack and Defense on Graph Data: A Survey----《图数据的对抗性攻击和防御&#xff1a;综述》 图对抗攻击论文数据库&#xff1a; https://github.com/safe-graph/graph-adversarial-learning-literature 摘要 深度神经网络&#xff08;DNN&#xff09;已广泛应…

多线程【第二十章】

线程简介 世间有很多工作都是可以同时完成的。例如&#xff0c;人体可以同时进行呼吸、血液循环、思考问题等活动;用户既可以使用计算机听歌&#xff0c;也可以使用它打印文件。同样&#xff0c;计算机完全可以将多种活动同时进行&#xff0c;这种思想放在 Java 中被称为并发&a…

怎么判断香港服务器的性能好不好?

随着互联网的不断发展&#xff0c;越来越多的人开始使用香港服务器来搭建自己的网站或者应用。但是&#xff0c;对于初次使用香港服务器的用户来说&#xff0c;往往会遇到一个问题&#xff1a;怎么判断香港服务器的性能好不好? 首先我们需要了解香港服务器的性能主要取决于哪些…