工程师笔记 | ES32 SDK 支持的 RTOS

嵌入式技术

1332人已加入

描述

ES32 SDK 支持的 RTOS

很多嵌入式应用都是基于微控制器(MCU/单片机)的小系统,其中大多不使用 OS,也没有应用程序的基本框架。这导致嵌入式软件碎片化严重、开发效率低下。随着 AIoT 时代的来临,嵌入式软件变得越来越复杂,传统“散乱”的开发模式面临着前所未有的挑战。一款优秀的实时操作系统(RTOS)会使复杂的嵌入式系统软件开发变得简单且可靠,并且便于升级和维护。

东软载波微电子 ES32 系列产品的 SDK 已经支持 FreeRTOS、RT-Thread-nano和 Huawei LiteOS 三款 RTOS,并提供了丰富的内核用例。

ES32 SDK 下载地址:(复制到浏览器打开)

http://www.essemi.com/index/product/detail?id=799

用户可以在 ES32 SDK 的如下文件夹中找到三款 RTOS 的用例:

FreeRTOS:

ES32_SDK\Projects\Book2_Example\FreeRTOS

 RT-Thread-Nano:

ES32_SDK\Projects\Book2_Example\RT-Thread-Nano

 Huawei LiteOS:

ES32_SDK\Projects\Book2_Example\LiteOS

FreeRTOS、RT-Thread 和 Huawei LiteOS 简介

FreeRTOSFreeRTOS由美国的Richard Barry于2003年发布,与众多半导体厂商合作密切,是目前市场占有率最高的RTOS。遵循 GPLv2+ 许可协议。

FreeRTOS仅仅只是一个操作系统内核,需外扩第三方的 GUI(图形用户界面)、TCP/IP 协议栈、FS(文件系统)等组件才能实现较复杂的系统。不像 RT-Thread 有丰富的组件和软件包生态,可以快速实现丰富多样 IoT 系统。

RT-ThreadRT-Thread 版权属于上海睿赛德电子科技有限公司,于 2006 年 1 月首次发 布,初始版本号为 0.1.0,经过10来年的发展,如今主版本号已经升级到 4.0.3, 累计开发者达到数百万,在各行各业产品中装机量达到了惊人的数亿台, 占据国产 RTOS 的鳌头。其遵循 Apache-2.0 开源授权模式。

RT-Thread 整体结构如下:

物联网

它具体包括以下部分:

  • 内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
  • 组件与服务层:组件是基于 RT-Thread 内核之上的上层软件,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。
  • RT-Thread 软件包:运行于 RT-Thread 物联网操作系统平台上,面向不同应用领域的通用软件组件,由描述信息、源代码或库文件组成。RT-Thread 提供了开放的软件包平台,这里存放了官方提供或开发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread 生态的重要组成部分。软件包生态对于一个操作系统的选择至关重要,因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的系统。RT-Thread 已经支持的软件包数量已经达到 300+。
  • IDE:RT-Thread Studio

RT-Thread 内核结构如下:

物联网

内核处于硬件层之上,内核部分包括内核库、实时内核实现。

内核库是为了保证内核能够独立运行的一套小型的类似 C 库的函数实现子集。这部分根据编译器的不同自带 C 库的情况也会有些不同,当使用 GNU GCC 编译器时,会携带更多的标准 C 库实现。

Huawei LiteOS

华为 LiteOS 是一款 “开源免费” 的实时操作系统,面向 IoT 领域轻量级物联网操作系统, 广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域,大幅降低设备布置及维护成本,有效降低 开发门槛、缩短开发周期。遵循 BSD-3 开源许可协议。

LiteOS 整体结构如下:

物联网

主要包含以下组成部分:

  • 基础内核:包括不可裁剪的极小内核和可裁剪的其他模块。极小内核包含任务管理、内存管理、中断管理、异常管理和系统时钟。可裁剪的模块包括信号量、互斥锁、队列管理、事件管理、软件定时器等。
  • 内核增强:在内核基础功能之上,进一步提供增强功能,包括C++支持、调测组件等。调测组件提供了强大的问题定位及调测能力,包括shell命令、Trace事件跟踪、获取CPU占用率、LMS等。
  • 文件系统:提供一套轻量级的文件系统接口以支持文件系统的基本功能,包括vfs、ramfs、fatfs等。
  • 系统库接口:提供一系列系统库接口以提升操作系统的可移植性及兼容性,包括Libc/Libm/POSIX以及CMSIS适配层接口。
  • 网络协议栈:提供丰富的网络协议栈以支持多种网络功能,包括CoAP/LwM2M、MQTT等。
  • 业务组件:构建于上述组件之上的一系列业务组件或框架,以支持更丰富的用户场景,包括OTA、GUI、AI、传感框架等。
  • IDE:Huawei LiteOS Studio。

Huawei LiteOS 内核结构如下:

物联网

Huawei LiteOS 自开源社区发布以来,围绕 NB-IoT 物联网市场从技术、生态、解决方案、商用支持等多维度使能合作伙伴,构建开源的物联网生态,目前已经聚合了 50+MCU 和解决方案合作伙伴,共同推出一批开源开发套件和行业解决 方案,帮助众多行业客户快速的推出物联网终端和服务,客户涵盖众多行业,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。

Huawei LiteOS 基础内核包括不可裁剪的极小内核和可裁剪的其他模块。极小内核包含任务管理、内存管理、中断管理、异常管理和系统时钟。可裁剪的模块包括信号量、互斥锁、队列管理、事件管理、软件定时器等。Huawei LiteOS 支持 UP(单核)与 SMP(多核)模式,即支持在单核或者多核的环境上运行。

FreeRTOS、RT-Thread 和 LiteOS 内核对比

物联网

ES32 SDK 支持的 RTOS 内核用例

ES32 SDK 为用户提供了 FreeRTOS、RT-Thread-Nano和 Huawei LiteOS 的内核用例,如下图所示。用户可以通过这些用例学习 RTOS 的使用。

物联网

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分