当前位置: 首页 > article >正文

I.MX6ull 看门狗

一、看门狗介绍

        WatchDog是为了能够防止程序跑飞而使用的一种硬件模块。如果你的程序没有跑飞,那么你的程序会 定时的去喂看门狗;如果你的程序跑飞了,那么就不会再去喂狗了,如果超过了喂狗的时间,那么狗就会 自己生成一个信号来重新reset你的CPU,让程序重新开始。 这是一种在很重要的情况下防止系统跑飞的 一种方法。

二、I.MX6ull Watchdog Timer

        看门狗定时器(WDOG)通过提供一种方法来避免意外事件或编程错误,从
而防止系统故障

        一旦激活了WDOG,就必须由软件定期对其进行服务。如果不进行维修,
计时器将超时。超时时,WDOG向系统复位控制器(SRC)断言内部系统复位
信号WDOG_RESET_B_DEB

Clocks

        看门狗的时钟通常由系统时钟或专门的时钟电路提供。系统时钟是整个计算机系统或电子设备中用于同步各个部件工作的基准时钟信号,它可以为看门狗的时钟提供一个稳定的频率来源。在一些情况下,为了提高看门狗的独立性和可靠性,也会采用独立的时钟电路,如晶体振荡器,来专门为看门狗定时器提供时钟信号。

Timeout event

        WDOG提供0.5秒到128秒的超时周期,时间分辨率为0.5秒。
        用户可以通过写入看门狗控制寄存器(WDOG_WCR)中的WDOG超时字段 WT[7:0])来确定超时周期。必须通过设置看门狗控制寄存器 (WDOG_WCR)的WDE位来启用WDOG,超时计数器才能开始运行。
        启用 WDOG后,计数器被激活,加载超时值并从该编程值开始倒计时。计时器 将在计数器达到零并且WDOG输出系统复位信号时超时, WDOG_RESET_B_DEB并断言WDOG_B(WDT位应在看门狗控制寄存器 ()WDOG_WCR)中设置).
        但是,如果在计数器达到零之前执行服务例程(请参阅服务WDOG以重新 加载计数器),则可以通过使用新的超时值(WDOG_WCR的WT[7:0])重新加载计数器来防止超时条件。

Servicing WDOG to reload the counter

        要将超时值重新加载到计数器,正确的服务序列首先写入0x_5555,然后写入0x_AAAA到看门狗服务寄存器(WDOG_WSR)。两次写入之间可以执行 任意数量的指令。如果WDOG_WSR在写入0x_AAA之前,没有加载0x_5555到 WDOG_WSR ,则不会重新加载计数器。如果在写入0x_5555后,写了 0x_AAAA以外的任何值写入WDOG_WSR,则不会重新加载计数器。此服务序 列将使看门狗控制寄存器(WDOG_WCR)的超时值WT[7:0]重新加载计数 器。超时值可以在任何时候更改;当WDOG由内核提供服务时,它会被重 新加载。        

编程思路:

        设置复位信号产生后以冷启动方式复位
        关闭看门狗控制器
        设置看门狗定时器定时时间
        使能看门狗
        进行喂狗服务,重置看门狗定时器
        不喂狗看门狗定时器超时,产生复位信号,复位开发板

三,代码实现

#include "wdog.h"void wdog_init()
{CCM->CCGR3 |= (0x3<<16);WDOG1->WCR &=~(0x1<<2);SRC->SCR &=~(0x1<<0);WDOG1->WCR &=~(0x1<<2);WDOG1->WCR &=~(0xff<<8);WDOG1->WCR |=(0x9<<8);WDOG1->WCR |=(0x1<<2);}
void wdog_service()
{WDOG1->WSR = 0x5555;uart_printf("servering ...\r\n");WDOG1->WSR = 0xAAAA;}
void wdog_test()
{wdog_init();int i;for(i=0;i<10;i++){wdog_service();uart_printf("%3d",i);delay_s(1);}
}

        简单来说,看门狗就是一种保护机制,防止程序卡死或者跑飞的一种复位操作.

