RTOS - high integrity systems

看门狗策略

Watchdog Strategies for RTOS enabled embedded systems

介绍

看门狗定时器就是一个电子定时器,用于嵌入式系统错误检查和从错误中恢复,看门狗定时器的基本原理简单而有效,在一个指定的时间周期里,系统需要通知看门狗以使其继续工作,要是看门狗没有接收到这个通知,看门狗就认为系统发生了故障并将系统设定为已知状态。通常这个已知状态就是复位处理器,但对于更复杂的系统看门狗必须执行一系列操作以使系统处于一个安全状态。处理器一般都自带看门狗组件,但为了安全更原理使用独立的看门狗组件。

嵌入式软件开发面临的一项挑战是决定何时喂狗,在抢占式RTOS系统中变得更复杂,因为软件被分解为多个独立运行的任务,开发者需要仔细考虑系统的架构。

看门狗保护基础

在简单的系统中,开发者选择一个周期性的任务在要求的频率下喂狗即可,定时喂狗以保证系统正常运行。完整系统中发生故障或是喂狗失败导致看门狗超时,会将系统置于安全状态。但在系统发生故障时,喂狗任务正常运行,而关键性任务执行异常,则看门狗无法将系统至于一个安全状态。

增强系统可靠性

简单系统的改进建议是,在看门狗计时周期内系统的所有任务均处于活动状态才进行喂狗,这种机制需要将所有任务注册到监控任务,以保证任务正常运行时通知监控任务,监控任务被触发运行时,将检查所有的注册任务在最近一次的看门狗周期内的工作状态,工作正常则喂狗以保证系统继续运行。

先进的任务监控

WITTENSTEIN的组件SAFECheckpoints提供高级的任务监控能力,确保任务调度按预期进行。Checkpoints机制允许用户指定临界段代码的时间容差 ,以确保如下几项工作:

  • 周期性任务在容差范围内运行
  • 处理部分在任务内完成
  • ISR执行的处理任务在允许范围内完成
  • 涉及多个任务的复杂功能在允许范围内完成

Checkpoints可以指定他们的回调函数,也可以激活系统错误的钩子函数

  • 可创建单次和周期性的Checkpoints
  • 周期性Checkpoints可以工作在固定或相对定时模式下

看门狗做任务监控

为了管理任务以高于或低于喂狗频率工作,设计者需要一个涉及所有任务的时间配置文件,在每次喂狗时监控任务将确认只有预期的调度任务激活。当然任务正常运行并不意味着系统正常运行,还需要监控关键代码段及其所在任务。

为了完成对事件的时间监控,需要额外监控中断服务程序的响应时间,监控任务必须要测量出耗费处理器的真实时长,测量范围是中断服务程序被触发到执行完成

通过监控单个任务的时间配置文件、关键代码段以及ISR响应时间,设计者将得到一个高可靠的工作的很好的喂狗机制,当然这对监控任务提出了更复杂的要求。

【RTOS】基于RTOS的嵌入式系统看门狗策略的更多相关文章

  1. 痞子衡嵌入式:聊聊系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响. 软件看门狗模块(WDOG)在 MCU 应用里可以说是非常基础的功能模 ...

  2. [看门狗]基于Linux的嵌入式系统全程喂狗策略

    转自:http://blog.csdn.net/erickhuang1989/article/details/8721548 在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路. ...

  3. 嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)

    Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash c ...

  4. WINCE平台下C#应用程序中使用看门狗

    看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让 ...

  5. 基于W5500的嵌入式SNMP代理端实现

     一 实验背景 近期一个做焊接设备的朋友想在焊机上加入监控的新功能,实时获取焊机的温度.功耗等參数,还可简单控制,实现对集群焊接设备的网络化管理.而这个朋友不想在开发管理系统上花太多精力,想找一个 ...

  6. at91 看门狗

    看 门狗的驱动一般来说比较简单,只要做寄存器的设置实现开启.关闭.喂狗功能.本项目中我们使用的是at91sam9g45处理器,带有看门狗定时器.这个 看门狗的驱动却比较复杂,应用层想用它的话,将涉及到 ...

  7. 在多任务(RTOS)环境中使用看门狗

    最近在SEGGER的博客上看到一篇有关在实时操作系统使用看门狗的文章.从一个失败的太空项目出发,分析了看门狗的作用及使用,自我感觉很有启发,特此翻译此文并推荐给各位同仁.为了阅读方便,有些航天领域名词 ...

  8. 基于S3C2440的嵌入式Linux驱动——看门狗(watchdog)驱动解读

    本文将介绍看门狗驱动的实现. 目标平台:TQ2440 CPU:s3c2440 内核版本:2.6.30 1. 看门狗概述 看门狗其实就是一个定时器,当该定时器溢出前必须对看门狗进行"喂狗“,如 ...

  9. 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统

    大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...

  10. 单片机成长之路(51基础篇) - 026 基于stm89c52之单片机看门狗

    基于stc89c52的看门狗,代码如下: main.c #include "stc89c5x_Quick_configuration.h" // 自定义头文件 #include & ...

随机推荐

  1. tarjan无向图割点与割边板子

    \(\Huge{割点}\) \(无向图割点判定法则\) 当遍历到一个点x时,这个点为割点的情况有两种: 第一种是该节点为根节点且子节点数>=2,必导致两个子节点不连通: 第二种是该节点不为根节点 ...

  2. rust 过程宏

    简介 Rust 编程语言里面有两种宏系统,一种是声明宏(Declarative Macros),另一种为过程宏(Procedural Macros).声明宏和过程宏是两种基本上完全不一样的宏系统,编写 ...

  3. [转]NLog学习笔记

    配置文件 NLog所有的配置信息都可以写到一个单独的xml文件中,也可以在程序代码中进行配置. 配置文件位置 启动的时候,NLog会试图查找配置文件完成自动配置,查找的文件依次如下(找到配置信息则结束 ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (169)-- 算法导论13.2 2题

    二.用go语言,证明:在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1种可能的旋转. 文心一言: 要证明在任何一棵有 n 个结点的二叉搜索树中,恰有 n-1 种可能的旋转,我们可以按照以下步骤逐步 ...

  5. Python——第五章:logging模块

    logging 模块是 Python 中用于记录日志的官方模块.通过 logging 模块,你可以配置和管理日志的生成.处理和存储. logging.basicConfig()用法 filename: ...

  6. ubuntu 20.0.4 LTS 配置国内apt-get源

    https://blog.csdn.net/wangyijieonline/article/details/105360138 更换阿里源 要知道当前系统的代号,可以用以下命令: lsb_releas ...

  7. Shiro-550反序列化漏洞(CVE-2016-4437)复现

    本文章使用Shiro_exploit此工具复现,靶机环境为vulhub 项目地址: https://github.com/insightglacier/Shiro_exploit https://gi ...

  8. cookie的一些知识点总结

    一.cookie的种类 sessionID 这个ID是会话性的,只要关闭了当前浏览器,这个ID会消失,需要调用getSessoin重新获取一个新的session 会话性cookie 这个cookie也 ...

  9. Flutter Getx 中的Dialog 以及改变主题

    设置应用程序入口 当我们导入依赖后,在应用程序顶层把 GetMaterialApp 作为顶层,如下所示 import 'package:flutter/material.dart'; import ' ...

  10. 云小课|使用SpringBoot快速构建FunctionGraph HTTP函数

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:本篇云小课主要指导 ...