实时嵌入式操作系统-NuttX


Nuttx是一个实时嵌入式操作系统(RTOS),它有一个小巧是在微控制器的环境中使用。这是完全可扩展,从小型(8位)至中型嵌入式(32位)系统,它的目的还在于要完全符合标准,完全实时,并完全开放。

Nuttx is a real timed embedded operating system (RTOS). Its goals are:
NuttX是一个成熟的实时操作系统,于2007年由Gregory Nutt先生正式开源,2016年被三星选为TizenRT操作系统的内核,2019年在小米的推动下正式进入Apache基金会,经过开源社区多年的不懈努力,NuttX功能丰富,性能稳定,商业化成熟度高,Fitbit最近两代的手环产品和索尼多款消费级产品都是基于其所开发的。
Small Footprint
Usable in all but the tightest micro-controller environments, The focus is on the tiny-to-small, deeply embedded environment.
Rich Feature OS Set
The goal is to provide implementations of most standard POSIX OS interfaces to support a rich, multi-threaded development environment for deeply embedded processors.
Highly Scalable
Fully scalable from tiny (8-bit) to moderate embedded (32-bit). Scalability with rich feature set is accomplished with: Many tiny source files, link from static libraries, highly configurable, use of weak symbols when available.
Standards Compliance
NuttX strives to achieve a high degree of standards compliance. The primary governing standards are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS's are adopted for functionality not available under these standards or for functionality that is not appropriate for the deeply-embedded RTOS (such as fork()).
Because of this standards conformance, software developed under other standard OSs (such as Linux) should port easily to NuttX.
Real-Time
Fully pre-emptible, fixed priority and round-robin scheduling.
Totally Open
Non-restrictive BSD license.
GNU Toolchains
Compatible GNU toolchains based on buildroot available for download to provide a complete development environment for many architectures.
系统架构

从纵向看,NuttX和传统操作系统一样由调度子系统、文件子系统、网络子系统、图形子系统和驱动子系统组成。从横向看,NuttX向上给应用程序提供了POSIX和ANSI定义的标准C/C++接口。对于没有标准化的组件(比如各种外设),NuttX通常会提供兼容Linux的API。向下NuttX定义了Arch API、块设备驱动接口、网卡驱动接口、display驱动接口,以及各种总线和外设的lower half驱动接口,使得芯片厂商能够规范、快速地完成移植工作。下图中数量众多的蓝色模块就是NuttX实现的各种功能。
子系统介绍
调度子系统
NuttX支持大多数RTOS都没有实现的进程概念,并提供完整的POSIX API,比如pthread、信号量、消息队列、时钟/定时器、信号、环境变量等。同时也支持RTOS上常见的优先级翻转和tickless模式。NuttX支持对称多处理(SMP)和非对称多处理(AMP)两种多核编程模式,开发者可以根据芯片设计的特点和应用场景的需求,选择使用SMP或AMP,甚至同时使用SMP和AMP。NuttX支持所有常见CPU架构,比如Cortex-A/Cortex-R/Cortex-M、AVR、MIPS、32位/64位 RISC-V,X86/X64,Z80,以及Tensilica和CEVA的DSP,并有超过150款芯片成功移植到NuttX上。
文件系统
NuttX设计了一套完整而小巧的虚拟文件系统,除了支持统一的目录和文件操作外,还支持挂载点、字符设备,块设备等高级概念。直接支持10多种常用的文件系统。比如FAT、LittleFS、SmartFS、NFS、ROMFS、TMPFS等。另外,NuttX内置根文件系统,无需挂载即可启动,极大的简化了开发和部署流程。
网络子系统
NuttX实现了完整的网络协议栈,支持以太网、WiFi、802.15.4、蓝牙、CAN等数据链路层协议,支持IPv4、IPv6以及相关的ARP、ICMP、IGMP、MLD等传输层协议,实现了BSD兼容套接字API,除了常见的TCP、UDP协议外,还支持raw packet、unix domain、netlink套接字类型。另外,NuttX还提供了大量的应用层协议实现,比如DHCP、DNS、NTP、Telnet、FTP、SMTP、HTTP等。
驱动子系统
除了接入到文件系统的块设备驱动和接入到TCP/IP协议栈的网络设备驱动外,NuttX还为各种常见总线和外设定义了类似Linux的字符设备驱动。一方面通过NuttX为每类设备定义的标准IOCTL接口,应用程序可以用统一的API访问不同厂商的硬件驱动,另一方面NuttX驱动框架实现了和硬件无关的操作(比如权限控制、buffer管理,睡眠/唤醒等),降低驱动程序的开发难度。最后,NuttX提供了一套基于activity统计的低功耗管理框架,使得驱动程序可以方便地实现低功耗控制。
最新版本:6.2
该版本继续实现 NuttX 电源管理演示,同时支持 PIC32MX1/2 系列微处理器以及整个 NXP LPC43xx 系列,主板增加对 TI/Stellaris EKK-LM3S9B96 的支持。
项目主页:http://nuttx.sourceforge.net/
Xiaomi Vela
小米官宣其底层内核为 NuttX Xiaomi Vela 全面开源。
小米澎湃 OS 于2023年11月中旬宣布,Xiaomi Vela 采用 Apache 2.0 License 面向全球软硬件开发者正式开源。根据其官网的介绍,Xiaomi Vela 是小米基于开源实时操作系统 NuttX 打造的物联网嵌入式软件平台,Vela 在各种物联网硬件平台上提供统一的软件服务,支持丰富的组件和易用的框架,打通碎片化的物联网应用场景。‘Vela’ 一词源自拉丁语中船帆的含义,也是南方星空中最亮的星座之一。市面上开源或商业的RTOS非常多,为什么终选择NuttX作为Xiaomi Vela的基础?主要有以下几个原因:
NuttX对POSIX标准有原生兼容:NuttX是可商用化RTOS中唯一一个对POSIX API有原生支持的实时操作系统,所以很多Linux社区的开源软件可以很方便的移植到NuttX上,这样可以极大的简化开源软件移植,方便代码复用,降低学习曲线,其它RTOS需要适配层把POSIX API转成内部API,而且通常只兼容一小部分的POSIX接口。
完成度高:NuttX集成了文件系统、网络协议栈、图形库和驱动框架,减少开发成本。
模块化设计:所有组件甚至组件内部特性,都可以通过配置Kconfig来调整或关闭,可按需对系统进行裁剪,适用于不同产品形态。
代码精简:所有组件都是从头编码,专门对代码和数据做了优化设计。
轻量级:虽然NuttX实现了传统操作系统的所有功能,但是最终生成的代码尺寸还是可以很小(最小配置不到32KB,最大配置不超过256KB)。
和Linux系统的兼容性:因为NuttX整体设计、代码组织,编译过程和Linux非常接近,将会极大地降低Android/Linux开发者的迁移成本。
活跃开放的社区:很多厂商(比如小米、Sony,乐鑫、NXP等)和开源爱好者都在积极回馈社区。
Vela主要特性
高效性能:基于 NuttX 内核,具有高实时性、低功耗、低延迟等特点,适用于各种资源受限的嵌入式设备。
丰富组件:提供了多种常用的组件,如网络、音频、视频、图形、安全等,方便开发者快速构建应用。
易用框架:提供了一套统一的应用框架,支持 Lua、JavaScript 等脚本语言开发应用,并提供了丰富的 API 和文档。
万物互联:支持多种通信协议和标准,如 WiFi、BLE、Zigbee、MQTT 等,并提供了小米妙享技术,实现设备之间的无缝连接和协同。
Xiaomi Vela 系统架构如下

底层 NuttX 内核:提供最基本的任务调度、跨进程间通信、文件系统等基础 OS 功能,同时也提供简洁高效的设备驱动、轻量级的 TCP/IP 协议栈和电源管理等组件。
应用框架:分为上下两层,下层是为扩展系统服务而提供的通用应用框架,上层是针对不同的物联网应用而开发的定制应用框架,例如多媒体应用框架和传感应用框架,提供 Cloud SDK 可以方便开发者更快速的接入小米云服务。
开发者工具:除了常见的 Logger 和 Debugger 工具,Xiaomi Vela 还提供 Emulator 工具来帮助开发者提升调试效率,使用 Emulator,开发者可以利用 PC 端丰富的调试工具和调试信息,降低嵌入式系统开发和调试的难度。
小米于2023年12月上旬正式发布《小米澎湃 OS 技术白皮书》。根据其介绍,小米澎湃 OS 是一个为下一代的计算与多种设备生态设计的系统;也对系统架构进行了详细介绍、包括对各个子系统的架构以及关键技术的阐述,以及开发团队对各个子系统的设计思路。

小米表示:“希望通过分享这些技术成果和见解,激发更多的创意和合作,推动整个行业的进步,共同构建 “人车家全生态” 的未来。”其CEO 雷军在《白皮书》的序言中说道,2016 年,小米就开始研发跨端应用框架。2019 年,开始并行研发纯自研通用系统 Mina OS,并在部分产品上小规模量产验证,同时在实验室中也成功在手机上跑通,其中部分技术成果也已融入小米澎湃 OS。2021 年,小米开启了车机 OS 的研发。2022 年初,小米决定统一 MIUI、Vela、Mina、车机 OS 四个系统的软件架构。自此,小米的操作系统底层合并完成。
在2024年8月举行的第十九届 “开源中国开源世界” 大会上,Xiaomi Vela 开源负责人杜超受邀分享 “Xiaomi Vela 开源:共建繁荣的 IoT 操作系统生态” 主题演讲,他详细阐述了 Xiaomi Vela 的发展历程、技术优势以及开源与生态伙伴计划。Xiaomi Vela 是小米基于开源实时操作系统 NuttX 打造的物联网嵌入式软件平台,其在各种物联网硬件平台上提供统一的软件服务,支持丰富的组件和易用的框架,打通碎片化的物联网应用场景。‘Vela’ 一词源自拉丁语中船帆的含义,也是南方星空中船帆星座的名字。
杜超表示,Vela 目前已在超 4700 万台设备中广泛应用。在过去的三年里,它在智能家居、智能穿戴等领域覆盖了 1000 多 SKU。接下来,小米计划通过与 Android 和 Linux 系统的深度融合来改进智能手表、智能手机等设备的用户体验,并拓展至汽车、机器人、智能制造等更广泛的 IoT 应用场景。此外,小米将对外公开超过 1000 万行的 Xiaomi Vela 开源代码,目前已完成开源代码合规审查和优化开箱体验。届时,开源主站将设在 GitHub 上,同时在 Gitee 设立镜像站点,在 B 站上也将设立 Xiaomi Vela 的官方账号。
小米宣布 Vela 系统于2024年12月中旬正式开源,OpenVela 项目源代码已托管至 GitHub 和 Gitee,采用 Apache 2.0 开源协议。
Vela 是小米基于开源实时操作系统 NuttX 打造的物联网嵌入式软件平台,适配多种不同硬件规格的产品,最小系统仅需 8KB 内存,CPU 主频不限,适配任意 SoC 多核架构,支持柔性部署。在过去的三年里,小米 Vela 在智能家居、智能穿戴等领域覆盖了 1000 多 SKU。接下来,小米还计划与 Android 系统深度融合,进一步提升用户在智能手机、智能手表的设备体验。
项目介绍显示,OpenVela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。OpenVela 和 Xiaomi Vela 基于同一套代码实现,OpenVela 是开源版本。

