微型嵌入式操作系统对比


 GPL(General Public License),即GNU通用公共许可证

1、     uCos-II(ucos ii):商业和GPL双许可。μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。

2、     FreeRtos:和ucos-ii有部分类似,移植更方便,有赶超uCos-II的趋势,GPL许可。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。当被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。FreeRTOS操作系统既有优点也存在不足。其不足之处,一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统,不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。

3、     eCos: GPL许可。eCos由Redhat推出的小型即时操作系统,最低编译核心可小至10K的级别,适合用于作bootloader增强,微小型系统。 此系统和嵌入式Linux系统的差异是他将操作系统做成静态连结(static library)的方式,让应用程式透过连结(linker)产生出具有操作系统的特性的应用程式。eCos最大的特点是模块化,内核可配置。如果说嵌入式Linux太庞大了,那么eCos可能就能够满足要求。它是一个针对16位、32位和64位处理器的可移植开放源代码的嵌入式RTOS。和嵌入式Linux不同,它是由专门设计嵌入式系统的工作组设计的。重要的是,eCos提供的Linux兼容的API能让开发人员轻松的将linux应用移植(这点和RTEMS很相似),与此同时,应用程序不用跑在Linux复杂的内核机制上(这套机制,对于大型服务器也许还凑合,但是对于短小精悍的嵌入式应用,太浪费了),大大节省了RAM的使用。

 

4、     TINYOS: GPL许可。TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。

5、     Salvo:商业和GPL双许可。针对microchip MCU设计的RTOS,非常小巧的RTOS。

6、     PicoOS: GPL许可。一个不错的RTOS,可惜现在基本没有维护了。

7、     QP:量子框架RTOS,信息待查阅(很小巧的操作系统,采用面向对像设计方法,和UML建模,又很在乎软件的可靠性、稳定性、可测试性、可维护性、可扩展性)。

8、     CoOS:商业和GPL双许可。免费并开源;ARM Cortex M3及M0定制操作系统; 高度可裁剪性,最小系统内核仅974Byte; 支持优先级抢占和时间片轮转; 自适应任务调度算法; 零中断延时时间; 堆栈溢出检测; 信号量、邮箱、队列、事件标志、互斥等同步通信方式;支持多种编译器:ICCARM、ARMCC、GCC。CoOS和UCOS两者从本质上是就不一样的,首先CoOS是专门针对Cortex M系列的芯片,其次,在实现上,CoOS摒弃了主流的实时内核(如UCOS)通过“开关中断”实现系统临界区的方案,转而自行设计一套系统锁来维护整个系统运行时对临界资源的独占访问,这样做无需通过开关中断来实现临界区,从而达到几乎零中断延时的效果。相比UCOS的优势在于CoOS是ARM Cortex M3及M0定制操作系统,在ARM Cortex M3及M0芯片的开发中,有以下优势:

1.实时性要好些,CoOS不用在临界代码时开关中断;

2.占用空间要小些,高度可裁剪性,最小系统内核仅974Byte;

3.功能上比UCOS多支持时间片轮转调度和可变长分区的内存管理;

4.CoOS有配套的集成开发环境,UCOS没有,目前已经支持jlink;

5.CoOS是免费开源的,而UCOS是需付费的;

 

PS: 还有下面一些如果也可以认为RTOS的话:aortos/BeeOS/Carbon/ChibiOS/emlib/ertos/HomeOS/HTC/ivmuk/LEJOS OSEK/nutx/radlib/SCMRTOS/small rtos/tirtos/uSmartX/XMK。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多相滤波器

前言 多相滤波器解决的是:多速率问题。 通过降采样、插值来改变信号的输出速率(主要利用Nyquist采样定理,保证不混叠),从而降低数据率,多相滤波器为这类操作提供了实现框架。在满足采样定理的前提下&#x…

RS232通信实验

RS232通信实验 1 通信的基本感念 2 F28335的SCI介绍 3 SCI配置步骤 4 硬件设计 5 软件设计 #include "uart.h"void UARTa_Init(Uint32 baud) {unsigned char scihbaud0;unsigned char scilbaud0;Uint16 scibaud0;scibaud37500000/(8*baud)…

贷款为什么要查看征信?

大家都是知道,绝大多数贷款机构在申请贷款的时候都是需要提供个人征信报告,那为什么申请贷款,需要查询个人征信报告呢?大家不要小看一张征信报告那么简单,其实它包含了借款人很多的信息,通过查看个人征信报告&#xf…

GPS NMEA 0183 4.10协议/GPS Linux串口驱动

NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式。现在已经成为GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。 下图为GYM-1010-B…

欠条和借条傻傻分不清?小心借出的钱要不回!

在民间接贷中,经常会涉及到两个名词,一个是借条,另一个是欠条,两者到底有什么关系,又有什么区别呢?其实欠条和借条有相同的地方,但是也有很大的区别,如果把两者混了,可能…

