NuttX 介绍

关于Nuttx操作系统 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  关键特征

  • 标准兼容
  • 核心任务管理
  • 模块化设计
  • 完全可抢占
  • 天然可扩展
  • 高度可配置
  • 图形化配置工具
  • 容易扩展到新的处理器架构、 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

NuttX 启动流程 嵌入式 实时操作系统 rtos nuttx 7.1 stm32 源代码分析) NuttX 启动流程 转载请注明出处:http://blog.csdn.net/zhumaill/article/details/23261543 __start-- #处理器执行的第一条指令 | v stm32_clockconfig()------ #初始化时钟 阅读详情

相关推荐

Nuttx学习笔记(一)——Nuttx系统开发环境搭建

最近刚开始接触Nuttx,在配置环境的时候踩了一些坑,写下这篇博客记录一下。 本人搭建开发环境的时候,参考了官方文档和YouTube上的一个大佬的视频,链接如下: 官方文档 http://nuttx.apache.org/docs/latest/quickstart/install.html YouTube视频 https://www.youtube.com/watch?v=heSkSd-_70g&list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8 https://www

weixin_44735205的博客 4793

NuttX实时操作系统介绍(最详细)

NuttX支持大多数RTOS都没有实现的进程概念,并提供完整的POSIX API,比如pthread、信号量、消息队列、时钟/定时器、信号、环境变量等。同时,也支持RTOS上常见的优先级翻转和tickless模式。NuttX支持对称多处理(SMP)和非对称多处理(AMP)两种多核编程模式,开发者可以根据芯片设计的特点和应用场景的需求,选择使用SMP或AMP,甚至同时使用SMP和AMP。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 3万+

1.triton镜像使用

1)拉取镜像2)启动容器指定模型仓库时可以执行server下的./fetch_model.sh,见2.2部分GPU版本的启动CPU版本的启动区别只在于--gpus=1这个参数注意:docker19.03之前的版本使用gpu要指定显卡硬件名,docker19.03之后的需要安装nvidia-container-toolkit或nvidia-container-runtime安装之后要重启docker查看gpus参数是否安装成功重新执行我遇到了如下错误先使用非GPU版本的。

天启的博客 2049

Nuttx系统学习笔记(三)——使用Nuttx操作STM32F429外设

使用Nuutx这个操作系统来实现我们对嵌入式设备的控制。

Alkaid2000的博客 7789

Nuttx介绍

嵌入式 实时操作系统 rtos nuttx 7.1) NuttX 介绍 转载请注明出处:http://blog.csdn.net/zhumaill/article/details/24197637 1  NuttX 实时操作系统 NuttX 是一个实时操作系统RTOS),强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性。NuttX 主要遵循  Posix 和

seawolfe的博客 2080

94、【OS】【Nuttx】【构建】cmake 配置介绍

本文介绍Nuttx操作系统使用CMake进行构建配置的方法。首先需要基于预设硬件配置初始化Nuttx,通过configure.sh命令查看支持的所有开发板配置,配合less命令实现分页显示。选择nsh配置作为起点,使用-B指定构建目录,-DBOARD_CONFIG指定开发板配置,-GNinja可选使用Ninja构建工具。最后通过cmake --build命令配合-t menuconfig参数启动文本菜单界面进行详细配置,实现类似make menuconfig的功能。文章为后续深入CMake构建Nuttx

HIT_Weston的博客 1740

介绍 一下 nuttx 操作系统

NuttX 是一款开源的实时操作系统RTOS),专为嵌入式系统设计,强调‌‌及对标准(如 POSIX)的兼容性。

luoganttcc的博客 1148

开源嵌入式实时操作系统NuttX介绍

介绍开源NuttX操作系统

Open Source RTOS Development 3244

Nuttx学习入门

NuttShell 是 NuttX 中使用的一个非常完整的 shell 系统,类似于 bash 和其他类似的选项。-l表明我们在 Linux 上使用,选择完配置之后,就会在source root目录生成.config文件,删掉这个文件,重新执行命令,就可以再生成一次。Apache NuttX 在 GitHub上,有两个主要的库,nuttx和apps,后者在技术上是可选的(但建议使用完整的功能集)同时,选择配置后会生成Make.def的符号链接,指向选择的Make.def文件,

技术笔记 4833

Nuttx操作系统(二):任务

尽管并不总是必要的,但这些列表中的大多数都是优先排序的,以便可以使用通用的列表逻辑来处理(只需要对g_readytorun、g_pendingtasks和g_waitingforsemaphore列表进行优先排序)。所谓环境,我们指的是OS预留的一组资源,但在进程的受保护环境中,我们具体指的是其地址空间。Ø 这是所有准备运行的任务的列表,但不能放在g_readytorun列表中,因为:(1)它们的优先级高于g_readitorun表头部的当前活动任务;此环境是专用的,对于任务是唯一的。

生活需要深度 2091

Nuttx驱动(一)简介

Nuttx驱动框架简介,记录一下学习和调试过程

slimmm的博客 3431

为什么小米选择NuttX作为Xiaomi Vela的基础

NuttX支持大多数RTOS都没有实现的进程概念,并提供完整的POSIX API,比如pthread、信号量、消息队列、时钟/定时器、信号、环境变量等。同时,也支持RTOS上常见的优先级翻转和tickless模式。NuttX支持对称多处理(SMP)和非对称多处理(AMP)两种多核编程模式,开发者可以根据芯片设计的特点和应用场景的需求,选择使用SMP或AMP,甚至同时使用SMP和AMP。

中二电工吹短笛的博客 1699

Nuttx学习笔记(一)

Nuttx实时操作系统学习笔记

Alkaid2000的博客 6605

一种应用非常广泛的开源RTOS实时操作系统):nuttx

NuttX 是极其灵活的RTOS,你可以在上面愉快地跑Mini Lisp等很多脚本语言;Python可以用MicroPython方案实现(部分板卡已有现成移植),如果真要跑全功能Python,推荐资源更多些的高端平台或直接上Linux。NuttX是一款兼容性极强、功能丰富、像极了“小号Linux”的RTOS,混合了“最标准的嵌入式实时性”和“灵活的Unix体验”。你想做无人机、做科学仪器、做高级IoT,不妨上手试试看。家。

skywalk8163的专栏 3315

nuttx和linux区别,Nuttx文件系统

1. 介绍文件系统,是对一个存储设备上的数据和元数据进行组织的机制,它是操作系统管理持久性数据的子系统,提供数据存储和访问功能。将一个文件系统与一个存储设备关联起来的过程叫做挂载(mount),挂载时会将一个文件系统附着到当前文件系统层次结构中(根),在执行挂载时,需要提供文件系统类型、文件系统和一个挂载点。1.1 Nuttx文件系统介绍Nuttx包含了一个可选的、可扩展的文件系统,这个文件系统可...

weixin_39862382的博客 2622

Nuttx 驱动开发手册

Nuttx 驱动开发手册

qq_31057589的博客 3028

关于FreeRTOS/Nuttx/Zephyr对于用户态程序实现的对比

从用户产品经理角度出发,作为RTOS的使用者,以一个简单的商业例子来说明,RTOS关于用户态程序这一特性,应该具备的要点:我是设备制造商,设备采用单片机芯片,我是XXRTOS的使用者,我希望我的设备具有二次开发能力,也就是说我的客户Tom购买了我的设备后,他可以写一些简单的程序来操控我的设备,并且TOM无法读取我内核固件,且TOM的程序发生意外时,内核可以捕获错误,从而停止运行TOM的程序。比如TOM创建了两个线程,一个全局变量GA,他可以随心所以的操作全局变量GA,并发送串口数据。

snikeguo的专栏 2627

Nuttx操作系统(四):系统架构

Ø 内核分模块组织,功能模块被组织到一个个目录下,如nuttx/ audio/, binfmt/, crypto/, drivers/, fs/, graphics/, video/, wireless/等;Ø 用户lib库在libs/目录下,在这个目录下,包含了用于内核以及应用的基于共享逻辑的库,例如 libc, libm (math), libnx (graphics)等;5) net/sockets/提供基于BSD的socket接口;4) fs/vfs/ 提供了基于POSIX的文件接口;

生活需要深度 781

1. NuttX简介

NuttX简介 ​nuttx是什么? NuttX是一个实时操作系统(RTOS),强调遵循标准和占用空间小,是一个类linux的实时操作系统,也是开源的RTOSnuttx的应用 ​ Xiaomi Vela物联网软件平台 ​ 无人机px4固件,早期的Ardupilot固件也是使用nuttx 官方网址 ​ 官网wiki百科 GitHub仓库源码 GitHub地址 ...

slowdownbabe的博客 2540

解决com.kingbase8.util.KSQLException: This _connection has been closed.

一个消息管理系统,系统采用kingbase8数据库,数据库采用单体模式,后台应用也采用springboot单体模式。系统正式上线后,出现几个JDBC响应的异常信息: com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend. java.net.SocketTimeoutException: Read timed out.

qq_38127559的博客 2717

Firefox火狐浏览器官方51.0-win32版本exe安装包

解压后可用,资源全名:Firefox Setup 51.0.exe

上一篇: 为什么 __start 是处理器执行的第一条指令?
下一篇: NuttX 配置系统
zhumaill
博客等级 码龄15年 151粉丝 10原创
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值