一.前言 benchmark 即基准测试.通常操作系统主要服务于应用程序,其运行也是需要一定cpu资源的,一般来说操作系统提供服务一定要快,否则会影响应用程序的运行效率,尤其是实时操作系统.所以本文针对操作系统来做一些基准测试,看看在低端x86平台上,xenomai提供我们平时常用的服务所需要的时间,清楚地了解该平台上一些xenomai服务的消耗,有时能有利于我们进一步优化程序.影响因素有:主机CPU的结构.指令集以及CPU特性.运算速度等. 目前大多商业实时操作系统会提供详细benchmark…
一:内核中断 linux内核中的看门狗中断跟之前的裸板的中断差不多,在编写驱动之前,需要线把内核自带的watch dog模块裁剪掉,要不然会出现错误:在Device Drivers /Watchdog Timer Support /S3C2410 Watchdo 在内核中,我们处理一个中断,必须先注册一个中断号,注册中断的函数是: request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const cha…
版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 一.概要 二.环境准备 1.1 安装内核编译工具 1.2 准备内核及补丁文件 三.内核安装流程 3.1 打ipipe补丁 3.2 添加xenomai内核 3.3 xenomai 内核配置 3.4 内核编译与安装 a) 编译构建xenomai内核debian安装包 b) 分步编译内核并安装 四.安装xenomai库 4.1 编译安装实时库libc…
Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog程序.内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信.用户空间程序一旦打开 /dev/watchdog 设备(俗称“开门放狗”),就会导致在内核中启动一个1分钟的定时器(系统默认时间),此后,用户空间程序需要保证在1分钟之内向这个设备写入数据(俗称“定期喂狗”),每次写操作会导致重新设定定时器.如果用户空间…
Intro 当我们编写服务器代码时,为了让自己的服务器在意外崩溃时能够及时的重启,软件看门狗就显示出它的作用了,该看门狗进程是通过fork一个子进程(业务进程),父进程一旦捕获到了子进程的结束信号就重新再fork一个子进程来实现的,下面将完整代码贴上. /************************************************ * 该例程讲解Linux软件看门狗的优雅编写方法 * * 编写WatchDog有很多种方式: * a.一个WatchDog.sh脚本程序 * b.…
  Linux内核有集成WD的选项.将其使能后,系统里就会有watchdog的设备驱动:/dev/watchdog.这样,在应用程序里只需打开这个设备使用即可:#include <fcntl.h>void main(void){    int fdWD;    char chrTmp; fdWD = open("/dev/watchdog", O_RDWR); //设备一打开,看门狗也就出洞了.    for(;;)    {        write(fdWD, &…
iTOP-iMX6UL开发板看门狗测试例程,iTOP-iMX6UL 开发板的看门狗驱动默认已经配置,可以直接使用测试例程. 版本 V1.1:1.格式修改:2.例程修改完善,其中增加喂狗代码.1 看门狗内核驱动看门狗的驱动已经默认配置,iMX6UL 的 watchdog 看门狗驱动源码是“drivers/watchdog/watchdog.c”.如下图所示,选择“Device Drivers --->”,输入回车. 如下图所示,在“Device Drivers --->”下,选择“Watchdo…
最近在SEGGER的博客上看到一篇有关在实时操作系统使用看门狗的文章.从一个失败的太空项目出发,分析了看门狗的作用及使用,自我感觉很有启发,特此翻译此文并推荐给各位同仁.为了阅读方便,有些航天领域名词本人添加了注释,读者也可自行搜索更详细的解释.当然限于个人水平,有不当之处恳请指正.大家也可以看原文:https://blog.segger.com/using-a-watchdog-in-a-multi-task-rtos-environment/.作者为Til Stork,其全文如下: Clem…
版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100.如有错误,欢迎指正. @ 目录 1. 前言 2. linux终端输出 3. 常见的NRT IO输出方案 3.1 一种实现方式 3.3 改进 3. Xenomai3 printf()接口 3.1 应用运行前环境初始化 1. GCC特定语法 2. libcobalt printf初始化流程 3.2 libcobalt printf内存管理 1. print_buffer 2. entr…
正文一.概述一些重要的程序,必须让它一直跑着:而且还要时时关心它的状态——不能让它出现死锁现象.当然,如果一个主程序会出现死锁,肯定是设计或者编程上的失误.我们首要做的事是,把这个Bug揪出来.但如果时间紧迫,这个Bug又“飘忽不定”,那么,我们还是先写一个软件“看门狗”,暂时应一下急吧. “看门狗”的需求描述:“看门狗”的运行不出现界面窗口,具有一定的隐蔽性:定时判断目标进程是否运行在当前系统中,如果没有则启动目标进程:判断目标进程是否“没有响应”,如果是则终止目标进程:如果目标进程“没有响应…