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

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

开发者学堂课程【嵌入式之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

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

相关文章
|
6月前
|
缓存 负载均衡 Linux
内核:进程与调度机制(笔记)
内核:进程与调度机制(笔记)
127 0
|
消息中间件 监控 算法
深入理解Linux进程管理与优化:原理、调度和资源控制详解
深入理解Linux进程管理与优化:原理、调度和资源控制详解
276 0
|
6月前
|
算法 调度
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
【操作系统】处理机调度的基本概念和三个层次、进程调度的时机和方式、调度器、闲逛线程
529 3
【STM32】详解独立看门狗的本质和使用步骤&代码
【STM32】详解独立看门狗的本质和使用步骤&代码
|
6月前
|
存储 调度
进程的奥德赛:并发世界中的核心概念与动态管理
进程的奥德赛:并发世界中的核心概念与动态管理
70 2
|
6月前
|
消息中间件 监控 安全
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
997 0
|
6月前
|
API
FreeRTOS软件定时器的原理以及使用实例
FreeRTOS软件定时器的原理以及使用实例
142 0
|
6月前
|
存储 API 调度
FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
301 0
|
负载均衡 网络协议 NoSQL
Envoy架构概览(10):热启动,动态配置,初始化,排水,脚本
Envoy架构概览(10):热启动,动态配置,初始化,排水,脚本
|
算法 调度
【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)
【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)
【操作系统篇】第五篇——调度(概念,层次,调度时机,切换与过程,方式,评价指标)