【RTOS】基于RTOS的嵌入式系统看门狗策略
RTOS - high integrity systems
看门狗策略
Watchdog Strategies for RTOS enabled embedded systems
介绍
看门狗定时器就是一个电子定时器,用于嵌入式系统错误检查和从错误中恢复,看门狗定时器的基本原理简单而有效,在一个指定的时间周期里,系统需要通知看门狗以使其继续工作,要是看门狗没有接收到这个通知,看门狗就认为系统发生了故障并将系统设定为已知状态。通常这个已知状态就是复位处理器,但对于更复杂的系统看门狗必须执行一系列操作以使系统处于一个安全状态。处理器一般都自带看门狗组件,但为了安全更原理使用独立的看门狗组件。
嵌入式软件开发面临的一项挑战是决定何时喂狗,在抢占式RTOS系统中变得更复杂,因为软件被分解为多个独立运行的任务,开发者需要仔细考虑系统的架构。
看门狗保护基础
在简单的系统中,开发者选择一个周期性的任务在要求的频率下喂狗即可,定时喂狗以保证系统正常运行。完整系统中发生故障或是喂狗失败导致看门狗超时,会将系统置于安全状态。但在系统发生故障时,喂狗任务正常运行,而关键性任务执行异常,则看门狗无法将系统至于一个安全状态。
增强系统可靠性
简单系统的改进建议是,在看门狗计时周期内系统的所有任务均处于活动状态才进行喂狗,这种机制需要将所有任务注册到监控任务,以保证任务正常运行时通知监控任务,监控任务被触发运行时,将检查所有的注册任务在最近一次的看门狗周期内的工作状态,工作正常则喂狗以保证系统继续运行。

先进的任务监控
WITTENSTEIN的组件SAFECheckpoints提供高级的任务监控能力,确保任务调度按预期进行。Checkpoints机制允许用户指定临界段代码的时间容差 ,以确保如下几项工作:
- 周期性任务在容差范围内运行
- 处理部分在任务内完成
- ISR执行的处理任务在允许范围内完成
- 涉及多个任务的复杂功能在允许范围内完成
Checkpoints可以指定他们的回调函数,也可以激活系统错误的钩子函数
- 可创建单次和周期性的Checkpoints
- 周期性Checkpoints可以工作在固定或相对定时模式下
看门狗做任务监控
为了管理任务以高于或低于喂狗频率工作,设计者需要一个涉及所有任务的时间配置文件,在每次喂狗时监控任务将确认只有预期的调度任务激活。当然任务正常运行并不意味着系统正常运行,还需要监控关键代码段及其所在任务。
为了完成对事件的时间监控,需要额外监控中断服务程序的响应时间,监控任务必须要测量出耗费处理器的真实时长,测量范围是中断服务程序被触发到执行完成
通过监控单个任务的时间配置文件、关键代码段以及ISR响应时间,设计者将得到一个高可靠的工作的很好的喂狗机制,当然这对监控任务提出了更复杂的要求。

【RTOS】基于RTOS的嵌入式系统看门狗策略的更多相关文章
- 痞子衡嵌入式:聊聊系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响. 软件看门狗模块(WDOG)在 MCU 应用里可以说是非常基础的功能模 ...
- [看门狗]基于Linux的嵌入式系统全程喂狗策略
转自:http://blog.csdn.net/erickhuang1989/article/details/8721548 在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路. ...
- 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)
Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM: 128 MiBCheck spi flash c ...
- WINCE平台下C#应用程序中使用看门狗
看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让 ...
- 基于W5500的嵌入式SNMP代理端实现
一 实验背景 近期一个做焊接设备的朋友想在焊机上加入监控的新功能,实时获取焊机的温度.功耗等參数,还可简单控制,实现对集群焊接设备的网络化管理.而这个朋友不想在开发管理系统上花太多精力,想找一个 ...
- at91 看门狗
看 门狗的驱动一般来说比较简单,只要做寄存器的设置实现开启.关闭.喂狗功能.本项目中我们使用的是at91sam9g45处理器,带有看门狗定时器.这个 看门狗的驱动却比较复杂,应用层想用它的话,将涉及到 ...
- 在多任务(RTOS)环境中使用看门狗
最近在SEGGER的博客上看到一篇有关在实时操作系统使用看门狗的文章.从一个失败的太空项目出发,分析了看门狗的作用及使用,自我感觉很有启发,特此翻译此文并推荐给各位同仁.为了阅读方便,有些航天领域名词 ...
- 基于S3C2440的嵌入式Linux驱动——看门狗(watchdog)驱动解读
本文将介绍看门狗驱动的实现. 目标平台:TQ2440 CPU:s3c2440 内核版本:2.6.30 1. 看门狗概述 看门狗其实就是一个定时器,当该定时器溢出前必须对看门狗进行"喂狗“,如 ...
- 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统
大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...
- 单片机成长之路(51基础篇) - 026 基于stm89c52之单片机看门狗
基于stc89c52的看门狗,代码如下: main.c #include "stc89c5x_Quick_configuration.h" // 自定义头文件 #include & ...
随机推荐
- 从零玩转设计模式之外观模式-waiguanmos
title: 从零玩转设计模式之外观模式 date: 2022-12-12 15:49:05.322 updated: 2022-12-23 15:34:40.394 url: https://www ...
- Programming Abstractions in C阅读笔记:p246-p247
<Programming Abstractions in C>学习第68天,p246-p247总结,总计2页. 一.技术总结 本章通过"the game of nim(尼姆游戏) ...
- [Python急救站]含义GUI的学生管理系统
这个管理系统是含有GUI界面的学生管理系统,比较方便. import tkinter as tk class Student: def __init__(self, name, student_id, ...
- 记一次uboot编译/经验/教训
记一次uboot编译/经验/教训 - 最近学习uboot移植有关的知识,在了解原理后自己编译uboot,但是出现了好多各式各样的错误,最后换了几次系统环境之后才找到错误来源 1.准备源码与交叉编译工具 ...
- 详解MRS HBase全局二级索引
本文分享自华为云社区<MRS HBase全局二级索引原理与使用场景>,作者:学习一下大数据 . 一.HBase二级索引背景介绍 HBase是基于Key-Value的分布式存储数据库,对表中 ...
- 昇腾CANN DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶
本文分享自华为云社区<昇腾CANN 7.0 黑科技:DVPP硬件加速训练数据预处理,友好解决Host CPU预处理瓶颈>,作者: 昇腾CANN . 随着人工智能的快速发展,越来越多的应用场 ...
- 小白必看!JS中循环语句大集合
摘要:JavaScript中,一共给开发者提供了一下几种循环语句,分别是while循环,do-while循环,for循环,for Each,for-in循环和for-of循环. 本文分享自华为云社区& ...
- 云小课|3种常用Git工作流推荐
本文分享自华为云社区<[云小课]应用平台第44课 常用Git工作流推荐>,作者: 应用万花筒. . 1. Git工作流-动静有法 简单来说,工作流就是开发团队预置的开发流程和解决问题时使用 ...
- 一文讲述G6实现流程图绘制的常用方法
摘要:G6 是一个图可视化引擎.它提供了图的绘制.布局.分析.交互.动画等图可视化的基础能力. 本文分享自华为云社区<会用这些的api,轻松绘制流程图--antv.g6流程图入门>,作者: ...
- 看火山引擎DataLeap如何做好电商治理(一):挑战与痛点
现在人们的日常生活中,网购已经成为人们生活中不可或缺的购物形式.根据中国电子商会发布的<中国社交电商行业发展白皮书(2022)>的数据显示,2022年社交电商市场交易规模达到28542.8 ...