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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-08-09 22:20:09

NuttX 介绍的相关文章

Nuttx的配置和编译

Nuttx的配置 Nuttx配置系统是由kconfig ,makefile和配置工具组成. 内核的Makefile分为5个组成部分: Makefile                             最顶层的Makefile .config                                内核的当前配置文档,编译时成为定层Makefile的一部分 arch/$(ARCH)/Makefile        和体系结构相关的Makefile s/ Makefile.*     

NuttX 构建系统

(嵌入式 实时操作系统 rtos nuttx 7.1 makefile) NuttX 构建系统 转载请注明出处: http://blog.csdn.net/zhumaill/article/details/24400441 1  简单介绍 NuttX 是通过 Makefile 文件组织编译的.Makefile 文件描写叙述了整个 NuttX project的编译.链接等规则,告诉 make 要编译哪些文件.如何编译以及在什么条件下编译. NuttX 没有使用 Autoconf. Automake

数据库介绍与分类

目录 数据库介绍与分类... 1 1.1 数据库介绍... 2 1.1.1什么是数据库... 2 1.2数据库的种类... 2 1.2.1关系型数据库介绍... 2 1.2.2非关系型数据库介绍... 3 1.3 常用关系型数据库产品介绍... 4 1.3.1 Oracle数据库... 4 1.3.2 MySQL数据库... 5 1.3.3 MariaDB数据库... 5 1.3.4 SqlServer数据库... 6 1.3.5 Access数据库... 6 1.3.6 其他不常用数据库...

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳

苹果高管斯洛基介绍A11仿生芯片背后的秘密!

9月13日凌晨,苹果在秋季发布会上正式推出了全新一代iPhone智能手机:iPhone 8.iPhone 8 Plus和iPhone X(发音为iPhone 10).这三款新设备的都搭载了全新的移动芯片,苹果称之为A11仿生(不是"Fusion"),并表示这是iPhone上有史以来最强大.最智能的芯片. 通过发布会介绍的A11仿生芯片细节,不难发现苹果自主定制芯片野心非常大,可谓雄心勃勃.并且随着时间的推移,针对半导体芯片的定制设计越来越多,A11达到了前所未有的高度.苹果在发布会中的

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

微信小程序管理后台介绍

微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来 ------------------------------------------------------------ http://www.cnblogs.com/likwo/p/6057258.html 好推小程序统计:https://weixin.hotapp.cn关键指标分析推广效果,一行代码接入微信登录 ---------------------------