LiteOS与freeRTOS、Ucos主流嵌入式操作内核的区别

举报
o0龙龙0o 发表于 2020/10/22 15:54:51 2020/10/22
【摘要】 最近在学习“IoT物联网全栈成长计划”课程,调研了一下LIteOS 与 freeRTOS he Ucos主要参数。

最近在学习“IoT物联网全栈成长计划”课程,调研了一下LIteOS kernel 与 freeRTOS he Ucos主要参数。

    嵌入式操作系统嵌入式系统操作系统。它们通常被设计非常紧凑有效,抛弃了运行在它们之上的特定的应用程序所不需要的各种功能。嵌入式操作系统多数也是即时操作系统。主流嵌入式操作系统有:嵌入式LinuxWindows CEWindows XP EmbeddedVxWorksuCOSIIQNXFreeRTOS。国内普遍在使用的嵌入式操作系统为:FreeRTOS、uCOSII,随着物联网的发展各大厂家也开始使用和研发自己的嵌入式操作系统,这两年兴起的有RT-Thread、Ali-Thing、还有这次的重点华为LiteOS。                          FreeRTOS是一个热门的[1]嵌入式设备用即时操作系统核心,它于2003年由Richard Barry设计,并已被经成功移植到35种不同的微控制器上。FreeRTOS采用MIT许可证许可。FreeRTOS的设计小巧且简易,整个核心代码只有3到4个C文件,为了让代码容易阅读、移植和维护,大部分的代码都是以C语言编写,只有一些函数(多数是架构特定排班副程序)采用汇编语言编写。FreeRTOS提供许多方法以实现多线程(threads)、多作业(task)、互斥锁(mutex)、信号量(semaphore)和软件计时器(software timer),有个为低耗电应用程序提供的无嘀嗒(tick-less)模式,线程的优先权管理也有支持,此外,FreeRTOS提供了四种存储器配置的模式:仅配置(allocate only)以非常简易但快速的算法进行配置与释放;搭配存储器合并,以较复杂但快速的算法进行配置与释放;搭配互斥保护,以 C 库配置进行配置与释放FreeRTOS中没有一些像Linux、Microsoft Windows等典型操作系统具有的先进特征,例如设备驱动程序、先进存储器管理机制、用户管理和网络管理,FreeRTOS着重在运行的简洁与速度,FreeRTOS有时会被视为是一个‘线程库’而非‘操作系统’,尽管可以找到命令行接口和类似POSIX I/O 接口的插件。 FreeRTOS实现了多线程,主程序会在规律的短时间区间内调用一个线程时计方法,这个方法会以循环制依照任务的优先级进行任务切换,一般来说,这个短时间区间介于 1/1000 秒与 1/100 秒之间,透过一个硬件时计中断来计时,但这个区间经常随着特定的应用而改变。

    μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。μC/OS-II已经通过联邦航空局(FAA)商用航行器认证,符合航空无线电技术委员会(RTCA)DO-178B标准。μC/OS-II可管理多达63个应用任务,提供服务:信号量、、互斥信号量、事件标识、消息邮箱、消息队列、任务管理、固定大小内存块管理、、时间管理、另外,在μC/OS-II内核之上,有如下独立模块可供用户选择:μC/FS文件系统模块、μC/GUI图形软件模块、μC/TCP-IP协议栈模块、μC/USB协议栈模块。

    三款嵌入式系统都是可以进行裁剪,经典使用最小情况:

FreeRTOS UcosII LiteOS
ROM RAM ROM RAM ROM RAM
6-12KB 1KB 6-24KB 1KB 6kB 1KB

     通过对比可以看出来,各大厂家都可以将系统剪裁到很小,减少系统引起的ROM损耗。

系统能否被更多的使用,配合开发的芯片的驱动也是重点,现在大部分可以在ARM上进行兼容,下面对一下三款操作系统适配过的芯片系类;


FreeRTOS
UcosII LiteOS
支持的芯片平台 ARM (ARM7, ARM9, ARM Cortex-M3, ARM Cortex-M4, Cortex-A), Atmel AVR, AVR32, HCS12, MicroBlaze, Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430, PIC, Renesas H8/S, SuperH, RX, x86, 8052, Coldfire, V850, 78K0R, Fujitsu MB91460 series, Fujitsu MB96340 series, Nios II, Cortex-R4, TMS570, RM4x SoC FPGA (Cortex-A)

Blackfin(ADSP-CM4xx (Cortex-M))

ARM7, ARM9, ARM11(Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A17

Cortex-A53, Cortex-A57

Cortex-R4, Cortex-R5, Cortex-R7

Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4(F), Cortex-M7)

AVR, AVR32(SAM3, SAM4, SAM7, SAM9, SAMA5 (ARM Cortex-based))

PSoC 4, PSoC 5 (Cortex-M)

eSi-RISC

M14K

XMC4000 (Cortex-M)

PIC24, PIC32

SmartFusion2 (Cortex-M)

Win32

ColdFire

HCS12

i.MX

Kinetis (Cortex-M)

LPC (Cortex-M)

LPC (ARM7 / ARM9)

MPC5xxx, MPC8xxx

VFxxx (Cortex-A & Cortex-M)

H8S

78K0R

R32C

RL78

RX100, RX200, RX600, RX700

RZ/A (Cortex-A), RZ/T1 (Cortex-R & Cortex-M)

R-IN32 (Cortex-M)

SuperH-2A

V850E/2/S

Gecko (Cortex-M)

STM32F (Cortex-M)

STM32L (Cortex-M)

STR9

C28x

MSP430 (Cortex-M), MSP432 (Cortex-M)

Hercules RM (Cortex-R), Hercules TMS570 (Cortex-R)

MicroBlaze

Zynq-7000 (Cortex-A)

Zynq Ultrascale+ MPSoC (Cortex-A & Cortex-R)

LiteOS开源项目目前支持 ARM Cortex-A核、ARM Cortex-M0,Cortex-M3,Cortex-M4,Cortex-M7 等芯片架构。

    从支持芯片厂家及平台可以看出,嵌入式操作系统对主流的ARM内核的芯片支持较好,因为FreeROTS和ucos在市场已经很久,同时都有大的厂家支持,导致现阶段他们支持的内核较多,在FPGA和DSP上已经开始有适配和移植,这是华为LtieOs需要努力的方向,要和大芯片厂家合作,能得到更多的支持。

    一个好的操作系统,需要有一个好的内核,但也需要更好的中间件和组建的支持,最后我们对比一下,三款系统官方(不含第三方)的组建的支持。统计如下表


FreeRTOS ucosII LiteOS
组件支持(官方)

TCP、CLI、IO、UDP

MQTT、HTTPS、OTA、PKCS

AWS IoT Device Shadow

Reference Integrations、

LTS Roadmap、MQTT LTS rc1


TCP/IP

USB

CAN bus

Mobus


互联互通

传感器框架

低功耗框架

AI智能

JS引擎

安全框架

LWM2M、MQTT、CoAP、TLS、DTLS、LWIP、ETN|WIFI、GSM、LPWA增强

GUI

       现在FreeRTOS被亚马逊收购了,因为亚马逊的支持,对于AWS云的支持非常好,UcosII现在使用的很多,但是官网给出的组件支持并没有很多,LiteOS因为时华为下的技术,对于华为云的支持,还有自身AI服务和芯片的支持都比较完美。

        中国的嵌入式系统还处在开始初期阶段,认识到不足才能更好的进步,还有增加社区使用者,只有使用开发者越多,才能更好的发展。



该文章引用:

https://www.huaweicloud.com/product/liteos.html

https://www.freertos.org/libraries/categories.html

https://www.micrium.com/rtos/kernels/



【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。