跳转到内容

NuttX:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
本页面疑似侵犯版权 (TW)
标签TW 移除或更換文件
维护清理
 
(未显示6个用户的11个中间版本)
第1行: 第1行:
{{Infobox OS
{{Copyvio|
| name = NuttX
url=* https://baike.so.com/doc/4758276-4973788.html
| logo = [[File:NuttX logo.png|NuttX]]
* https://www.oschina.net/project/tag/234/embed-os
| developer = Gregory Nutt
* https://blog.csdn.net/zhumaill/article/details/24197637
| source_model = [[开放原始码]]
* https://blog.csdn.net/seawolfe/article/details/70739487
| supported_platforms = [[ARM|ARM]], [[Atmel AVR|AVR]], [[AVR32]], [[HCS12]], [[LatticeMico32|LM32]], [[MIPS architecture|MIPS]], [[RISC-V]], [[SuperH]], [[Tensilica|Xtensa XL6]], [[Zilog Z80|Z80]]
* https://www.cnblogs.com/yffq/p/4558711.html
| family = [[实时操作系统]]
* https://www.cnblogs.com/bhlsheji/p/4624290.html
| released = {{Start date and age|2007}}
* http://www.stmcu.org/module/forum/thread-599179-1-1.html
| marketing_target = [[嵌入式系统]]
* https://blog.csdn.net/yt454287063/article/details/53258096
| programmed_in = [[C语言|C]], [[C++]], [[汇编语言]]
* https://www.cnblogs.com/chaozhu/p/6269210.html
| working_state = 活跃
* https://www.jianshu.com/p/54b204ca0aac|
| kernel_type = [[微内核]]
sign=<font size="3">[[UT:五月雨恋歌|'''<span style="color:#FF69B3;">梦蝶葬花</span>''']][[voy:User:五月雨恋歌|'''<span style="color:#007EEE;">@生涯不败</span>''']]</font> 2018年9月22日 (六) 07:18 (UTC)|date=9月22日
| license = [[Apache License 2.0]]
}}<div id="copyvio" style="display:none;">
| website = {{URL|nuttx.apache.org}}
}}

'''NuttX'''是一个专注于标准合规和占用少記憶體的[[实时操作系统]]([[RTOS]])。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了[[POSIX]]和[[ANSI]]标准。对于那些标准中没有的部分,如fork()等,则参考了VxWorks或其他RTOS。

NuttX最早是在2007年由Gregory Nutt于BSD协议下释出的。

== 具体实现 ==
NuttX 基本上完全是由C语言实现的,并且通过[[Kconfig]]生成GNU makefile。NuttX的发行版包括了NuttX内核本身和相当一部分的中间件和板级支持包。
NuttX的内核和绝大多数代码完全是由Gregory Nutt完成的,并由他专门维护。所有的社区贡献都必须经过他批准。

== 关键功能 ==
* 符合各类重要标准
* 核心任务管理
* 模组化的微核心
* 完全[[可抢占(计算机)]]
* 可扩展,高度可配置
* 容易移植到各类新的处理器、SoC或者板级架构上
* 先进先出和时间片轮转调度,并可以采取无节拍内核
* 实时,具备确定性
* 具备和POSIX/ANSI类似的任务控制,有名消息队列,计数信号量,时钟、定时器和信号,POSIX线程,环境变量和文件系统
* 具备和VxWorks类似的任务管理和看门狗定时器
* 具备和BSD类似的socket接口
* 可选的进程实现
* 支持对称多处理器
* 支持可加载的内核模块
* 支持线程本地存储(TLS)
* 支持系统日志
* 可选实现的系统调用或直接函数调用
* 内置了可针对各线程配置的CPU负载监控
* 客制化的NuttX C库
* 拥有完善的用户手册描述