相关文章:

I.MX6ull 看门狗

一、看门狗介绍 WatchDog是为了能够防止程序跑飞而使用的一种硬件模块。如果你的程序没有跑飞&#xff0c;那么你的程序会 定时的去喂看门狗&#xff1b;如果你的程序跑飞了,那么就不会再去喂狗了&#xff0c;如果超过了喂狗的时间&#xff0c;那么狗就会 自己生成一个信号来重…...

鲸鱼算法优化Transformer+KAN网络并应用于时序预测任务

&#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; 本次博客内容将聚焦于深度学习的相关知识与实践 &#x1f389;作者简介&#xff1a;⭐️⭐️⭐️主要研究方向涵盖深度学习、计算机视觉等方向。 &#x1f4dd;目前更新&#x…...

一维差分算法篇:高效处理区间加减

那么在正式介绍我们的一维差分的原理前&#xff0c;我们先来看一下一维差分所应用的一个场景&#xff0c;那么假设我们现在有一个区间为[L,R]的一个数组&#xff0c;那么我要在这个数组中的某个子区间比如[i,m] (L<i<m<R)进行一个加k值或者减去k值的一个操作&#xff…...

export关键字

注意点&#xff1a; 使用 export 和 import 时&#xff0c;确保你的JavaScript环境支持ES6模块 在JavaScript中&#xff0c;export 关键字主要用于模块化编程&#xff0c;允许你将代码的不同部分导出&#xff0c;使得其他模块可以通过 import 关键字来引入这些部分。这是ES6&a…...

【C++】基础入门(详解)

&#x1f31f; Hello&#xff0c;我是egoist2023&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; 目录 输入&输出 缺省参数(默认参数) 函数重载 引用 概念及定义 特性及使用 const引用 与指针的关系 内联inline和nullptr in…...

【快速入门】Unity 常用组件(功能块)

欢迎关注 、订阅专栏 【unity 新手教程】谢谢你的支持&#xff01;&#x1f49c;&#x1f49c; 文章目录 Unity 常用组件&#xff08;功能块&#xff09;&#xff1a;Transform - 变换&#xff1a;坐标、朝向、大小Mesh Filter - 加载网格数据Mesh Renderer- 渲染网格Camera - …...

Nessus 工具使用全攻略

目录 一、Nessus&#xff1a;网络安全的坚固防线 二、Nessus 安装指南 &#xff08;一&#xff09;获取安装包 &#xff08;二&#xff09;安装流程 三、初次配置&#xff1a;开启 Nessus 的第一步 &#xff08;一&#xff09;账号注册 &#xff08;二&#xff09;激活 …...

1441. 用栈操作构建数组 中等

1441. 用栈操作构建数组 给你一个数组 target 和一个整数 n。每次迭代&#xff0c;需要从 list { 1 , 2 , 3 ..., n } 中依次读取一个数字。 请使用下述操作来构建目标数组 target &#xff1a; "Push"&#xff1a;从 list 中读取一个新元素&#xff0c; 并将其推入…...

【Springboot知识】从零开始配置springfox

文章目录 配置过程1. 添加依赖2. 创建Swagger配置类3. 配置Swagger UI4. 自定义Swagger配置&#xff08;可选&#xff09;4.1 添加全局请求参数4.2 配置响应消息 5. 运行项目并访问Swagger UI6. 其他注意事项7. 使用Springfox 3.x&#xff08;可选&#xff09;总结 忽略登录验证…...

PHP代驾系统小程序

&#x1f697; 代驾系统 —— 安全、便捷、智能的出行新选择 &#x1f527; 一款基于先进ThinkPHPUniapp技术架构&#xff0c;匠心独运的代驾软件横空出世&#xff0c;微信小程序端率先登场&#xff0c;为您的出行之旅增添前所未有的便捷与安全。它不仅是您贴心的出行助手&…...

