产品资料 DOC

基于STM32,FreeRTOS,实现硬件看门狗+软件看门狗监控多任务的想法

作者> strongHuang WeChat官方帐户|“嵌入式”列这是旧文章。技术交流小组的某人正在讨论此问题。
今天就分享吧。我们都知道硬件监视程序的用途:它用于监视系统,防止系统崩溃以及在发生崩溃时重置并重新启动系统。
在RTOS操作系统中,如果有许多任务(线程),高优先级任务长时间占用CPU资源,而低优先级任务不能长时间执行,则我们的系统是“错误”的。系统。
。如上所述,如果我们的线程没有崩溃,则长时间不能执行。
在这种异常情况下,我们不希望系统重置,而只希望执行特定的代码。我们如何避免这个问题?嵌入式列1关于看门狗硬件看门狗:使用计时器计数电路,其计时输出连接到电路的复位端子,并且程序“喂狗”将被输入到监视器。
在一定时间范围内的时间。因此,当程序正常工作时,计时器将永远不会溢出,也不会产生复位信号。
如果程序失败并且在定时时间内没有喂狗,它将导致看门狗定时器溢出并产生复位信号并重新启动系统。在STM32中,有两个看门狗:独立看门狗和窗口看门狗。
原理和功能相似,但应用场景不同。软件看门狗:软件看门狗的原理类似于硬件看门狗的原理。
它们都定期喂入(在时间溢出内)。只是通过计算自己的设计就可以实现软件喂狗的方式。
嵌入式专栏2硬件+软件看门狗监视多任务的原理1.使用监视线程(自我)监视其他线程; 2.使用硬件看门狗进行自我监视。如图所示:如果系统中有多个应用程序线程(如上所示),我将使用一个监视线程(自身)来监视其他多个应用程序线程。
同时,为了防止其自己的线程异常,使用了硬件看门狗进行自我监视。这样,可以实现双重监视的作用。
嵌入式第3章结合软件的原理对于某些人,上一节中提到的原理可能更抽象。然后,让我们看一下本节中的代码:监视线程(自身):简而言之:在监视线程(自身)中,需要提供硬件看门狗。
软件看门狗的作用:这是对齐计数,无论浏览是否溢出,我都将其封装到浏览功能中。狗的特定进食是在其他每个受监视线程中进行的。
然后,让我们看一下将看门狗喂到应用程序线程之一的软件看门狗的代码:这只是一个简单的示例,看门狗在主线程中喂狗。等效于:线程开始后,我需要定期喂狗。
如果很长时间没有在这里喂狗,那么监视线程(本身)会发现您没有在喂狗。嵌入式专栏4简短的答案实现方法看到这一点,我相信每个人都知道原理。
具体实现方法很多,可以根据实际项目需求添加相应的接口。这里有些例子。
定义数据结构:这是一个实现最基本事物的示例,例如计数器,最大超时值等。注册接口功能:监视和浏览功能接口:上面只是教您方法,具体实现,您可以根据自己的习惯和项目要求自定义开发。
免责声明:本文内容经21ic授权后发布,版权归原作者所有。该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。如有任何疑问,请与我们联系,谢谢!。

最新资讯

最新资讯

13510435585

服务热线:13510435585

联系电话:0797-4282799

公司邮箱:sales@tonevee.com

公司地址:江西省赣州市定南县良富工业区电子产业区5栋