首页 > 编程知识 正文

嵌入式系统与应用,嵌入式系统原理与开发

时间:2023-05-05 14:44:17 阅读:111551 作者:404

满足实时控制要求的嵌入式操作系统(RTOS )操作系统,以下介绍14种主流的RTOS。 分别为Clinux、C/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX、国产嵌入式操作

分别介绍这14种嵌入式操作系统的特点。

1、Clinux

Clinux是一个优秀的嵌入式Linux版本,全称为micro-control Linux,顾名思义就是微控制Linux。 与标准Linux相比,Clinux的内核非常小,但它是Linux操作系统的主要组成部分,包括稳定性和可移植性、强大的网络功能、良好的文件系统支持、丰富的标准API和TCP/IP网络协议由于没有MMU内存管理单元,其多任务的实现需要一定的技术。

Clinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采用第一服务和时间片轮换调度,针对中低档嵌入式CPU的特点

因此,Clinux的最大特点是为没有MMU的处理器设计,适合不具有MMU功能的stm32f103,但是,至少512KB的RAM空间、1MB的rom/flom/flu 103,用于移植该系统

Clinux结构复杂,移植相对困难,内核也大,其实时间性也差。 如果开发的嵌入式产品重视文件系统和网络APP,Clinux是一个不错的选择。

2、COS-II

C/OS-II是在C/OS的基础上发展起来的,是一种用c语言编写的小巧、抢占式的多任务实时内核。 C/OS-II管理64个任务,提供任务调度和管理、内存管理、任务间同步和通信、时间管理和中断服务等功能,执行效率高、占用空间小、实时性能好、可扩展性强等

在文件系统支持方面,C/OS-II是面向中小型嵌入式系统的,因为即使包含所有功能,编译后的内核也小于10 KB,所以系统本身不提供文件系统支持。 但是,C/OS-II具有很好的可扩展性,您可以根据需要自行添加文件系统内容。

在硬件支持方面,C/OS-II可以支持大部分目前流行的CPU。 由于C/OS-II自身的核心很小,所以被裁剪的代码最小为2KB,需要的最小数据RAM空间为4 KB。 C/OS-II移植相对简单,只需修改处理器相关代码。

综上所述,C/OS-II是一种结构简单、功能完备、实时性强的嵌入式操作系统内核,非常适合没有MMU功能的CPU。 内核代码空间和数据存储空间少,实时性、可扩展性好,开源,互联网上有很多数据和实例,所以适合移植到stm32f103这个CPU上。

3、eCos

嵌入式可配置系统(ecos )是一种嵌入式可配置操作系统。

它是一款可配置、开源、可移植、面向深度嵌入式APP的实时操作系统。

最大的特点是配置灵活,采用模块化设计,核心部分由核心、C语言库、底层执行包等相同的小组件组成。

每个组件都有不同的配置选项,实时内核也作为可选配置提供。 使用eCos提供的配置工具可以轻松配置,多种配置方式使eCos能够满足不同嵌入式APP应用的要求。

eCos操作系统的可配置性非常高,用户可以自己参与所需的文件系统。 eCos操作系统也支持大部分当前流行的嵌入式CPU,eCos操作系统可以在不同的体系结构(如16位、32位和64位)之间移植。

由于eCos自身的核心很小,所以被裁剪的代码最小为10 KB,所需的最小数据RAM空间为10 KB。

在系统移植方面eCos可移植性好,比C/OS-II和Clinux更容易。

如上所述,eCos的最大特点是配置灵活,支持没有MMU的CPU移植,开源且可移植,适合stm32平台向CPU移植。 但eCOS的应用还不太广泛,不像c/OS -那么普遍,而且资料也不像c/OS -那么多。 eCos适用于商业或工业级成本敏感的嵌入式系统,例如家电领域的某些APP应用。

4、FreeRTOS

>由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。

 

相对于C/OS-II、 embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为6.0版。

 

作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。

 

FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。 

 

FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。

 

FreeRTOS的不足:

 

相对于常见的μC/OS—II操作系统,FreeRTOS操作系统既有优点也存在不足。

 

其不足之处, 一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方 面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统, 不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。

 


5、mbed OS

 

开源嵌入式操作系统,ARM公司将mbed OS免费提供给所有厂商使用,mbed提供了一个相对更加系统和更加全面的智能硬件开发环境。

 

主要功能:

 

提供用于开发物联网设备的通用操作系统基础,以解决嵌入式设计的碎片化问题。支持所有重要的连接性与设备管理开放标准,以实现面向未来的设计。使安全可升级的边缘设备支持新增处理能力与功能。通过自动电源管理解决复杂的能耗问题。

 

主要特点:

 

开发速度快,功能强大,安全性高,为了量产化而设计,可离线开发,也可以在网页上编辑。

 

6、RTX

 

是ARM公司的一款嵌入式实时操作系统,使用标准的C结构编写,运用RealView编译器进行编译。不仅仅是一个实时内核,还具备丰富的中间层组件,不但免费,而且代码也是开放的。

 

主要功能:

 

开始和停止任务(进程),除此之外还支持进程通信,例如任务的同步、共享资源(外设或内存)的管理、任务之间消息的传递。开发者可以使用基本函数去开启实时运行器,去开始和终结任务,以及去传递任务间的控制(轮转调度)。开发者可以赋予任务优先级。

 

主要特点:

 

支持时间片,抢占式和合作式调度。不限制数量的任务,每个任务都具有254的优先级。不限制数量的信号量,互斥信号量,消息邮箱和软定时器。支持多线程和线程安全操作。使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。

 

7、VxWorks

 

美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系(RTOS),具有硬实时、确定性与稳定性,也具备航空与国防、工业、医疗、汽车、消费电子产品、网络及其他行业要求的可伸缩性与安全性。

 

主要功能:

 

支持可预测的任务同步机制、支持多任务间的通信、存储器优化管理、操作系统的(中断延迟、任务切换、驱动程序延迟等)行为是可知的和可预测的。实时时钟服务+中断管理服务。

 

主要特点:

 

具有一个高性能的操作系统内核Wind(实时性好、可裁减)友好的开发调试环境、较好的兼容性、支持多种开发和运行环境

 

 

8、QNX

 

诞生于1980年,是一种商用的遵从POSIX规范的类Unix嵌入式实时操作系统。

主要功能:

 

支持在同一台计算机上同时调度执行多个任务;也可以让多个用户共享一台计算机,这些用户可以通过多个终端向系统提交任务,与QNX进行交互操作。

主要特点:

 

核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。

 

 

9、NuttX

 

NuttX是一个实时嵌入式操作系统(Embedded RTOS),第一个版本由 Gregory Nutt 于 2007 年在宽松的 BSD 许可证下发布。

 

主要功能:

 

可以构建为开放的、平面的嵌入式 RTOS,或单独构建为具有系统调用接口的微内核。容易扩展到新的处理器架构、 SoC 架构或板级架构。实时的、确定性的、支持优先级继承。BSD 套接字接口。优先级管理的扩展。可选的具有地址环境的任务(进程)。

 

主要特点:

 

配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。

 

10、都江堰操作系统(djyos)

 

(注意:网友提示都江堰操作系统官网提示,stm32的f4和f7没调通)

 

都江堰操作系统,简称djyos,得名于一个伟大的水利工程:都江堰。

 

与传统操作系统不同,djyos不是以线程而是以事件为调度核心,这种调度算法使程序员摆脱模拟计算机执行过程编写程序的思维方式,而是按人类认知世界的方式编写应用程序,就如同在嵌入式编程中引入了VC似的。

 

djyos的调度算法使程序员可以摆脱线程和进程的束缚,djyos没有有关线程的api,一个完全不懂线程知识的程序员也可以顺利地在djyos下编写应用程序。

 

djyos 操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。

 


11、Alios Things

 

据著名媒体嵌入式操作系统RTOS介绍,AliOS Things 是 AliOS 家族旗下、面向 IoT 领域的、高可伸缩的物联网操作系统。AliOS Things将致力于搭建云端一体化IoT基础设施,具备极致性能、极简开发、云端一体、丰富组件、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。

 

点评:阿里系,背靠阿里资源来势汹汹杀入物联网市场,芯片+模组厂商合作,是非常有力的一个玩家,但这也是其最大的劣势!

 

 

12、Huawei LiteOS

 

嵌入式操作系统RTOS介绍,Huawei LiteOS 是华为面向IoT领域,构建的轻量级物联网操作系统,以轻量级低功耗、快速启动、互联互通、安全等关键能力,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。

点评:华为系,不过其开源程度比较低,其主要用于华为自己的产品,有大树罩着。
 

 

13、RT-Thread

 

嵌入式操作系统RTOS介绍,RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由twdbg先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread具备一个IoT OS平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。经过11年的累积发展,RT-Thread已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过两千万台,成为国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。

 

点评:国内最有可能成为Top 1,优势在于丰富的组件,中立立场!赶上了时机,得到诸多芯片厂商的支持,也挺受开发者喜欢的。缺点在于本身的教程文档和freertos等之类的比还是很弱。

 

嵌入式操作系统RTOS推荐的学习资源:

1.文档:https://www.rt-thread.org/document/site/
2.书籍:《 嵌入式实时操作系统:RT-Thread设计与实现 》《 RT-Thread内核实现与应用开发实战指南 基于STM32 》
 

 


14、SylixOS

 

嵌入式操作系统RTOS介绍,SylixOS 是一个开源的跨平台的大型实时操作系统(RTOS),SylixOS诞生于2006年,经过十多年的持续开发,SylixOS 已成为功能最为全面的国产操作系统之一。目前已有众多产品和项目应用案例,行业涉及航空航天、军事防务、轨道交通、智能电网、工业自动化等诸多领域。SylixOS 完全符合 POSIX 规范,开源社区丰富的自由软件移植非常方便。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。