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. MySQL运维16-双主双从读写分离

    一.双主双从架构介绍 在MySQL多主多从的架构配置中和双主双从是一样的,学会了双主双从的架构部署,多主多从的配置也同样就回了.下面以双主双从作为示例演示.其中一个主机maste1用于处理所有写请求, ...

  2. 开源MES/免费MES/开源mes 生产管理流程

    开源MES/免费MES/开源MES生产流程管理 一.什么是MES生产管理流程 生产管理系统(又称制造执行系统)是一种集成了计划.生产.质量控制.库存管理和材料申请等生产流程的管理系统.工厂生产管理流程 ...

  3. 若依vue启动报Error: error:0308010C:digital envelope routines::unsupported

    解决:若依vue启动报Error: error:0308010C:digital envelope routines::unsupported 1.描述: 问题产生原因是因为 node.js V17版 ...

  4. 微信小程序本地测试报错 IllegalArgumentException

    在微信小程序本地测试时出现 IllegalArgumentException 错误,解决方法将https换成http Note: further occurrences of HTTP request ...

  5. 3种依赖管理工具实现requirements.txt文件生成

    1.pip 实现方式   要使用 pip 生成 requirements.txt 文件,可以使用以下命令: pip freeze > requirements.txt   这个命令会将当前环境中 ...

  6. 基于LiteOS Studio零成本学习LiteOS物联网操作系统

    摘要:大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资.LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开 ...

  7. 华为云原生数据仓库GaussDB(DWS)深度技术解读:融、快、大、稳、易

    摘要:云原生数据仓库GaussDB(DWS)架构师应邀为大家解读数仓深度技术. "云原生"在2020年成为备受瞩目的热词,云原生在确保企业数字化转型中资源快速供给.按需使用的同时, ...

  8. 带你掌握如何使用CANN 算子ST测试工具msopst

    摘要:本期带您了解如何使用msopst工具. 本文分享自华为云社区<[CANN文档速递13期]算子ST测试工具[msopst]>,作者: 昇腾CANN . 如何获取msopst工具 mso ...

  9. IOS证书制作教程

    ​ 转载:IOS证书制作教程 点击苹果证书 按钮 ​ 编辑 点击新增 ​ 编辑 输入证书密码,名称 这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到, ...

  10. Solon2 开发之IoC,九、自定义注解开发汇总

    1.定义构建能力注解,比如@Controller 注解类: @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Docum ...