独立看门狗应用实例|学习笔记

简介: 快速学习独立看门狗应用实例

开发者学堂课程【嵌入式之RFID开发与应用2020版独立看门狗应用实例】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/665/detail/11164


独立看门狗应用实例


一、独立看门狗应用实例

将基础代码有关看门狗的代码复制在app文件夹下

image.png

然后在source insight-reload file 中打开,在key.h中选择Add and Remove project Files 中添加app中的文件。

image.png

在工程里面,除了需要添加app里面看门狗的应用程序wgd.c,还需要在lib中找到有关独立看门狗的库的支持。Iwdg就可以,wwdg属于窗口看门狗,本节课主要介绍独立看门狗。(lib-libraries-stm32f10x_stdperiph_driver-src-stm32f10x_iwdg.c )

对于看门狗只添加了iwdg_init 并且是放在初始化的最前面。

image.png

如果放在后面,问题出在前面就无法解决,所以看门狗越早初始化越好。

接下来结合公式分析函数

image.png

这个函数iwdg_init 是官方提供的库,Prer代表分频系数,r1r代表计数周期。

image.png

对于分频系数,下图中iwdg_init(4,625)的4不是计数频率,而是代码预分频的设定值为4,分频为4*24 ,代表64分频。以

40khz除以64得到的频率计数,计625个数,得到1000ms,表示看门狗1s之内必须喂一次,若没有喂,则会复位。

image.png

可以看到,在while循环里面,每次循环都需要喂狗,喂狗调用iweg_feed 。

观察它超时的情况需要在在按键里面添加循环while(1); ,只要按键不会退出,不退出主事件循环就没有继续执行,因为它是单任务事件。当主事件不执行,喂狗动作就无法执行,系统就会复位,所以通过这个来观察情况。

image.png

其中存在问题就是按键蜂鸣器它会不会响,需要看定时器的优先级高不高,如果基数低则不会响,因为处于同一个优先级的话,定时器无法打断按键的中断。

按键执行后发现时间停了但并未复位,说明刚才的操作看不到这个现象,复位的优先级比中断低。

image.png

所以我们需要在主程序里面添加while(1),一旦检测到按键就让它停留在此

image.png

接下来按键就发现会复位,出现了booting,它只有开机时出现。

image.png

看门狗计数是正常的计数,看门狗正常运行时需要有计数值,进入中断时无法减数,退出中断又会继续减数,所以不要把阻塞的事情放在中断上,因为会阻塞看门狗定时器计数工作,所以放在外面。放在外面中断后就会重新开始。

image.png

以上就是看门狗在产品里面发挥的真正价值,所以把看门狗事情放在基础课程,它是保障正常运行的重要手段。

相关文章
|
4月前
|
缓存 负载均衡 Linux
内核:进程与调度机制(笔记)
内核:进程与调度机制(笔记)
62 0
|
8月前
|
消息中间件 监控 算法
深入理解Linux进程管理与优化:原理、调度和资源控制详解
深入理解Linux进程管理与优化:原理、调度和资源控制详解
117 0
|
2月前
|
存储 调度
进程的奥德赛:并发世界中的核心概念与动态管理
进程的奥德赛:并发世界中的核心概念与动态管理
38 2
|
2月前
|
消息中间件 存储 缓存
概述Linux进程间通信模式
【2月更文挑战第14天】
|
4月前
|
消息中间件 算法 调度
轻松掌握“裸机”任务调度——使用环形缓冲区、状态机和定时器打造完美方案!
轻松掌握“裸机”任务调度——使用环形缓冲区、状态机和定时器打造完美方案!
|
10月前
|
Java Linux API
中断-处理程序架构
中断-处理程序架构
101 0
|
5月前
|
监控 安全 Windows
4.3 Windows驱动开发:监控进程与线程对象操作
在内核中,可以使用`ObRegisterCallbacks`这个内核回调函数来实现监控进程和线程对象操作。通过注册一个`OB_CALLBACK_REGISTRATION`回调结构体,可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型,还有一个`Altitude`字段,用于指定回调函数的优先级。优先级越高的回调函数会先被调用,如果某个回调函数返回了一个非NULL值,后续的回调函数就不会被调用。当有进程或线程对象创建、删除、复制或重命名时,内核会调用注册的回调函数。回调函数可以访问被监控对象的信息,如句柄、进程ID等,并可以采取相应的操作,如打印日志、记录信息等。
32 0
4.3 Windows驱动开发:监控进程与线程对象操作
|
7月前
|
存储 算法 Linux
《Linux操作系统编程》第二章 进程运行与调度: 了解进程的定义与特征、进程的状态与切换、进程管理的数据结构、进程的创建与终止、阻塞与唤醒、挂起与激活以及处理机调度的相关概念
《Linux操作系统编程》第二章 进程运行与调度: 了解进程的定义与特征、进程的状态与切换、进程管理的数据结构、进程的创建与终止、阻塞与唤醒、挂起与激活以及处理机调度的相关概念
136 0
|
11月前
|
缓存 算法 Linux
程序绑定 CPU 核心
程序绑定 CPU 核心
382 0
|
算法 调度
【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)
【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)
【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)

热门文章

最新文章

相关实验场景

更多