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,一经查实,立即删除!

相关文章

数据库常见的数据模型

关系模型 是使用表格表示实体和实体之间关系的数据模型&#xff0c;无论是实体还是实体之间的联系都被映射成统一的关系&#xff0c;一张二维表。关系数据模型的结构简单明了&#xff0c;操作方便&#xff0c;有坚实的数学理论做基础&#xff0c;包括逻辑计算、数学计算等。但…

window.onload方法

问题 当在js文件中写好了如下代码&#xff1a; var button document.getElementById(btn); button.addEventListener("click",function(){alert("hhh"); });为按钮绑定了一个事件&#xff0c;点击按钮时没反应 解决 虽然我们写好了函数&#xff0c;但…

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…

华为OD机试真题-整数对最小和-2023年OD统一考试(C卷)

题目描述: 给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值 注意:两对元素如果对应于array1、array2中的两个下标均相同,则视为同一对元素。 输…

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…

手写字符识别神经网络项目总结

1.数据集 手写字符数据集 DIGITS&#xff0c;该数据集的全称为 Pen-Based Recognition of Handwritten Digits Data Set&#xff0c;来源于 UCI 开放数据集网站。 2.加载数据集 import numpy as np from sklearn import datasets digits datasets.load_digits() 3.分割数…

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的特性 …

操作符extends的作用是什么?

在TypeScript中&#xff0c;extends关键字用于创建类之间的继承关系。它允许一个类&#xff08;子类&#xff09;继承另一个类&#xff08;父类&#xff09;的属性和方法&#xff0c;并可以在子类中添加新的属性和方法或者修改继承自父类的属性和方法。 extends的作用是实现类…

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;};

背面剔除_BackfaceCullingOn

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example demo解决问题&#xff1a; 启用了背面剔除的球体 关于背面剔除&#xff1a; 背面剔除是图形学中的一种技术&#xff0c;用于提高渲染效率和减少不必要的计算。在三…

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;应该能让你茅塞顿开、收获颇丰。先喝…