高可靠嵌入式實時操作系統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)


分享到:


相關文章: