Introduction to NuttX

Source: Internet
Author: User
Tags xml rpc server

(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
  • 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 host PC-based Simulation
  • Linux/Cygwin User Mode Simulation
Intel 3.5
  • 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 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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.