您的位置:首页 > 其它

NuttX 介绍

2015-07-06 14:26 423 查看
(嵌入式 实时操作系统 rtos nuttx 7.1)

NuttX 介绍

转载请注明出处:http://blog.csdn.net/zhumaill/article/details/24197637

1 NuttX 实时操作系统

NuttX 是一个实时操作系统(RTOS)。强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性。NuttX 主要遵循 Posix 和 ANSI 标准,对于在这些标准下不支持的功能,或者不适用于深度嵌入环境的功能(如 fork()),採用来自 Unix 和常见 RTOS (如 VxWorks)的额外的标准 API。

NuttX 的第一个版本号由 Gregory Nutt 于 2007 年在宽松的 BSD 许可证下公布。

2 关键特征

标准兼容
核心任务管理
模块化设计
全然可抢占
天然可扩展
高度可配置
图形化配置工具
easy扩展到新的处理器架构、 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文件系统支持
NFSclient:client側支持网络文件系统(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 的button和键盘
模拟设备:支持模拟到数字转换(ADC)、数字到模拟转换(DAC)、多路复用器和放大器

7 C/C++ 库

全然集成在 OS 内的标准 C 库
通过一个标准数学库提供浮点支持
插件 uClibc++ 模块提供标准 C++ 库,支持 io 流、 字符串、 STL、 RTTI、异常等(LGPL)

8 网络

TCP/IP、 UDP、 ICMP、 IGMPv2(client)栈
SLIP
一个 cJSON 移植
小型封装(基于 uIP)
BSD兼容的套接字层
网络有用程序(DHCP server和client、SMTP client、 TELNET client、FTP server和client、TFTP client、HTTP server和client、NTP client)。可继承的 TELNET 会话(如“控制终端”)。

NFS client:client側支持网络文件系统(NFS。版本号3,UDP)
一个 Jeff Poskanzer 的 THTTPD HTTP server的 NuttX 移植,集成于 NXFLAT。提供嵌入式 CGI。
UDP 网络发现, XML RPC server
支持网络模块(如 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 图形支持

帧缓冲驱动
并行port和 SPI port的 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://www.nuttx.org

Wiki:http://www.nuttx.org/doku.php?id=wiki

下载:http://sourceforge.net/projects/nuttx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: