1.1NuttX 介紹

轉載請註明出處: 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

发表回复

相关推荐

java客户端:Jedis和Jedis连接池的基本使用和配置

(一)获取Jedis Jedis是基于java语言的redis_cli maven依赖: <!-- Redis的redis客户端 https://mvnrepository.com/art ...

· 13秒前

兰溪教育|兰溪市教育局首推复学码获成岳冲副省长批示

近日,从市府办获悉,我市专报的《兰溪市启动“复学码”智控校园疫情守护师生复学》做法获成岳冲副省长批示肯定。目前,该项工 ...

· 28秒前

林彪的侄子,未做壞事仍被隔離審查,後來擔任建設部長

他是林彪的侄子,但在林彪輝煌的時刻,他從來沒有想過從林彪那裡得到什麼。相反,他一直與身居高位的叔叔保持距離,堅持父親...

· 33秒前

國慶長假來瞭,你不得不品嘗的“紅色”美食與小吃

國慶節來瞭,祖國的生日。每到這個時候長輩們都會感嘆,現在日子比以前可是好多瞭,想吃啥吃啥,想去哪說走就走。對於年輕人...

· 1分钟前

Wartsila(瓦錫蘭)提供的脫碳減排建模服務解讀

近日,向技術公司轉型的芬蘭船舶發動機巨頭瓦錫蘭宣佈與嘉年華郵輪公司簽署瞭協議,宣佈將為嘉年華運營的系列郵輪提供脫碳建...

· 2分钟前