Vela 的命名源自拉丁语中船帆的含义,也是南方星空中船帆星座的名字;小米选择这个名字的意义是希望与开发者一道携手,共同踏上星辰大海的征途。OpenVela 支持各种不同的架构(ARM32、ARM64、Risc-V、Xtensa、MIPS、CEVA 等)和硬件平台。该系统的 Native 主要是 C/C++,快应用使用 JavaScript 开发应用。OpenVela 技术特点如下:
高度可扩展:设计注重模块化与可扩展性,使其能够灵活适应多样的物联网应用场景。小到仅配备 32K RAM 的微型 BLE 模组,大到拥有 256M RAM 的智能有屏音箱,openvela 都能提供高度可扩展的支持。
一站式解决方案:随着时间的推移,openvela 不断沉淀了各类 AIoT 应用的共性需求,成为一个功能完备的软件平台,为各类物联网解决方案提供了全面的支持。厂商采用该操作系统可以显著降低研发成本并加速产品的上市时间。
成熟的异构计算支持:为异构多核系统提供了强大的支持,实现了 MCU、MPU、DSP、GPU 以及 NPU 等不同处理单元间无缝的 IPC 通信机制。此外还提供了一个高级的 RPC 框架,简化了 openvela 与 Android 和 Linux 系统的通信,使快速打造一个异构融合操作系统成为可能。
标准兼容和高可移植性:内核基于 Apache NuttX ,这个被称为 “Tiny Linux” 的系统为 openvela 提供了高标准的 POSIX 兼容性。通过持续提升其 POSIX 兼容性,其当前已达到 88% 的兼容水平。这种高标准的兼容性意味着在其他标准操作系统(例如 Linux)上开发的软件可以轻松迁移到 openvela,几乎不需要额外的工作。
全面的连接套件:提供了广泛的协议支持,包括蓝牙 BR / EDR / LE、LE Mesh、WiFi、Matter、LTE Cat1、以太网、CAN / LIN 等。同时它还能与小米的 HyperConnect 协议无缝集成,提供了强大的连接能力。
丰富的开发者工具:提供了一系列完备的开发者工具,包括系统监控、性能分析、调试器、追踪、崩溃分析和日志分析工具,为开发者提供了强大的支持。

Nuttx is a real timed embedded operating system (RTOS). Its goals are:
NuttX是一个成熟的实时操作系统,于2007年由Gregory Nutt先生正式开源,2016年被三星选为TizenRT操作系统的内核,2019年在小米的推动下正式进入Apache基金会,经过开源社区多年的不懈努力,NuttX功能丰富,性能稳定,商业化成熟度高,Fitbit最近两代的手环产品和索尼多款消费级产品都是基于其所开发的。
Small Footprint
Usable in all but the tightest micro-controller environments, The focus is on the tiny-to-small, deeply embedded environment.
Rich Feature OS Set
The goal is to provide implementations of most standard POSIX OS interfaces to support a rich, multi-threaded development environment for deeply embedded processors.
Highly Scalable
Fully scalable from tiny (8-bit) to moderate embedded (32-bit). Scalability with rich feature set is accomplished with: Many tiny source files, link from static libraries, highly configurable, use of weak symbols when available.
Standards Compliance
NuttX strives to achieve a high degree of standards compliance. The primary governing standards are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS's are adopted for functionality not available under these standards or for functionality that is not appropriate for the deeply-embedded RTOS (such as fork()).
Because of this standards conformance, software developed under other standard OSs (such as Linux) should port easily to NuttX.
Real-Time
Fully pre-emptible, fixed priority and round-robin scheduling.
Totally Open
Non-restrictive BSD license.
GNU Toolchains
Compatible GNU toolchains based on buildroot available for download to provide a complete development environment for many architectures.
系统架构

