高可靠嵌入式实时操作系统NuttX

NuttX实时操作系统概述

NuttX是一个嵌入式实时操作系统(Embedded RTOS),它很小巧,在微控制器环境中使用。NuttX主要遵循POSIX和ANSI标准开发,可从8位微控制器环境扩展到32位微控制器环境,对于在上述标准下不可用的功能,或者对于不适合嵌入式环境(如fork())的功能,采用了Unix和其他常见RTOS的其他标准API(例如VxWorks)。NuttX支持ARM、Atmel AVR、x86、MIPS、OpenRISC、Renesas、RISC-V、Zilog、Misoc等多种CPU体系结构。

高可靠嵌入式实时操作系统NuttX

实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。实时系统指系统必须要满足确定性,而不是要求速度足够快。例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。并不是Windows不够快或效率不够高,而是因为它不能提供确定性,因此,Windows不是一个实时操作系统。

高可靠嵌入式实时操作系统NuttX

NuttX功能特性

  • 任务管理。
  • 模块化设计。
  • 完全抢占。
  • 可扩展。
  • 高度可配置。
  • 可以轻松扩展到新的处理器架构。
  • 支持FIFO, round-robin, and “sporadic”调度。
  • 强实时,确定性并支持优先级继承。
  • 任务管理,消息队列,计数信号量,时钟/计时器,信号,pthread线程,互斥锁,环境变量,文件系统。
  • 类似于VxWorks的任务管理和看门狗计时器。
  • BSD套接字接口。
  • 对称多处理(SMP)
  • 可加载的内核模块;轻量级的嵌入式共享库。
  • 线程本地存储(TLS)
  • 内置线程CPU负载测量。
  • 自定义NuttX C库。
高可靠嵌入式实时操作系统NuttX

NuttX文件系统

  • 微小的内存根伪文件系统
  • 虚拟文件系统(VFS)
  • 通用系统日志记录(SYSLOG)支持
  • FAT12 / 16/32文件系统支持
  • NFS网络文件系统支持
  • NXFFS。微型NuttX磨损均衡FLASH文件系统
  • SPIFFS。FLASH文件系统,最初由Peter Anderson撰写
  • LittleFS。来自ARM mbed的FLASH文件系统
  • ROMFS文件系统支持
  • CROMFS文件系统支持(压缩)
  • BINFS伪文件系统支持
  • HOSTFS文件系统支持(仅模拟)
  • UserFS。提供用户应用程序文件系统。
  • procfs 伪文件系统。

NuttX网络协议栈

  • 支持IPv4,IPv6,TCP/IP,UDP,ARP,ICMP,ICMPv6,IGMPv2。
  • 流,数据报和原始数据包套接字
  • 地址族:IPv4/IPv6(AF_INETAF_INET6
    ),原始套接字(AF_PACKET),原始IEEE 802.15.4(AF_IEEE802154),原始蓝牙(AF_BLUETOOTH)和本地Unix域套接字支持(AF_LOCAL
  • 特殊的INET协议套接字:原始ICMP和ICMPv6协议ping套接字(IPPROTO_ICMPIPPROTO_ICMP6
  • IP转发
  • DNS名称解析
  • BSD兼容套接字层
  • 网络实用程序(DHCP服务器和客户端,SMTP客户端,TELNET服务器和客户端,FTP服务器和客户端,TFTP客户端,HTTP服务器和客户端,NTP客户端)
  • ICMPv6自主自动配置
  • NFS客户端网络文件系统(NFS,版本3,UDP)的支持
  • PHY链接状态管理
  • XML RPC服务器
  • 支持网络模块(如ESP8266)


分享到:


相關文章: