轉載請註明出處: NuttX 介紹_zhumaill的博客-CSDN博客
1 NuttX 實時操作系統
NuttX 是一個實時操作系統(RTOS),強調標準兼容和小型封裝,具有從8位到32位微控制器環境的高度可擴展性。NuttX 主要遵循 Posix 和 ANSI 標準,對於在這些標準下不支持的功能,或者不適用於深度嵌入環境的功能(如 fork()),采用來自 Unix 和常見 RTOS (如 VxWorks)的額外的標準 API。
NuttX 的第一個版本由 Gregory Nutt 於 2007 年在寬松的 BSD 許可證下發佈。
2 關鍵特征
標準兼容
核心任務管理
模塊化設計
完全可搶占
天然可擴展
高度可配置
圖形化配置工具
容易擴展到新的處理器架構、 SoC 架構或板級架構
FIFO 和輪轉調度
實時的、確定性的、支持優先級繼承
類 POSIX/ANSI 的任務控制、命名消息隊列、計數信號量、時鐘/定時器、信號、pthread、環境變量、文件系統
類VxWorks的任務管理和看門狗定時器
BSD 套接字接口
優先級管理的擴展
可選的具有地址環境的任務(進程)
可繼承的“控制終端”和 I/O 重定向
請求式分頁
系統日志
可以構建為開放的、平面的嵌入式 RTOS,或單獨構建為具有系統調用接口的微內核
內建每線程 CPU 負載測量
良好的文檔支持
3 支持的平臺
3.1 Allwinner
A10 (Cortex-A8)
3.2 Atmel
AVR ATMega128 (8-bit AVR)
AVR AT90USB64x and AT90USB6128x (8-bit AVR)
AVR32 AT32UC3BXXX (32-bit AVR32)
Atmel SAMD20 (ARM Cortex-M0+)
Atmel SAM3U (ARM Cortex-M3)
Atmel SAM3X (ARM Cortex-M3)
Atmel SAM4L (ARM Cortex-M4)
Atmel SAM4S (ARM Cortex-M4)
Atmel SAM4E (ARM Cortex-M4)
Atmel SAMA5D3 (ARM Cortex-A5)
3.3 Freescale
M68HCS12
Freescale i.MX1 (ARM920-T)
FreeScale KL25Z (ARM Cortex-M0+)
FreeScale Kinetis K40 (ARM Cortex-M4)
FreeScale Kinetis K60 (ARM Cortex-M4)
3.4 基於主機 PC 的仿真
Linux/Cygwin 用戶模式仿真
3.5 Intel
Intel 80x52
Intel 80x86
3.6 MicroChip
PIC32MX2xx Family (Modified MIPS32)
PIC32MX4xx Family (Modified MIPS32)
PIC32MX7xx Family (Modified MIPS32)
3.7 nuvoTon
nuvoTon NUC120 (ARM Cortex-M0)
3.8 NXP
NXP LPC214x (ARM7TDMI)
NXP LPC2378 (ARM7TDMI)
NXP LPC3131 (ARM9E6JS)
NXP LPC315x (ARM9E6JS)
NXP LPC176x (ARM Cortex-M3)
NXP LPC178x (ARM Cortex-M3)
NXP LPC43xx (ARM Cortex-M4)
3.9 Renesas/Hitachi:
Renesas/Hitachi SuperH
Renesas M16C/26
3.10 STMicroelectronics
STMicro STR71x (ARM7TDMI)
STMicro STM32L152 (STM32 L "EnergyLite" Line, ARM Cortex-M3)
STMicro STM32F100x (STM32 F1 "Value Line"Family, ARM Cortex-M3)
STMicro STM32F103C4/C8 (STM32 F1 "Low- and Medium-Density Line" Family, ARM Cortex-M3)
STMicro STM32F103x (STM32 F1 Family, ARM Cortex-M3)
STMicro STM32F107x (STM32 F1 "Connectivity Line" family, ARM Cortex-M3)
STMicro STM32F207x (STM32 F2 family, ARM Cortex-M3)
STMicro STM32F303x (STM32 F3 family, ARM Cortex-M4).
STMicro STM32F407x (STM32 F4 family, ARM Cortex-M4)
STMicro STM32 F427/437 (STM32 F4 family, ARM Cortex-M4)
STMicro STM32 F429 (STM32 F4 family, ARM Cortex-M4)
3.11 Texas Instruments (some formerly Luminary)
TI TMS320-C5471 (ARM7TDMI)
TI Calypso (ARM7TDMI)
TI TMS320-DM320 (ARM9E6JS)
TI/Stellaris LM3S6432 (ARM Cortex-M3)
TI/Stellaris LM3S6432S2E (ARM Cortex-M3)
TI/Stellaris LM3S6918 (ARM Cortex-M3)
TI/Stellaris LM3S6965 (ARM Cortex-M3)
TI/Stellaris LM3S8962 (ARM Cortex-M3)
TI/Stellaris LM3S9B96 (ARM Cortex-M3)
TI/Stellaris LM4F120x (ARM Cortex-M4)
TI/Tiva TM4C123G (ARM Cortex-M4)
3.12 ZiLOG
ZiLOG ZNEO Z16F
ZiLOG eZ80 Acclaim!
ZiLOG Z8Encore!
ZiLOG Z180
ZiLOG Z80
4 支持的板卡
16z
amber
arduino-due
avr32dev1
c5471evm
cloudctrl
compal_e86
compal_e88
compal_e99
demo9s12ne64
ea3131
ea3152
eagle100
ekk-lm3s9b96
ez80f910200kitg
ez80f910200zco
fire-stm32v2
freedom-kl25z
hymini-stm32v
kwikstik-k40
lincoln60
lm3s6432-s2e
lm3s6965-ek lm3s8962-ek
lm4f120-launchpad
lpc4330-xplorer
lpcxpresso-lpc1768
maple
mbed
mcu123-lpc214x
micropendous3
mikroe-stm32f4
mirtoo
mx1ads
ne64badge
ntosd-dm320
nucleus2g
nutiny-nuc120
olimex-lpc1766stk
olimex-lpc2378
olimex-lpc-h3131
olimex-stm32-p107
olimex-stm32-p207
olimex-strp711
open1788
p112 pcblogic-pic32mx
pcduino-a10
pic32mx7mmb
pic32-starterkit
pirelli_dpl10
pjrc-8051
px4fmu-v2_upstream
qemu-i486
rgmp
sam3u-ek
sam4e-ek
sam4l-xplained
sam4s-xplained
sama5d3x-ek
samd20-xplained
神舟IV號
sim
skp16c26
spark
stm3210e-eval
stm3220g-eval
stm3240g-eval
stm32f100rc_generic stm32f3discovery
stm32f429i-disco
stm32f4discovery
stm32ldiscovery
stm32_tiny
stm32vldiscovery
sure-pic32mx
teensy
tm4c123g-launchpad
twr-k60n512
ubw32
us7032evb1
viewtool-stm32f107
vsn
xtrs
z16f2800100zcog
z80sim
z8encore000zco
z8f64200100kit
zkit-arm-1769
zp214xpa
5 文件系統
基於內存的微型根偽文件系統
虛擬文件系統(VFS)
可掛載的卷:綁定掛載點、文件系統和塊設備驅動器。
通用系統日志(SYSLOG)支持
FAT12/16/32文件系統支持
NFS客戶端:客戶端側支持網絡文件系統(NFS,版本3,UDP)
NXFFS:微型 NuttX 損耗平衡 FLASH 文件系統
SMART:Ken Pettit提供的 FLASH文件系統。
procfs/ 文件系統
基於 SPI 的 MMC/SD/SDH 卡的通用驅動
ROMFS文件系統支持
二進制加載器支持下列格式:
脫離鏈接的 ELF 模塊
脫離鏈接的 NXFLAT 模塊。NXFLAT 是可以從文件系統芯片內執行的二進制格式。
PATH 變量支持
通過 TFTP 和 FTP、HTML (wget)、 Zmodem (sz 和 rz) 傳輸文件(接收和發送)。
6 設備驅動
VFS 支持字符和塊驅動
網絡、 USB (主機)、 USB (設備)、 串口、 I2C、 I2S、 NAND、 CAN、 ADC、 DAC、 PWM、 正交編碼器和看門狗定時器驅動架構。
RAMDISK、 管道、 FIFO、 /dev/null、 /dev/zero 驅動
基於 SPI 或 SDIO 的 MMC/SD/SDH 卡的通用驅動
電源管理子系統
內建 FreeModBus 1.5.0 版提供的 ModBus 支持
圖形設備:幀緩沖驅動、圖形和段式 LCD 驅動
音頻子系統:編解碼器、音頻輸入和輸出驅動。命令行和圖形界面媒體播放器應用程序
輸入設備:觸摸屏、USB 鍵盤、USB鼠標、基於 GPIO 的按鈕和鍵盤
模擬設備:支持模擬到數字轉換(ADC)、數字到模擬轉換(DAC)、多路復用器和放大器
7 C/C++ 庫
完全集成在 OS 內的標準 C 庫
通過一個標準數學庫提供浮點支持
插件 uClibc++ 模塊提供標準 C++ 庫,支持 io 流、 字符串、 STL、 RTTI、異常等(LGPL)
8 網絡
TCP/IP、 UDP、 ICMP、 IGMPv2(客戶端)棧
SLIP
一個 cJSON 移植
小型封裝(基於 uIP)
BSD兼容的套接字層
網絡實用程序(DHCP 服務器和客戶端、SMTP 客戶端、 TELNET 客戶端、FTP 服務器和客戶端、TFTP 客戶端、HTTP 服務器和客戶端、NTP 客戶端)。可繼承的 TELNET 會話(如“控制終端”)。
NFS 客戶端:客戶端側支持網絡文件系統(NFS,版本3,UDP)
一個 Jeff Poskanzer 的 THTTPD HTTP 服務器的 NuttX 移植,集成於 NXFLAT,提供嵌入式 CGI。
UDP 網絡發現, XML RPC 服務器
支持網絡模塊(如 TI CC3000 WLAN 模塊)
9 Flash 支持
靈感來自 MTD 的存儲技術設備接口
NAND 支持
FTL:簡單的 Flash 轉換層,支持 FLASH 上的文件系統
NXFFS: NuttX 損耗平衡 FLASH 文件系統
支持基於 SPI 的 FLASH 設備
10 USB 支持
10.1 USB 主機支持
USB 主機控制器驅動和設備依賴的 USB 類驅動的 USB 主機架構
可用於 NXP LPC17xx 的 USB 主機控制器驅動
可用於 USB 大容量存儲設備和 HID 鍵盤的設備依賴的 USB 類驅動
10.2 USB 設備支持
USB 設備控制器驅動和設備依賴的 USB 類驅動的類 Gadget 架構
可用於 PIC32、 NXP LPC17xx、 LPC214x、 LPC313x、 LPC43xx、 STMicro STM32F1x、 STM32F2x、 STM32F4x 和 TI DM320 的 USB 設備控制器驅動
可用於 USB 串口和 USB 大容量存儲設備的設備依賴的 USB 類驅動
內建用於 USB 調試的 USB 追蹤功能
11 圖形支持
幀緩沖驅動
並行端口和 SPI 端口的 LCD 和OLED 的圖形 LCD 驅動
段式 LCD 驅動
NX Graphics 子系統:一個圖形庫、窗口化系統和字體支持,工作於幀緩沖或 LCD 驅動
NuttX Widgets:用保守的 C++ 編寫的圖形用戶界面,集成於 NX Graphics
NuttX 窗口管理器:一個微型窗口管理器,基於 NX Graphics 子系統和 NuttX Widgets
12 插件
12.1 NuttShell
一個用於 NuttX 的、小型的、可擴展的、類 bash 的 shell,具有豐富的特征集和小型封裝。
12.2 Pascal 運行時
Pascal 插件可以從 SourceForge 網站下載。
13 開發環境
Linux + GNU make + GCC/binutils for Linux
Linux + GNU make + SDCC for Linux
Windows with Cygwin + GNU make + GCC/binutils (Cygwin下自定義構建)
Windows with Cygwin + GNU make + SDCC (Cygwin下自定義構建)
Windows with Cygwin + GNU make + Windows 本地工具鏈
Windows 本地 (CMD.exe) + GNUWin32 (含 GNU make) + MinGW 主機 GCC 編譯器 + Windows 本地工具鏈
Wine + GNU make + Windows 本地工具鏈
14 鏈接
官方網站: http://github.com/apache/incubator-nuttx
應用apps下載: http://github.com/apache/incubator-nuttx-apps
上一篇
下一篇
(一)获取Jedis Jedis是基于java语言的redis_cli maven依赖: <!-- Redis的redis客户端 https://mvnrepository.com/art ...