NuttX,是一个实时操作系统(RTOS),强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性。
NuttX的关键特征是:标准兼容,核心任务管理,图形化配置工具,支持优先级继承。开源飞控PX4中使用了NuttX实时操作系统。
NuttX主要遵循Posix和ANSI标准,对于这些标准下不支持的功能,采用来自unix和常见RTOS(如VxWorks)的额外标准API。NuttX可以构建为开放的、平面的嵌入式RTOS,或者单独构建为具有系统调用接口的微内核。NuxttX编译环境可以选择windows平台,也可以选择Linux平台。
版本发布
2012年03月11日,NuttX 6.16 发布,该版本支持 ARM Cortex-M4 FPU,新的正交编码框架,增加 STM32 F2 系列和 PIC32 USB 和以太网驱动,修复了不少 bug,特别是一些非常关键的 TCP/IP 网络问题。
2012年04月15日,NuttX 6.17 发布,增加对 Calypso CPU 的支持,增加 NxConsole,扩展对 STMicro STM32 和 Microchip PIC32 平台的支持。
2012年05月20日,NuttX 6.18 发布,该版本主要是支持新版本的 NxWidgets,并进行相应的扩展,同时提供新的看门狗定时器、LCD 和触摸屏的 STM32 驱动,支持两款新的 PIC32 主板。
2012年06月16日,NuttX 6.19 发布了,该版本首次支持 NFS 客户端,允许连接到 NFS 服务器以及访问大的网络文件系统,另外还包括对 Mikroelektronkia PIC32MX7 MMB 主板的完整支持。
2012年07月13日,NuttX 6.20 发布,该版本继续实现 NuttX 电源管理演示,同时支持 PIC32MX1/2 系列微处理器以及整个 NXP LPC43xx 系列,主板增加对 TI/群星 EKK-LM3S9B96 的支持。
产品与功能
它有一个小巧是在微控制器的环境中使用。这是完全可扩展,从小型(8位)至中型嵌入式(32位)系统。它的目的还在于要完全符合标准,完全实时,并完全开放。NuttX的关键功能包括核心任务管理、模组化的微核心、完全可抢占、可扩展性、高度可配置性、容易移植到各类新的处理器、SoC或者板级架构上。它还支持先进先出和时间片轮转调度,并可以采取无节拍内核。NuttX提供了实时、具备确定性的操作,具备和POSIX/ANSI类似的任务控制,有名消息队列,计数信号量,时钟、定时器和信号,POSIX线程,环境变量和文件系统。它还具备和vxworks类似的任务管理和看门狗定时器,以及和BSD类似的socket接口。NuttX还支持对称多处理器、可加载的内核模块、线程本地存储(TLS)、系统日志,并且可以选择实现的系统调用或直接函数调用。内置了可针对各线程配置的CPU负载监控,客制化的NuttX C库,并拥有完善的用户手册描述。
支持架构
NuttX支持多种架构,包括ARM(ARM7TDMI, ARM920T, ARM926EJS, ARM Cortex-A5/A8/A9/R4/R4F/M0/M0+/M3/M4/M7),Atmel avr(Atmel 8-bit AVR, AVR32),Freescale(M68HCS12),Intel(80×86),MIPS(MicroChip PIC32MX, PIC32MZEF),Misoc(LM32),OpenRISC(mor1kx),Renesas/日立制作所(SuperH, M16C/26, RX65N),RISC-V(LiteX on ARTY A7),Xtensa LX6(Expressif ESP32),Zilog(Z16F, eZ80 Acclaim!, Z8Encore!, Z180, Z80)等。这些支持的架构展示了NuttX的高度可配置性和易于移植性。