http://www.rt-thread.org/官网

RT-Thread RTOS,由国内一些专业开发人员开发、维护。它不仅仅是一款 高效、稳定的实时操作系统内核,也是一套面向嵌入式系统的软件平台,覆盖了:

  • 全抢占的实时操作系统内核
  • 小巧而与底层具体实现无关的文件系统
  • 轻型的TCP/IP协 议栈
  • 命令即C语言的shell命令行
  • 轻型的多窗口多线程图形用户界面。

目前RT-Thread RTOS在国内已经有十多家企业在使用,从数据采集、数据监控到机械控制,从ARM7芯片到STM32、LM3S等的Cortex-M3芯片,从实时内核、文件系统、shell命令行到轻型TCP/IP网络协议栈,RT-Thread RTOS被证明是一款可用于产品并稳定运行的嵌入式实时操作系统。

 
RT-Thread 结构
 
 
 

实时操作系统核心

 
 

RT-Thread实时操作系统核心是一个高效的硬实时核心,它具备非常优异的实时性、稳定性、可剪裁性。最小可以到3k ROM占用、1k RAM占用。

  • 内核对象系统
  • 实时线程操作系统内部采用面向对象的方式设计,内建内核对象管理系统,能够访问/管理所有内核对象。内核对象包含了内核中绝大部分设施,而这些内核对象可 以是静态分配的静态对象,也可以是从系统内存堆中分配的动态对象。通过内核对象系统,RT-Thread可以做到不依赖于具体的内存分配方式,伸缩性得到 极大的加强。
  • 任务/线程调度
    支持以线程为基本调度单位的多任务系统。调度算法是基于优先级的全抢占式线程调度,支持256个线程优先级(亦可配置成32个线程优先级),0优先级代表 最高优先级,255优先级留给空闲线程使用;相同优先级上支持多个线程,这些相同优先级的线程采用可设置时间片长度的时间片轮转调度;调度器寻找下一个最 高优先级就绪线程的时间是恒定的(O(1))。系统不限制线程数量的多少,只与物理平台的具体内存相关。
  • 同步机制
    系统支持semaphore,mutex等线程间同步机制。mutex采用优先级继存方式以防止优先级翻转。semaphore释放动作可安全用于中断服 务例程中。同步机制支持线程按优先级等待或按先进先出方式获取信号量或互斥锁。
  • 通信机制
    系统支持event,mailbox,message queue通信机制等。event支持多事件"或触发"及"与触发",适合于线程等待多个事件情况。mailbox中一个mail的长度固定为4字节,效 率较messagequeu高。通信设施中的发送动作可安全用于中断服务例程中。通信机制支持线程按优先级等待或按先进先出方式获取。
  • 时钟,定时器
    系统默认使用时钟节拍来完成同优先级任务的时间片轮转调度;线程对内核对象的时间敏感性是通过系统定时器来实现的;定时器又分成了硬定时器和软定时器,一 次定时及周期性定时。
  • 内存管理
    系统支持静态内存池管理及动态内存堆管理。从静态内存池中获取/释放内存块时间恒定,而当内存池空时,可根据申请线程请求把申请线程挂起、立刻返回、或等 待一段时间仍未获得返回。当其他线程释内存块到内存池时,将把挂起的线程唤醒。对于系统内存紧张的系统,RT-Thread也提供了小型的伙伴内存管理算 法。而对于拥有大一些内存的嵌入式系统,RT-Thread提供了性能非常高效的SLAB内存管理系统。
  • 诊断
    通过系统提供的FinSH shell系统,能够查看到线程,信号量,互斥锁,事件,邮箱,消息队列的运行情况,以及各个线程的栈使用情况。
 
技术指标

基本内核配置资源占用情况: 13344字节 ROM,1800字节 RAM 简化版资源占用情况: 2.5K ROM,1K RAM 线程上下文切换时间(在72MHz的STM32上采用逻辑分析仪测得的结果):挂起操作引起线程上下文切换:4.25 μs 信号量引起线程上下文切换:7.25 μs 邮箱引起线程上下文切换:8.63 μs

 
 
 

