• 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

  • 相关阅读:
    sql学习笔记
    正则表达式30分钟入门教程(转) 收藏
    学习Javascript闭包(Closure)
    Bug等级规范
    下载1G的东西用1M网速理论上要用多长时间?
    C#多线程学习(四) 多线程的自动管理(线程池)
    JS调用WebServers
    北京软件公司排名
    Js调用WebServices
    C#多线程学习(三) 生产者和消费者
  • 原文地址:https://www.cnblogs.com/yffq/p/4558711.html
Copyright © 2020-2023  润新知