pg认证需要培训机构吗

认证类型决定是否需要培训机构 官方认证 PostgreSQL社区认证&#xff1a;PostgreSQL社区并未强制要求通过培训机构才能参加认证考试。例如&#xff0c;PostgreSQL Professional Certification&#xff08;由社区认可的机构提供&#xff09;通常允许考生自学后直接报名考试。 Po…...

网络安全扫描--基础篇

前言 1、了解互联网安全领域中日趋重要的扫描技术 2、了解在不同网络场景下扫描技术手段 3、熟悉linux下系统内核防护策略并能大件一个有效的系统防护体系 4、增强工作安全意识&#xff0c;并能有效的实践于工作场景中 目录 1、熟悉主机扫描工具&#xff08;fping&#xff0c;…...

【MySQL数据库】Ubuntu下的mysql

目录 1&#xff0c;安装mysql数据库 2&#xff0c;mysql默认安装路径 3&#xff0c;my.cnf配置文件? 4&#xff0c;mysql运用的相关指令及说明 5&#xff0c;数据库、表的备份和恢复 mysql是一套给我们提供数据存取的&#xff0c;更加有利于管理数据的服务的网络程序。下…...

GPQA (Graduate-Level Google-Proof QA Benchmark) 数据集

标题&#xff1a;挑战人类与AI的极限&#xff1a;GPQA——一个面向未来的高难度科学问答基准 引言 在人工智能快速发展的今天&#xff0c;大型语言模型&#xff08;如GPT-4&#xff09;已能在许多任务中媲美甚至超越人类表现。然而&#xff0c;当面对需要高度专业知识的问题时&…...

WebRTC与EasyRTC:开启智能硬件音视频通讯的全新旅程

在当今数字化时代&#xff0c;音视频通讯技术正以前所未有的速度革新着我们的生活与工作方式。WebRTC与EasyRTC作为这一领域的佼佼者&#xff0c;正携手为智能硬件的音视频通讯注入强大动力&#xff0c;开启全新的篇章。 一、WebRTC与智能硬件融合的崭新趋势 WebRTC技术&…...

利用ffplay播放udp组播视频流

ffplay -fs -fflags nobuffer -flags low_delay -analyzeduration 0 -probesize 32 -framedrop -sync ext -strict experimental udp://224.1.1.1:5001 -fs : 全屏显示 -fflags nobuffer &#xff1a; 禁用输入缓冲&#xff08;减少100-200ms缓冲延迟&#xff09; -an…...

基于Ceedling的嵌入式软件单元测试

Ceedling 如果你使用 Ceedling&#xff08;一个针对 C 代码单元测试的构建管理器&#xff09;&#xff0c;可以更方便地管理测试。Ceedling 会自动处理 Unity 和 CMock 的集成&#xff0c;无需手动编写 Makefile。 1.环境搭建 1.1 Ruby环境 sudo apt-get install ruby1.2 安…...

一文深入了解DeepSeek-R1:模型架构

本文深入探讨了 DeepSeek-R1 模型架构。让我们从输入到输出追踪 DeepSeek-R1 模型&#xff0c;以找到架构中的新发展和关键部分。DeepSeek-R1 基于 DeepSeek-V3-Base 模型架构。本文旨在涵盖其设计的所有重要方面。 &#x1f4dd; 1. 输入上下文长度 DeepSeek-R1的输入上下文长…...

机试题——快乐时间

题目描述 小明在工作之余喜欢在电子书城阅读不同的书籍并且获得最大的满足感&#xff0c;因此根据书城针对每本书籍的评分收集了 n 个书籍的打分清单 books&#xff0c;例如第一本书的打分 books[0]5 代表该书的满意程度为 5&#xff0c;第二本书 books[1]-2 代表该书的满意程…...

2024年终总结和2025年规划