TCL基础知识

TCL基础知识 置换 TCL解释器运用规则把命令分成一个个独立的单词,同时进行必要的置换 TCL置换分为以下三类 变量置换 $ 命令置换 [] 反斜杠置换 \ 用 $ 表示变量置换 TCL解释器会将认为 $后面为变量名,将变量置换成它的值 用[]表示命令置换 []内是一…

ARM AMBA 外围设备 的datasheet

可以去网页地址在线浏览对应的datasheet: http://infocentre.arm.com/help/index.jsp?topic/com.arm.doc.set.primecell/index.html 也可以去其中的网址中,下载对应的pdf版本的datasheet: ------------------------------------------------…

芝麻信用很高,为什么贷款还是被拒了?

之前见过这样一个朋友,他的芝麻信用680以上,借呗额度是2万,但是去申请贷款的时候还是被拒了。看到这很多人可能觉得为什么芝麻信用这么高,贷款还是会被拒了呢?其实芝麻信用不能等同于个人信用,就目前情况来…

Synopsys TCL

Synopsys TCL TCL在EDA工具中的扩展与应用 通过对设计的案例的分析,了解和学习DC获取电路并进行解析的方法 综合软件当中TCL的常见指令 语法格式:get_ports portsName 指令功能:返回design中对应的ports object 语法格式:ge…

只有房子没有工作能贷款吗?

通常来说抵押贷款需要满足几个基本的条件,有可供抵押的房产,有稳定的工作和收入来源,信用良好,如果借人只有房产,没有工作一般是比较难贷到款的。原因是没有工作就没有收入来源,对还款就没有保障。可能有的…

总线及数据传输技术【待完善】

作者:桂。 时间:2017-08-05 14:41:36 链接:http://www.cnblogs.com/xingshansi/p/7290224.html 前言 最近的工作内容涉及硬件,三个高频词汇:总线、接口、协议,例如I2C、PCIe、RS-232C、RapidIO&#xff0…

初识TCL

初识TCL 安装TCL编辑器 如果你的电脑上装有编写TCL脚本的软件(Vivado等),执行在命令串口输入tcl,点击就行 输入expr 2 2 每一条命令都由一个或多个“单词”组成,单词之间用空格或制表符(即空白字符&…

如何看透借款人的隐形负债?

借款人的负债有两种情况,一种是显性负债,另一种是隐性负债。显性负债比较好判断,而隐性负债则比较难以判断。因此如何全面的掌握借款人真实负债是每个信贷员和风控人员都必须掌握的功课。一、显性负债显性负债就是通过材料可以直接看出的负债…

【C++设计技巧】C++中的RAII机制

随笔- 427 文章- 0 评论- 4作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.概念 Resource Acquisition Is Initialization 机制是Bjarne Stroustrup首先提出的。要解决的是这样一个问题: 在C中,如果在这个程序段结束时需要…

PHP的表单获取与HHTP请求方式

PHP获取表单数据的方法PHP获取表单数据的方法主要有GET、POST和REQUEST三种方式。 注意,提交表单的方法只有POST和GET两种。POST和GET都可以向Web服务器传输数据。 GET与POST对比 对比GETPOST附加形式URL之后HTML HEADER参数处理方式URL编码无URL编码传输数据的大小…

产生脉冲之间的延迟

产生脉冲之间的延迟 题目要求 FPGA产生两个输出脉冲,要求这两个脉冲之间的延迟为0.5ns,请描述你的实现方案 题目分析 1 使用计数器延迟不太可能,FPGA内部逻辑没有一个专用的delaybuffer。 2 IOB (input output block) iodelay。去实现小分辨…

Chipscope使用

作者:桂。 时间:2017-08-07 06:47:31 链接:http://www.cnblogs.com/xingshansi/p/7297482.html 前言 Chipscope在FPGA调试中被用来观察内部信号,程序里加入Chipscope相当于有了数字示波器。 本文主要记录Chipscope的基本操作&…

学习网址汇总

编程相关的学习网站:网络编程网站开发教程大全,内含有大量的参考手册,博文阅读,优质项目、在线工具、在线代码、开放平台等,囊括PHP、SQL、HTML、JS等w3school,你可以找到你所需要的所有的网站建设教程&…

设计FIFO深度

设计FIFO深度 假设FIFO的写时钟为100MHZ,读时钟为80MHZ。在FIFO输入侧写数据侧,每100个时钟,写入80个数据,FIFO读出侧每个时钟读出一个数据。设计合理的FIFO深度,使FIFO不会溢出。 如果读出侧每3个时钟读出1个数据&am…

银行假流水怎么识破?

银行流水作为借款人最有效的还款证明,审核的时候一定要特重视,特别是要注意区分借款人的假流水。(1)真假流水有哪些特征真流水特征:银行流水能真实的反映借款人的工作或生意情况,能从借款人的生意来往合同中…