NuttX 介绍
(嵌入式 实时操作系统 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
版权声明:本文博客原创文章,博客,未经同意,不得转载。
NuttX 介绍的更多相关文章
- NuttX 构建系统
(嵌入式 实时操作系统 rtos nuttx 7.1 makefile) NuttX 构建系统 转载请注明出处: http://blog.csdn.net/zhumaill/article/detai ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
- HTML 事件(一) 事件的介绍
本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...
- HTML5 介绍
本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...
随机推荐
- Backbone.js 为复杂Javascript应用程序提供模型(models)、集合(collections)、视图(views)的结构
Backbone.js 为复杂Javascript应用程序提供模型(models).集合(collections).视图(views)的结构.其中模型用于绑定键值数据和 自定义事件:集合附有可枚举函数 ...
- hotmail邮箱pop3server设置方法
hotmail邮箱 的POP3/SMTP功能仅仅向Hotmail Plus的用户开放,普通用户想要使用这一功能的话,得进行一些特别的设置.如今这一功能总算面向全部的用户开放了,虽然微软官方还没宣布这一 ...
- myeclipse中,项目上有个叉报错,文件没有错误
同事将他的java项目交接给了我.和平时的交接一样.他把他最新的源码.打成压缩包,发给我. 我解压后.使用myeclipse开发工具.通过导入,将项目导入到我的开发工具中.这个时候有一个问题出现了.在 ...
- Socket编程实践(12) --UDP编程基础
UDP特点 无连接,面向数据报(基于消息,不会粘包)的传输数据服务; 不可靠(可能会丢包, 乱序, 反复), 但因此普通情况下UDP更加高效; UDP客户/服务器模型 UDP-API使用 #inclu ...
- 基于.net开发chrome核心浏览器【一】
原文:基于.net开发chrome核心浏览器[一] 说明: 这是本系列的第一篇文章,我会尽快发后续的文章. 源起 1.加快葬送IE6浏览器的进程 世界上使用IE6浏览器最多的地方在中国 中国使用IE6 ...
- 双向绑定 TwoWay MVVM
1前台代码 <Grid> <StackPanel > <Grid x:Name="gridOne"> <Grid.Resources> ...
- 数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)
数据一致性(consistency).服务可用性(availability).分区容错性(partition-tolerance) 分布式系统理论基础 - CAP 2016-04-04 18:27 b ...
- 编C语言单元测试框架CUnit方法库
/********************************************************************* * Author : Samson * Date ...
- 协同编辑多人word一个小技巧文件
协同编辑多人word窍门 近期在工作中编写标书时因为不同内容分给了各个部门去制作.可是在汇总后遇到再次改动的问题.对方把改动后的部分文档发给我粘贴到标书中后,所有的格式所有都乱了.又一次整理格式.标题 ...
- easyui LinkButton
http://www.zi-han.net/case/easyui/menu&button.html