2024年的主线是AI基础的学习和读书&#xff0c;虽然AI学习花费了更多的时间&#xff0c;但是读书长久看来于我是更重要的事情&#xff0c;哈哈哈&#xff0c;因此先简单回顾一下读书记忆&#xff0c;回顾我的2024&#xff0c;再展望一下我的2025. 我的2024年记忆 读万卷书&am…...

5 .TCP传输 文件/数据

文件传输 本质:客户端通过标准IO或者文件IO&#xff0c;读取文件中的信息 然后将读取到的信息&#xff0c;通过套接字发送给服务器 服务器接收到后&#xff0c;立刻通过标准IO或者文件IO写到文件 这个过程&#xff0c;服务器要知道2件事 1&#xff1a;客户端发来的文件名字 …...

哈希表(典型算法思想)—— OJ例题算法解析思路

目录 一、1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 1. 问题描述 2. 核心思路 3. 代码实现思路 &#xff08;1&#xff09;初始化哈希表 &#xff08;2&#xff09;遍历数组 &#xff08;3&#xff09;返回结果 4. 时间复杂度分析 …...

CloudberryDB(七)二级索引

在CloudberryDB中&#xff0c;二级索引的概念与PostgreSQL中的类似。但是&#xff0c;由于分布式特性&#xff0c;创建和使用二级索引需要考虑一些额外的因素。以下是关于二级索引的一些要点&#xff1a; 1. **创建索引**&#xff1a;在Greenplum中&#xff0c;可以使用CREATE…...

学习web数据埋点

什么是埋点&#xff0c;以及为什么需要埋点 通过代码主动收集用户行为数据&#xff08;如点击、浏览、停留时长等&#xff09;&#xff0c;用于数据分析驱动产品优化。 一、前端埋点 在客户端&#xff08;浏览器、移动端应用&#xff09;直接采集用户行为数据&#xff0c;通…...

Next.js【详解】CSS 样式方案

全局样式 Global CSS 默认已创建&#xff0c;即 src\app\globals.css&#xff0c;可根据需要修改 默认在全局布局中导入 src\app\layout.tsx import "./globals.css";组件样式 CSS Modules 新建文件 src\app\test\styles.module.css .red {color: red;}导入目标页面…...

HCIA项目实践--RIP相关原理知识面试问题总结回答

9.4 RIP 9.4.1 补充概念 什么是邻居&#xff1f; 邻居指的是在网络拓扑结构中与某一节点&#xff08;如路由器&#xff09;直接相连的其他节点。它们之间可以直接进行通信和数据交互&#xff0c;能互相交换路由信息等&#xff0c;以实现网络中的数据转发和路径选择等功能。&am…...

无人机信号调制技术原理

一、调制技术的必要性 频谱搬移&#xff1a;将低频的基带信号搬移到高频的载波上&#xff0c;便于天线辐射和传播。 信道复用&#xff1a; 利用不同的载波频率或调制方式&#xff0c;实现多路信号同时传输&#xff0c;提高信道利用率。 抗干扰&#xff1a; 通过选择合适的调…...

Qt——连接MySQL数据库之编译数据库驱动的方法详细总结(各版本大同小异,看这一篇就够了)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》 《实用硬件方案设计》 《结构建模设…...

leetcode-495.提莫攻击

leetcode-495.提莫攻击 文章目录 leetcode-495.提莫攻击一.题目描述二.代码提交三.解释 一.题目描述 二.代码提交 #include <vector> using namespace std;int findPoisonedDuration(vector<int>& timeSeries, int duration) {int total 0;for (int i 0; i …...

计算机网络知识速记 :HTTP多个TCP连接的实现方式

计算机网络知识速记 &#xff1a;HTTP多个TCP连接的实现方式 在当今互联网高速发展的背景下&#xff0c; web 应用程序对性能的要求日益增加。在众多网络协议中&#xff0c;HTTP (超文本传输协议) 的性能优化显得尤为重要&#xff0c;尤其是在多个TCP连接的管理和实现上。 引…...