== 支持架构<ref>{{Cite web|title=Supported Platforms — NuttX latest documentation|url=https://nuttx.apache.org/docs/latest/introduction/supported_platforms.html|access-date=2022-06-03|work=nuttx.apache.org|archive-date=2022-07-28|archive-url=https://web.archive.org/web/20220728124944/https://nuttx.apache.org/docs/latest/introduction/supported_platforms.html|dead-url=no}}</ref> ==
* [[ARM architecture|ARM]]
** [[ARM7]]TDMI (德州仪器TMS320 C6571, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
** [[ARM9]]20T (飞思卡尔i.MX1)
** [[ARM9]]26EJS (德州仪器 DM320, NXP LPC31xx)
** [[ARM Cortex-A]]5 (爱特梅尔SAMA5D2, SAMA5D3, SAMA5D4)
** [[ARM Cortex-A]]8 (全志A10)
** [[ARM Cortex-A]]9 (NXP/Freescale i.MX6)
** [[ARM Cortex-R]]4/R4F (TI TMS570, Samsung Artik)
** [[ARM Cortex-M]]0/M0+ (新唐: NUC120, NXP: KL25Z, KL26Z, LPC11xx, Atmel: SAMD20/21, SAML21, ST Micro STM32 F0)
** [[ARM Cortex-M]]3 ([[STMicroelectronics|ST Micro]] [[STM32]] F1/F2/L4, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
** [[ARM Cortex-M]]4 (有或没有浮点处理器单元:STM32 F3/F4/L4,TI/Stellaris LM4F/TM4C, NXP LPC43xx/LPC54xx, Freescale Kinetis K20/K28/K40/60/64/66, Atmel SAM4C/4E/4S/4L, Infineon XMC4xxx, Nordic NRF52xxx)
** [[ARM Cortex-M]]7 (爱特梅尔SAMV71/SAME70, ST Micro STM32 F7, STM32 H7, NXP i.MX RT)
* [[Atmel AVR]]
** Atmel 8-bit AVR (AT90USB, ATmega)
** [[AVR32]]
* Freescale
** M68HCS12
* Intel
** [[X86|80×86]]
* MIPS
** MicroChip PIC32MX (MIPS M4K)
** MicroChip PIC32MZEF (MIPS M5150)
* Misoc
** LM32 (Qemu)
* OpenRISC
** mor1kx
* Renesas/Hitachi
** Renesas/Hitachi [[SuperH]]
** Renesas M16C/26
** Renesas RX65N
* [[RISC-V]]
** LiteX on ARTY A7
* Xtensa LX6
** Expressif ESP32
* [[Zilog]]
** Zilog Z16F
** [[Zilog eZ80]] Acclaim!
** [[Z8 Encore!|Zilog Z8Encore!]]
** Zilog Z180
** [[Zilog Z80]]

== 参考资料 ==
{{Reflist}}

== 外部链接 ==
* [http://www.nuttx.org NuttX 主页]{{Wayback|url=http://www.nuttx.org/ |date=20200914032327 }}
* [http://tech.groups.yahoo.com/group/nuttx/ Official NuttX用户组 (Yahoo Groups)]{{Wayback|url=http://tech.groups.yahoo.com/group/nuttx/ |date=20110811021855 }}
* [https://groups.google.com/forum/#!forum/nuttx NuttX官方用户组 (Google Groups)]{{Webarchive|url=http://arquivo.pt/wayback/20110122130054/https://groups.google.com/forum/#!forum/nuttx |date=2011-01-22 }}
* [https://nuttx.apache.org/docs/latest/index.html NuttX文件檔] {{Wayback|url=https://nuttx.apache.org/docs/latest/index.html |date=20211102170948 }}

{{Real-time operating systems}}

{{DEFAULTSORT:Nuttx}}
[[Category:实时操作系统]]
[[Category:嵌入式操作系统]]
[[Category:自由作業系統]]
[[Category:ARM操作系统]]
[[Category:使用BSD许可证的软件]]
[[Category:微內核]]

2024年3月21日 (四) 09:02的最新版本

NuttX
NuttX
开发者Gregory Nutt
编程语言C, C++, 汇编语言
作業系統家族实时操作系统
運作狀態活跃
源码模式开放原始码
首次发布2007年,​17年前​(2007
当前版本
  • 12.7.0(2024年10月30日;穩定版本)[1]
編輯維基數據鏈接
市場取向嵌入式系统
支援平台ARM, AVR, AVR32, HCS12, LM32, MIPS, RISC-V, SuperH, Xtensa XL6, Z80
内核类别微内核
许可证Apache License 2.0
官方網站nuttx.apache.org
仓库 編輯維基數據鏈接

NuttX是一个专注于标准合规和占用少記憶體的实时操作系统RTOS)。它可以在8位到32位的微控制器上部署。NuttX在编写时主要参照了POSIXANSI标准。对于那些标准中没有的部分,如fork()等,则参考了VxWorks或其他RTOS。

NuttX最早是在2007年由Gregory Nutt于BSD协议下释出的。

具体实现

[编辑]

NuttX 基本上完全是由C语言实现的,并且通过Kconfig生成GNU makefile。NuttX的发行版包括了NuttX内核本身和相当一部分的中间件和板级支持包。 NuttX的内核和绝大多数代码完全是由Gregory Nutt完成的,并由他专门维护。所有的社区贡献都必须经过他批准。

关键功能

[编辑]
  • 符合各类重要标准
  • 核心任务管理
  • 模组化的微核心
  • 完全可抢占(计算机)
  • 可扩展,高度可配置
  • 容易移植到各类新的处理器、SoC或者板级架构上
  • 先进先出和时间片轮转调度,并可以采取无节拍内核
  • 实时,具备确定性
  • 具备和POSIX/ANSI类似的任务控制,有名消息队列,计数信号量,时钟、定时器和信号,POSIX线程,环境变量和文件系统
  • 具备和VxWorks类似的任务管理和看门狗定时器
  • 具备和BSD类似的socket接口
  • 可选的进程实现
  • 支持对称多处理器
  • 支持可加载的内核模块
  • 支持线程本地存储(TLS)
  • 支持系统日志
  • 可选实现的系统调用或直接函数调用
  • 内置了可针对各线程配置的CPU负载监控
  • 客制化的NuttX C库
  • 拥有完善的用户手册描述

支持架构[2]

[编辑]
  • ARM
    • ARM7TDMI (德州仪器TMS320 C6571, Calypso, MoxART, NXP LPC214x, LPC2378, STMicro STR71x)
    • ARM920T (飞思卡尔i.MX1)
    • ARM926EJS (德州仪器 DM320, NXP LPC31xx)
    • ARM Cortex-A5 (爱特梅尔SAMA5D2, SAMA5D3, SAMA5D4)
    • ARM Cortex-A8 (全志A10)
    • ARM Cortex-A9 (NXP/Freescale i.MX6)
    • ARM Cortex-R4/R4F (TI TMS570, Samsung Artik)
    • ARM Cortex-M0/M0+ (新唐: NUC120, NXP: KL25Z, KL26Z, LPC11xx, Atmel: SAMD20/21, SAML21, ST Micro STM32 F0)
    • ARM Cortex-M3 (ST Micro STM32 F1/F2/L4, TI/Stellaris LM3S, NXP LPC17xx, Atmel SAM3U/3X, SiliconLabs EFM32)
    • ARM Cortex-M4 (有或没有浮点处理器单元:STM32 F3/F4/L4,TI/Stellaris LM4F/TM4C, NXP LPC43xx/LPC54xx, Freescale Kinetis K20/K28/K40/60/64/66, Atmel SAM4C/4E/4S/4L, Infineon XMC4xxx, Nordic NRF52xxx)
    • ARM Cortex-M7 (爱特梅尔SAMV71/SAME70, ST Micro STM32 F7, STM32 H7, NXP i.MX RT)
  • Atmel AVR
    • Atmel 8-bit AVR (AT90USB, ATmega)
    • AVR32
  • Freescale
    • M68HCS12
  • Intel
  • MIPS
    • MicroChip PIC32MX (MIPS M4K)
    • MicroChip PIC32MZEF (MIPS M5150)
  • Misoc
    • LM32 (Qemu)
  • OpenRISC
    • mor1kx
  • Renesas/Hitachi
    • Renesas/Hitachi SuperH
    • Renesas M16C/26
    • Renesas RX65N
  • RISC-V
    • LiteX on ARTY A7
  • Xtensa LX6
    • Expressif ESP32
  • Zilog

参考资料

[编辑]
  1. ^ Release 12.7.0. 2024年10月30日 [2024年11月24日]. 
  2. ^ Supported Platforms — NuttX latest documentation. nuttx.apache.org. [2022-06-03]. (原始内容存档于2022-07-28). 

外部链接

[编辑]