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. X2加密的PcbDoc类型导出内容有误,不加密的PcbDoc导出的表格正常

    出现该类问题说明读取PcbDoc文件文件出了文件,加密类型添加tmp类型即可

  2. flutter常用的设计模式

    单例模式(Singleton Pattern): 确保一个类只有一个实例,并提供一个全局访问点. 工厂模式(Factory Pattern): 定义一个创建对象的接口,但让子类决定具体实例化哪个类:常 ...

  3. 常用的 SQL

    只知道字段名字查找表 SELECT table_name FROM information_schema.columns WHERE column_name = '字段名'; 查看不等于NULL的数据 ...

  4. 神经网络入门篇:深度学习和大脑的关联性(What does this have to do with the brain?)

    深度学习和大脑的关联性 开始讲故事(手动狗头) 深度学习和大脑有什么关联性吗? 关联不大. 那么为什么会说深度学习和大脑相关呢? 当你在实现一个神经网络的时候,那些公式是你在做的东西,你会做前向传播. ...

  5. 让数据库无惧灾难,华为云GaussDB同城双集群高可用方案正式发布!

    摘要:在华为全联接2021期间,华为云GaussDB(for openGauss)正式推出重大内核新特性--同城双集群高可用方案,提供金融级高可用服务,支持RPO=0 .RTO<60s的同城双集 ...

  6. 物联网企业该如何与华为云合作,这份FAQ值得一看

    摘要:关于华为云DevRun智联生活行业加速器,梳理出伙伴和企业最关心的问题,并逐一解答. 自华为云DevRun智联生活行业加速器发布以来,一直在为产业链上下游的企业提供技术.生态建设.商业变现等资源 ...

  7. vue2升级vue3:class component的遗憾

    在vue2,class 写法真的非常爽 import { Component as tsc } from 'vue-tsx-support'; import { Component, Watch }  ...

  8. 火山引擎DataTester:跨境电商网站,如何快速实施AB测试 ?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   如今中企出海的形态愈加多样,很多企业都建有独立站可直接触达海外客户,但获取优质流量的成本会更加高昂.当优质流量 ...

  9. Solon 开发调试时能热更新吗?

    1.调试模式 开启"调试模式"后,支持动态模板文件.静态资源文件可以实现动态更新.增加启动参数即可开启: --debug=1 使用 solon-test 进行单元测试时,会自动添加 ...

  10. Vue 多环境配置

    没有使用 package.json 进行配置 ,改配置时不需要重新打包 Vue 多环境配置 package.json settings.js window.environment="dev& ...