认识Nuttx和XiaomiVela

参考如下网站,先认识Nuttx

NuttX实时操作系统介绍(最详细)-CSDN博客

NuttX是一个成熟的实时操作系统,于07年由Gregory Nutt先生正式开源,2016年被三星选为TizenRT操作系统的内核,2019年在小米的推动下正式进入Apache基金会,经过开源社区多年的不懈努力,NuttX功能丰富,性能稳定,商业化成熟度高,Fitbit最近两代的手环产品和索尼多款消费级产品都是基于NuttX开发的。

NuttX可运行于各种处理器架构和硬件平台上,包括ARM、MIPS、AVR等其重点遵从特定的标准并且尽量 可伸缩良好且可适应从8位到32位单片机环境,在stm32上也能跑。Nuttx主要遵循的标准是 Posix和ANSI标准。

Xiaomi Vela 项目,是小米基于开源实时操作系统NuttX打造的嵌入式物联网软件平台。

iot.mi.com/vela

小米基于 Apache NuttX 开发了为解决物联网碎片化而生的,物联网领域自研的嵌入式软件平台——Xiaomi Vela。在各种不同的物联网硬件上提供统一的软件平台,支持高性价比的MCU设备,为IoT的繁荣构建基础设施。

Xiaomi Vela 通过组件化能力,做到高度可伸缩、可裁剪,支持丰富的组件和易用的框架。同时,可以很方便的去支持功能差异跨度极大的各种物联网设备。还与 Linux 保持高度兼容性,适合做 Linux 的平替,帮助硬件实现降本。并基于物联网的特性,在多核异构、安全、超低功耗渲染和连接方面都建设了独有的能力。

IoT领域跟传统的PC和手机行业相比,最大的差异点就是IoT设备极其碎片化,这个碎片化给小米自身以及整个行业带来了效率低下的问题(代码的不可复用、软件的重复建设)。随着IoT行业的高速发展,到2030年全球还会新增150亿IoT设备,所带来的碎片化问题只会是越来越严重。因此,迫切的需要一个统一的软件平台来打通碎片化的IoT应用,让其能够和谐共通。

补充:小米开发者平台

开发者平台 (mi.com)

更多待补充。

Nuttx源码和文档

Nuttx的源码在github上可以获取:

The Apache Software Foundation · GitHub

可以看到,nuttx是属于Apache的产品之一,我们在其工程上搜索nuttx相关的工程项目:

最重要的就是nuttx和nuttx-apps

其中,nuttx是系统内核,nuttx-apps是nuttx集成好的一些应用。

我们点进去,就能看到这两个项目的目录结构。

二者点进去的网站如下:

nuttx

GitHub - apache/nuttx: Apache NuttX is a mature, real-time embedded operating system (RTOS)

nuttx-apps

GitHub - apache/nuttx-apps: Apache NuttX Apps is a collection of tools, shells, network utilities, libraries, interpreters and can be used with the NuttX RTOS

另外,nuttx有个在线文档:

NuttX Documentation — NuttX latest documentation (apache.org)

其中,对目录结构也有一些介绍:

Nuttx内核的目录结构

Directory Structure — NuttX latest documentation (apache.org)

Nuttx应用层的目录结构

Applications — NuttX latest documentation (apache.org)

更多待补充。

Nuttx的学习资料很少,这里提供一些其他用户写的文章参考:

Nuttx驱动机制 - 简书 (jianshu.com)

这个用户写了一系列的文章

可以看看。

还有一些:

nuttx应用笔记1---启动过程分析_nuttx里system中的nsh怎么启动别的应用的-CSDN博客

在NuttX中,任务的优先级是通过数值来表示的,其中数值越大,任务的优先级越高。这一点与FreeRTOS相似,后者也是数值越大,优先级越高。

总的来说,NuttX中的任务优先级设置是一个重要的调度参数,它决定了任务执行的先后顺序。理解并合理配置任务优先级对于开发高效稳定的实时应用至关重要。开发者应充分利用NuttX提供的丰富接口和配置选项,以实现最佳的系统性能。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