从纵向看,NuttX和传统操作系统一样由调度子系统、文件子系统、网络子系统、图形子系统和驱动子系统组成。从横向看,NuttX向上给应用程序提供了POSIX和ANSI定义的标准C/C++接口。对于没有标准化的组件(比如各种外设),NuttX通常会提供兼容Linux的API。向下NuttX定义了Arch API、块设备驱动接口、网卡驱动接口、display驱动接口,以及各种总线和外设的lower half驱动接口,使得芯片厂商能够规范、快速地完成移植工作。下图中数量众多的蓝色模块就是NuttX实现的各种功能。
子系统介绍
调度子系统
NuttX支持大多数RTOS都没有实现的进程概念,并提供完整的POSIX API,比如pthread、信号量、消息队列、时钟/定时器、信号、环境变量等。同时也支持RTOS上常见的优先级翻转和tickless模式。NuttX支持对称多处理(SMP)和非对称多处理(AMP)两种多核编程模式,开发者可以根据芯片设计的特点和应用场景的需求,选择使用SMP或AMP,甚至同时使用SMP和AMP。NuttX支持所有常见CPU架构,比如Cortex-A/Cortex-R/Cortex-M、AVR、MIPS、32位/64位 RISC-V,X86/X64,Z80,以及Tensilica和CEVA的DSP,并有超过150款芯片成功移植到NuttX上。
文件系统
NuttX设计了一套完整而小巧的虚拟文件系统,除了支持统一的目录和文件操作外,还支持挂载点、字符设备,块设备等高级概念。直接支持10多种常用的文件系统。比如FAT、LittleFS、SmartFS、NFS、ROMFS、TMPFS等。另外,NuttX内置根文件系统,无需挂载即可启动,极大的简化了开发和部署流程。
网络子系统
NuttX实现了完整的网络协议栈,支持以太网、WiFi、802.15.4、蓝牙、CAN等数据链路层协议,支持IPv4、IPv6以及相关的ARP、ICMP、IGMP、MLD等传输层协议,实现了BSD兼容套接字API,除了常见的TCP、UDP协议外,还支持raw packet、unix domain、netlink套接字类型。另外,NuttX还提供了大量的应用层协议实现,比如DHCP、DNS、NTP、Telnet、FTP、SMTP、HTTP等。
驱动子系统
除了接入到文件系统的块设备驱动和接入到TCP/IP协议栈的网络设备驱动外,NuttX还为各种常见总线和外设定义了类似Linux的字符设备驱动。一方面通过NuttX为每类设备定义的标准IOCTL接口,应用程序可以用统一的API访问不同厂商的硬件驱动,另一方面NuttX驱动框架实现了和硬件无关的操作(比如权限控制、buffer管理,睡眠/唤醒等),降低驱动程序的开发难度。最后,NuttX提供了一套基于activity统计的低功耗管理框架,使得驱动程序可以方便地实现低功耗控制。
最新版本:6.2
该版本继续实现 NuttX 电源管理演示,同时支持 PIC32MX1/2 系列微处理器以及整个 NXP LPC43xx 系列,主板增加对 TI/Stellaris EKK-LM3S9B96 的支持。
项目主页:http://nuttx.sourceforge.net/
Xiaomi Vela
小米官宣其底层内核为 NuttX Xiaomi Vela 全面开源。
小米澎湃 OS 于2023年11月中旬宣布,Xiaomi Vela 采用 Apache 2.0 License 面向全球软硬件开发者正式开源。根据其官网的介绍,Xiaomi Vela 是小米基于开源实时操作系统 NuttX 打造的物联网嵌入式软件平台,Vela 在各种物联网硬件平台上提供统一的软件服务,支持丰富的组件和易用的框架,打通碎片化的物联网应用场景。‘Vela’ 一词源自拉丁语中船帆的含义,也是南方星空中最亮的星座之一。市面上开源或商业的RTOS非常多,为什么终选择NuttX作为Xiaomi Vela的基础?主要有以下几个原因:
NuttX对POSIX标准有原生兼容:NuttX是可商用化RTOS中唯一一个对POSIX API有原生支持的实时操作系统,所以很多Linux社区的开源软件可以很方便的移植到NuttX上,这样可以极大的简化开源软件移植,方便代码复用,降低学习曲线,其它RTOS需要适配层把POSIX API转成内部API,而且通常只兼容一小部分的POSIX接口。
完成度高:NuttX集成了文件系统、网络协议栈、图形库和驱动框架,减少开发成本。
模块化设计:所有组件甚至组件内部特性,都可以通过配置Kconfig来调整或关闭,可按需对系统进行裁剪,适用于不同产品形态。
代码精简:所有组件都是从头编码,专门对代码和数据做了优化设计。
轻量级:虽然NuttX实现了传统操作系统的所有功能,但是最终生成的代码尺寸还是可以很小(最小配置不到32KB,最大配置不超过256KB)。
和Linux系统的兼容性:因为NuttX整体设计、代码组织,编译过程和Linux非常接近,将会极大地降低Android/Linux开发者的迁移成本。
活跃开放的社区:很多厂商(比如小米、Sony,乐鑫、NXP等)和开源爱好者都在积极回馈社区。
Vela主要特性
高效性能:基于 NuttX 内核,具有高实时性、低功耗、低延迟等特点,适用于各种资源受限的嵌入式设备。
丰富组件:提供了多种常用的组件,如网络、音频、视频、图形、安全等,方便开发者快速构建应用。
易用框架:提供了一套统一的应用框架,支持 Lua、JavaScript 等脚本语言开发应用,并提供了丰富的 API 和文档。
万物互联:支持多种通信协议和标准,如 WiFi、BLE、Zigbee、MQTT 等,并提供了小米妙享技术,实现设备之间的无缝连接和协同。
Xiaomi Vela 系统架构如下

底层 NuttX 内核:提供最基本的任务调度、跨进程间通信、文件系统等基础 OS 功能,同时也提供简洁高效的设备驱动、轻量级的 TCP/IP 协议栈和电源管理等组件。
应用框架:分为上下两层,下层是为扩展系统服务而提供的通用应用框架,上层是针对不同的物联网应用而开发的定制应用框架,例如多媒体应用框架和传感应用框架,提供 Cloud SDK 可以方便开发者更快速的接入小米云服务。
开发者工具:除了常见的 Logger 和 Debugger 工具,Xiaomi Vela 还提供 Emulator 工具来帮助开发者提升调试效率,使用 Emulator,开发者可以利用 PC 端丰富的调试工具和调试信息,降低嵌入式系统开发和调试的难度。
小米于2023年12月上旬正式发布《小米澎湃 OS 技术白皮书》。根据其介绍,小米澎湃 OS 是一个为下一代的计算与多种设备生态设计的系统;也对系统架构进行了详细介绍、包括对各个子系统的架构以及关键技术的阐述,以及开发团队对各个子系统的设计思路。

小米表示:“希望通过分享这些技术成果和见解,激发更多的创意和合作,推动整个行业的进步,共同构建 “人车家全生态” 的未来。”其CEO 雷军在《白皮书》的序言中说道,2016 年,小米就开始研发跨端应用框架。2019 年,开始并行研发纯自研通用系统 Mina OS,并在部分产品上小规模量产验证,同时在实验室中也成功在手机上跑通,其中部分技术成果也已融入小米澎湃 OS。2021 年,小米开启了车机 OS 的研发。2022 年初,小米决定统一 MIUI、Vela、Mina、车机 OS 四个系统的软件架构。自此,小米的操作系统底层合并完成。
在2024年8月举行的第十九届 “开源中国开源世界” 大会上,Xiaomi Vela 开源负责人杜超受邀分享 “Xiaomi Vela 开源:共建繁荣的 IoT 操作系统生态” 主题演讲,他详细阐述了 Xiaomi Vela 的发展历程、技术优势以及开源与生态伙伴计划。Xiaomi Vela 是小米基于开源实时操作系统 NuttX 打造的物联网嵌入式软件平台,其在各种物联网硬件平台上提供统一的软件服务,支持丰富的组件和易用的框架,打通碎片化的物联网应用场景。‘Vela’ 一词源自拉丁语中船帆的含义,也是南方星空中船帆星座的名字。
杜超表示,Vela 目前已在超 4700 万台设备中广泛应用。在过去的三年里,它在智能家居、智能穿戴等领域覆盖了 1000 多 SKU。接下来,小米计划通过与 Android 和 Linux 系统的深度融合来改进智能手表、智能手机等设备的用户体验,并拓展至汽车、机器人、智能制造等更广泛的 IoT 应用场景。此外,小米将对外公开超过 1000 万行的 Xiaomi Vela 开源代码,目前已完成开源代码合规审查和优化开箱体验。届时,开源主站将设在 GitHub 上,同时在 Gitee 设立镜像站点,在 B 站上也将设立 Xiaomi Vela 的官方账号。
小米宣布 Vela 系统于2024年12月中旬正式开源,OpenVela 项目源代码已托管至 GitHub 和 Gitee,采用 Apache 2.0 开源协议。
Vela 是小米基于开源实时操作系统 NuttX 打造的物联网嵌入式软件平台,适配多种不同硬件规格的产品,最小系统仅需 8KB 内存,CPU 主频不限,适配任意 SoC 多核架构,支持柔性部署。在过去的三年里,小米 Vela 在智能家居、智能穿戴等领域覆盖了 1000 多 SKU。接下来,小米还计划与 Android 系统深度融合,进一步提升用户在智能手机、智能手表的设备体验。
项目介绍显示,OpenVela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。OpenVela 和 Xiaomi Vela 基于同一套代码实现,OpenVela 是开源版本。

