Nuttx操作系统

前几天答辩的时候看到有同学在用,回来后查了点资料。

来源:天又亮了

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://www.nuttx.org
  Wiki:http://www.nuttx.org/doku.php?id=wiki
  下载:http://sourceforge.net/projects/nuttx

时间: 2024-08-27 05:15:28

Nuttx操作系统的相关文章

Pixhawk之姿态解算篇(1)_入门篇(DCM Nomalize)

一.开篇 慢慢的.慢慢的.慢慢的就快要到飞控的主要部分了,飞控飞控就是所谓的飞行控制呗,一个是姿态解算一个是姿态控制,解算是解算,控制是控制,各自负责各自的任务.我也不懂.还在学习中~~~~ 近期看姿态预计部分看的太累了,明显发现基础知识太薄弱,什么欧拉角.DCM.四元数.gyro误差.矫正.正交化等各个概念.然后就是各种转换公式.接下来结合代码介绍一些主要的东西.太深入的还不了解~~~ 一定要多看论文啊,英文版的论文(也没有中文的.国人的悲哀啊).尽管看着头疼,看是看完了以后就会发现很多不了解

nuttx飞控操作系统

NuttX飞控系统 程序设计思路,首先我们不管里面操作系统是怎么样实现.在这个系统中我们学会用API就行了. 主处理器运行NuttX实时操作系统,所有功能都通过任务进程实现[4].主要的进程有传感器数据采集.姿态估算.姿态控制.飞行器状态识别与切换.协处理器控制.日志记录.进程间进行通信是程序结构的重要部分.  也就是说在飞机中就有几个主要进程控制飞机.每个进程负责些什么呢. 如图3所示, 传感器数据采集进程: 采集的所有传感器数据. 姿态估计进程: 利用传感器数据估算出飞行器当前姿态. 协处理

面向物联网的几大开源操作系统

在过去的十年间,大多数新型开源操作系统已从移动市场转向物联网市场.本文介绍了面向物联网的许多新型开源操作系统.我们之前的文章介绍了开源物联网框架,以及面向物联网和消费者智能家居设备的Linux和开源开发硬件. 除了介绍面向物联网的新型嵌入式Linux发行版外,我还介绍了OpenWrt等几款比较老的轻量级发行版,它们在这个领域迎来了新生.虽然Linux发行版主要针对网关和集线器,但是面向物联网的非Linux开源操作系统取得了同样迅猛的发展,它们可以在微控制器单元(MCU)上运行,通常面向物联网边缘

常用的面向物联网的开源操作系统有哪些?

本文主要为大家介绍了面向物联网的许多新型开源操作系统,希望可以帮助大家更好的选择相应系统进行开发. 虽然Linux发行版主要针对网关和集线器,但是面向物联网的非Linux开源操作系统取得了同样迅猛的发展,它们可以在微控制器单元(MCU)上运行,通常面向物联网边缘设备. 请记住一点:如今几乎所有的操作系统都声称有一些物联网连接功能,所以本文这份名单有点随意.本文介绍的开源操作系统大多数符合下列属性:占用内存少.电源效率高.模块化可配置通信堆栈,对特定的无线和传感器技术提供强有力的支持.一些项目注重

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

NuttX 介绍

(嵌入式 实时操作系统 rtos nuttx 7.1) NuttX 介绍 转载请注明出处:http://blog.csdn.net/zhumaill/article/details/24197637 1  NuttX 实时操作系统 NuttX 是一个实时操作系统(RTOS).强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性.NuttX 主要遵循  Posix 和 ANSI 标准,对于在这些标准下不支持的功能,或者不适用于深度嵌入环境的功能(如 fork()),採用来自 Uni

c#判断操作系统是32位还是64位

做一个c#项目时,遇到要获取操作系统位数的问题,在网上找了几个小时,都没有找到比较完整的解决方案.话不多说,直接上可以运行的代码(简单.粗暴) using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; internal static class Win32Native { [ReliabilityContract(Consistency.WillNotCorruptState, Cer.May

使用Cobbler批量安装操作系统

个人博客地址:http://www.pojun.tech/ 欢迎访问 前言 在实际生产中,我们常常会遇到这样一种情况,就是我们需要同时安装几十甚至上百台服务器,如果我们使用U盘或者光盘的方式的话,或许老板直接就将我们辞退了.这里我们介绍一种能够实现自动化安装操作系统的方式. 我们搭建Cobbler的实验环境是基于CentOS 7.3 -1611 的基础的. 同时这个实验可以帮助你一步步的完成所有的操作,不过,如果你想自定义安装的内容的话,建议你先看本文 自定义kickstart文件 部分,以便有

China Operating System 电脑操作系统 2016全球互联网排名

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 电脑操作系统 China Operating System 2016全球互联网排名 ========