您当前的位置: 首页 >  嵌入式
  • 3浏览

    0关注

    880博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

嵌入式操作系统介绍之 NuttX

CodeAllen嵌入式编程 发布时间:2021-07-27 08:27:23 ,浏览量:3

更好的排版:https://mp.weixin.qq.com/s/W5-PhZmL8aZpT4nKy14_HQ 目录

1  NuttX 实时操作系统

2  关键特征

3  支持的平台

4  支持的板卡

5  文件系统

6  设备驱动

7  C/C++ 库

8  网络

9  Flash 支持

10  USB 支持

11  图形支持

12  插件

13  开发环境

14  链接

048: Overview about NuttX Drivers - YouTube

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

关注
打赏
1665938897
查看更多评论
立即登录/注册

微信扫码登录

0.1123s