RTT操作系统的更多相关文章

  1. VxWorks操作系统shell命令与调试方法总结

    VxWorks下的调试手段 主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤.思路. 1         Tornado的调试工具 嵌入式实时操作系统VxWorks和集成开发 ...

  2. kali 2.0 linux中的Nmap的操作系统扫描功能

    不多说,直接上干货! 可以使用-O选项,让Nmap对目标的操作系统进行识别. msf > nmap -O 202.193.58.13 [*] exec: nmap -O 202.193.58.1 ...

  3. 【原创】xenomai3.1+linux构建linux实时操作系统-基于X86_64和arm

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 一.概要 二.环境准备 1.1 安装内核编译工 ...

  4. Linux操作系统相关资料

    玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...

  5. pxe+kickstart部署多个版本的Linux操作系统(下)---实践篇

        我们在企业运维环境中,难免会遇到使用多个Linux操作系统的情况,如果每天都需要安装不同版本的Linux系统的话,那么使用Kickstart只能安装一种版本的Linux系统的方法则显得有些捉襟 ...

  6. 操作系统篇-调用门与特权级(CPL、DPL和RPL)

    || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...

  7. 操作系统篇-分段机制与GDT|LDT

    || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言     在<操作系统篇-浅谈实模式与保护模式>中提到了两种模式,我们说在操作系统中,其实大部分时间是待在保护模式中的. ...

  8. 操作系统篇-hello world(免系统运行程序)

     || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言     今天起开始分享关于操作系统的相关知识,本人也是菜鸟一个,正处于学习阶段,这整个操作系统篇也是我边学习边总结的一些结果,希 ...

  9. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

随机推荐

  1. 对github中项目进行更新

    进入本地仓库文件夹,我的仓库名是tufujiegit,然后 进入 git  clone  接着将先前记录下来的地址复制到后面,回车 将下载github中该仓库的所有文件及文件夹,包括.git文件夹在内 ...

  2. 转载:C++ STL set学习

    声明:本文转载自Penguin的博客 http://blog.sina.com.cn/s/blog_779cf3410101389s.html 1,set的含义是集合,它是一个有序的容器,里面的元素都 ...

  3. bzoj4011

    好题,首先有一个结论,有向无环图的树形图数目=根节点意外入度之积 现在相当于在原图上加一条边问树形图的数目 考虑多出来不合法的方案,一定是成环且包含新加入的边 对于一条路贡献就是∏d[i] [i∉pa ...

  4. Ajax、Comet与Websocket

    从 http 协议说起 1996年IETF  HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式 ...

  5. SJ9012: IE6 IE7 不支持 JSON 对象

    标准参考 JSON 是一种数据交换格式,RFC 4627 对 JSON 进行了详细描述. 根据 ECMA-262(ECMAScript)第 5 版中描述,JSON 是一个包含了函数 parse 和 s ...

  6. Java Web编程的主要组件技术——Struts的高级功能

    参考书籍:<J2EE开源编程精要15讲> Struts对国际化的支持 "国际化"(I18N)指一个应用程序在运行时能根据客户端请求所来的国家/地区.语言的不同显示不同的 ...

  7. hdu 4614 Vases and Flowers(线段树:成段更新)

    线段树裸题.自己写复杂了,准确说是没想清楚就敲了. 先是建点为已插花之和,其实和未插花是一个道理,可是开始是小绕,后来滚雪球了,跪了. 重新建图,分解询问1为:找出真正插画的开始点和终止点,做成段更新 ...

  8. 监听某个div或其它标签的大小改变来执行相应的处理

    jquery 默认的resize只能监听到浏览器窗口大小的改变,但我们在实际使用过程中有可能还需要监听某个div或其它标签的大小改变来执行相应的处理,如果使用默认的resize就无能为力了.怎么办呢, ...

  9. Woobuntu woobuntu_build.sh hacking

    # Woobuntu woobuntu_build.sh hacking # 说明: # 有时候因为一些需求,我们需要定制一些系统,包括Ubuntu系统,于是 # 我们自然需要知道如何去解包一个Ubu ...

  10. 【DFS】NYOJ-325-zb的生日

    [题目链接:NYOJ-325] 一道以我名字命名的题目,难道要我生日的时候再A? 思路:依旧深搜,但这个问题应该有一个专有名词吧,看别的博客说是 “容量为 sum/2 的背包问题”,不懂... // ...