接前一篇帖子
https://bbs.eeworld.com.cn/thread-489571-1-1.html
目前我所知道的嵌入式系统有Raw-os、Ucos、freeRTOS、MQX、
trochili等
Row-os介绍见论坛
https://bbs.eeworld.com.cn/thread-418007-1-1.html
这里要说明Row-os和trochili为国产系统,先比较一下Row-os和ucos的区别,raw os 在中低端cpu 上速度和体积都是精心优化过的,特别是在cortex-m 系列的cpu 上具有很大的优势。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为8.2.3版。不同于μC/OS-II,FreeRTOS对系统任务的数量没有限制,既支持优先级调度算法也支持轮换调度算法,因此FreeRTOS采用双向链表而不是采用查任务就绪表的方法来进行任务调度。
相对于常见的μC/OS—II操作系统,FreeRTOS操作系统既有优点也存在不足。其不足之处,一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统,不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。
MQX是freescale公司技术支持的操作系统,MQX 实时操作系统设计用于单一处理器、多处理器和分布式处理器等形式的嵌入式实时系统。 Freescale 半导体公司成功地搭载MQX 操作系统软件平台用于ColdFire 和PowerPC 系列微处 理器。相比于最初发布的MQX 软件,Freescale MQX 软件更易于配置和使用。现在单一发布版本 就包含了MQX 操作系统外加其它所有软件组件来支持特定的微处理器。 MQX 是一个运行时函数库,程序用它来实现实时多任务应用。其主要特征为:大小可裁剪、 面向组件的架构和便于使用。 MQX 支持多处理器应用,并且可用于灵活配置嵌入式输入/输出产品,如网络、数据通讯和 文档管理等。
MQX与linux相比,内核精简、实时性高、效率高,更适于医疗电子、工业控制等领域。与ucos相比,大小接近,但MQX维护团队更强大,提供了众多驱动。
TROCHILI是一个开源的、高度可移植的R丁OS,采用C语言开发,可移植性非常好,支持多任务、多优先级、抢占式调度。对硬件的要求极低,适用于存储器资源受限的嵌入式单片机系统,典型的配置下((TROCHILI)只占用约2-5Kbytes的RAM以及10-15Kbytes的Flash存储器。TROCHILI是开源的RTOS,适用于APACHE2协议,即可以任意修改和发布,无需任何版权费用。英文名称TROCHILI取善鸣的小鸟之意,意味着体积小巧、动作灵敏。主要特点如下:
支持抢占式调度多任务模型
支持最多有32个任务优先级,多个任务可以拥有同优先级
不同优先级任务采用优先级调度,相同优先级任务问采用时间片调度
支持用户回调定时器和任务定时器。操作系统内置用户定时器守护线程
支持常见IPC机制,semaphore, mailbox, message, mutex, event
充分总结各种机制的共性和特性,基于通用IPC控制结构和操作流程,做了完整简洁的实现紧急消息操作优先普通消息操作
可配置的IPC调度机制,支持FIFO和LIFO两种方式的线程阻塞队列。
大量API支持在ISR中调用
开放源代码。代码规范简洁,注释完备,并提供十分详尽的中文注释
这些系统官网都有对相应cortex-M的支持的安装包