Vela 的命名源自拉丁语中船帆的含义,也是南方星空中船帆星座的名字;小米选择这个名字的意义是希望与开发者一道携手,共同踏上星辰大海的征途。OpenVela 支持各种不同的架构(ARM32、ARM64、Risc-V、Xtensa、MIPS、CEVA 等)和硬件平台。该系统的 Native 主要是 C/C++,快应用使用 JavaScript 开发应用。OpenVela 技术特点如下:
高度可扩展:设计注重模块化与可扩展性,使其能够灵活适应多样的物联网应用场景。小到仅配备 32K RAM 的微型 BLE 模组,大到拥有 256M RAM 的智能有屏音箱,openvela 都能提供高度可扩展的支持。
一站式解决方案:随着时间的推移,openvela 不断沉淀了各类 AIoT 应用的共性需求,成为一个功能完备的软件平台,为各类物联网解决方案提供了全面的支持。厂商采用该操作系统可以显著降低研发成本并加速产品的上市时间。
成熟的异构计算支持:为异构多核系统提供了强大的支持,实现了 MCU、MPU、DSP、GPU 以及 NPU 等不同处理单元间无缝的 IPC 通信机制。此外还提供了一个高级的 RPC 框架,简化了 openvela 与 Android 和 Linux 系统的通信,使快速打造一个异构融合操作系统成为可能。
标准兼容和高可移植性:内核基于 Apache NuttX ,这个被称为 “Tiny Linux” 的系统为 openvela 提供了高标准的 POSIX 兼容性。通过持续提升其 POSIX 兼容性,其当前已达到 88% 的兼容水平。这种高标准的兼容性意味着在其他标准操作系统(例如 Linux)上开发的软件可以轻松迁移到 openvela,几乎不需要额外的工作。
全面的连接套件:提供了广泛的协议支持,包括蓝牙 BR / EDR / LE、LE Mesh、WiFi、Matter、LTE Cat1、以太网、CAN / LIN 等。同时它还能与小米的 HyperConnect 协议无缝集成,提供了强大的连接能力。
丰富的开发者工具:提供了一系列完备的开发者工具,包括系统监控、性能分析、调试器、追踪、崩溃分析和日志分析工具,为开发者提供了强大的支持。
该文章最后由 阿炯 于 2024-12-16 11:34:40 更新,目前是第 2 版。