(Embedded real-time operating system rtos nuttx 7.1)
NuttX introduction reprint please indicate the source: http://blog.csdn.net/zhumaill/article/details/24197637
1. NuttX real-time operating system
NuttX is a real-time operating system (RTOS) that emphasizes standard compatibility and small encapsulation, and is highly scalable from an 8-bit to 32-Bit Microcontroller environment. NuttX follows Posix and ANSI standards. For features not supported under these standards, or features not applicable to deep-embedded environments (such as fork ()), use additional standard APIs from Unix and common RTOS (such as VxWorks.
The first version of NuttX was published by Gregory Nutt under the loose BSD license in 2007.
2 Key Features
- Standard compatibility
- Core Task Management
- Modular Design
- Fully Preemption
- Scalable
- Highly configurable
- Graphical Configuration Tool
- Easy to scale to new processor architecture, SoC architecture, or board-level architecture
- FIFO and rotation scheduling
- Real-time, deterministic, and support for priority inheritance
- Job control like POSIX/ANSI, named message queue, counting semaphores, clock/Timer, signal, pthread, environment variable, File System
- Task Management and watchdog timer similar to VxWorks
- BSD socket interface
- Extended priority management
- Optional tasks (processes) with an address environment)
- Inherited "control terminal" and I/O redirection
- Request Paging
- System Logs
- You can build an open, flat-level embedded RTOS, or separately build a microkernel with System Call interfaces.
- Built-in CPU load measurement per Thread
- Good documentation support
3 supported platforms 3.1 Allwinner
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 host PC-based Simulation
- Linux/Cygwin User Mode Simulation
Intel 3.5
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 systl152 (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 Co., Cortex-M3)
- STMicro STM32F103x (STM32 F1 Family, ARM Cortex-M3)
- STMicro stm32fw.x (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. Supported boards
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 Nucleus 2 GB 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 Shenzhou IV Sim Skp16c26 Spark Stm3210e-eval Stm3220g-eval Stm3240g-eval Stm32f100rc_generic |
Stm32f3discovery Stm32f429i-disco Stm32f4discovery Stm32ldiscovery Pai_tiny Stm32vldiscovery Sure-pic32mx Teensy Tm4c123g-launchpad Twr-k60n512 Ubw32 Us7032evb1 Viewtool-stm32f107 Vsn Xtrs Z16f2800100zcog Z80sim Z8encore000zco Z8f64200100kit Zkit-arm-1769 Zp214xpa |
5. File System
- Memory-based micro-root pseudo File System
- Virtual File System (VFS)
- Available volumes: bind mount points, file systems, and block device drives.
- SYSLOG support
- FAT12/16/32 File System Support
- NFS client: the client side supports Network File Systems (NFS, version 3, UDP)
- NXFFS: miniature nutx loss balancing FLASH File System
- SMART: FLASH file system provided by Ken Pettit.
- Procfs/File System
- General driver of SPI-based MMC/SD/SDH card
- ROMFS File System Support
- The binary loader supports the following formats:
- Unlinked ELF Module
- The NXFLAT module. NXFLAT is a binary format that can be executed from a file system chip.
- PATH variable support
- Transfer (receive and send) files through TFTP and FTP, HTML (wget), Zmodem (sz and rz ).
6 device drivers
- VFS supports character and block drivers
- Network, USB (host), USB (device), serial port, I2C, I2S, NAND, CAN, ADC, DAC, PWM, orthogonal encoder and watchdog timer driver architecture.
- RAMDISK, pipeline, FIFO,/dev/null,/dev/zero driver
- General driver of MMC/SD/SDH Card Based on SPI or SDIO
- Power Management Subsystem
- Built-in ModBus support provided by FreeModBus 1.5.0
- Graphics devices: frame buffer drive, graphics and LCD Driver
- Audio Subsystem: decoder, audio input and output driver. Command Line and graphical interface Media Player Application
- Input Device: touch screen, USB keyboard, USB mouse, GPIO-based button and keyboard
- Analog Devices: analog-to-digital conversion (ADC), digital-to-analog conversion (DAC), multiplexing, and Amplifier
7 C/C ++ Library
- Fully integrated Standard C library in OS
- Provides floating point support through a standard Math Library
- The uClibc ++ module provides a standard C ++ library that supports io streams, strings, STL, RTTI, and exceptions (LGPL)
8 Network
- TCP/IP, UDP, ICMP, IGMPv2 (client) Stack
- SLIP
- Porting A cJSON File
- Small encapsulation (based on uIP)
- BSD compatible Socket Layer
- Network utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client, NTP client ). The TELNET session that can be inherited (for example, "control terminal ").
- NFS client: the client side supports Network File Systems (NFS, version 3, UDP)
- One of Jeff Poskanzer's thttpd http server's NuttX porting, integrated with NXFLAT, provides embedded CGI.
- UDP network discovery, xml rpc server
- Supported network modules (such as TI CC3000 WLAN)
9 Flash Support
- Device interfaces inspired by MTD Storage Technology
- NAND support
- FTL: simple Flash conversion layer, supporting file systems on FLASH
- NXFFS: NuttX loss balancing FLASH File System
- Support for SPI-based FLASH Devices
10 USB support 10.1 USB Host Support
- USB host controller driver and USB Host Architecture on which the device depends
- USB host controller driver for NXP LPC17xx
- USB drivers that can be used by devices with USB large-capacity storage devices and HID keyboards
10.2 USB device support
- USB device controller driver and device-dependent USB driver class Gadget Architecture
- It can be used for USB device controller drivers of PIC32, NXP LPC17xx, LPC214x, LPC313x, LPC43xx, STMicro STM32F1x, STM32F2x, STM32F4x, and ti DM320.
- USB drivers that can be used for USB serial port and USB large-capacity storage devices
- Built-in USB tracing for USB debugging
11. Graphic support
- Frame Buffer driver
- LCD and OLED graphics LCD Driver with parallel port and SPI Port
- Segmented LCD Driver
- NX Graphics subsystem: a Graphics library, Window System and font support, working on frame buffering or LCD Drive
- NuttX Widgets: a graphical user interface written in conservative C ++, integrated with NX Graphics
- NuttX Window Manager: A micro Window Manager based on NX Graphics subsystem and NuttX Widgets
12 Plug-In 12.1 NuttShell
- A small, scalable, bash-like shell for NuttX, with rich feature sets and small packages.
12.2 Pascal Runtime
- The Pascal plug-in can be downloaded from the SourceForge website.
13 Development Environment
- Linux + GNU make + GCC/binutils for Linux
- Linux + GNU make + SDCC for Linux
- Windows with Cygwin + GNU make + GCC/binutils (custom build in Cygwin)
- Windows with Cygwin + GNU make + SDCC (custom build in Cygwin)
- Windows with Cygwin + GNU make + Windows Local tool chain
- Windows Local (CMD.exe) + GNUWin32 (including GNU make) + MinGW host GCC compiler + Windows Local tool chain
- Wine + GNU make + Windows Local tool chain
14 links
Http://www.nuttx.org
Wiki: http://www.nuttx.org/doku.php? Id = wiki
Download: http://sourceforge.net/projects/nuttx