【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 & ...
随机推荐
- 华企盾DSC远程桌面、实时监控连接不上常见处理方法
1.检测策略是否勾选了远程桌面需要客户端确认或者勾选了客户端显示"允许远程维护"选项 2.检查客户端5097目录是否有MgrDll.dll.uvnserver.exe文件(是否被杀 ...
- 关于helloworld
我们的helloworld是从一个源程序开始的,该源程序由程序员通过编译器创建并保存的文件,文件名就是hello.c.这个hello.c的源程序,实际上是有0和1组成的序列.每一个0和1都成为一位,这 ...
- Centos 利用本地镜像安装yum源
前提 在"设置"中确保两点 1.勾选"已连接" 2.添加上本地的"centos.iso"镜像文件 切换到用户目录 cd / 新建一个iso目 ...
- Jenkins汉化配置
登录进入Jenkins首页 输入:本地ip+端口号(localhost:8099) 进入插件管理页面(Manage Jenkins)安装相关插件 搜索:到available栏目搜索:Locale pl ...
- Swagger系列:Spring Boot 2.x集成Spring Doc(Swagger 3.0)
目录 一.简介 1.SpringFox工具(不推荐) 2.SpringDoc工具(推荐) 二.集成 1.环境 1. 引入Maven依赖 2.配置SpringDocConfig(配置类方式) 3.配置S ...
- MySQL基础篇:第七章_详解mysql存储过程&函数
存储过程 含义:一组经过预先编译的sql语句的集合 好处: 1.提高了sql语句的重用性,减少了开发程序员的压力 2.提高了效率 3.减少了传输次数 分类: 1.无返回无参 2.仅仅带in类型,无返回 ...
- WebKit三件套(3):WebKit之Port篇
了解其有关Port方面的设计,从而了解究竟如何能移植WebKit到自己的应用中. WebKitPort方面的内容是可以很广的,例如可将不同的图形库.网络库与WebCore集成,提供不同的Port接口供 ...
- PLS-00103: 出现符号 ")"在需要下列之一时
执行 Oracle 存储过程时,出现 "PLS-00103: 出现符号 ")"在需要下列之一时:", Cause: java.sql.SQLException: ...
- SpringBoot Scheduled 常见用法
外部统一管理可用 xxl-job ,将各定时任务集中管理,灵活改变执行频率,支持某一个定时器集群处理,避免多服务启动时,每个服务都执行(重复执行) 比如我的API服务里有一个定时任务,将API做成集群 ...
- Bert不完全手册4. 绕开BERT的MASK策略?XLNET & ELECTRA
基于随机token MASK是Bert能实现双向上下文信息编码的核心.但是MASK策略本身存在一些问题 MASK的不一致性:MASK只在预训练任务中存在,在微调中不存在,Bert只是通过替换部分的随机 ...