Note
The present documentation is a recent addition to NuttX and was migrated from previous documentation content. For this reason, it is possible you may find broken links or formatting errors. You can help contribute fixes or improvements to this documentation by following these instructions.
Tip
You can find the old documentation here.
NuttX Documentation
NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).
Last Updated: 25 March 25 at 00:27
Table of Contents
- Home
- Introduction
- Getting Started
- Contributing
- The Inviolable Principles of NuttX
- Supported Platforms
- OS Components
- Binary Loader
- Device Drivers
- NXFLAT
- NX Graphics Subsystem
- On-Demand Paging
- Audio Subsystem
- NuttX File System
- NuttX libraries
- Network Support
- Memory Management
- Syscall Layer
/tools
Host Tools- Architecture-Specific Code
- Boards Support
- CMake Support
- OpenAMP Support
- Video Subsystem
- Crypto API Subsystem
- Wireless Subsystem
- Applications
- Audio Utility libraries
- Bootloader Utilities
- Benchmark Applications
- CAN Utilities
- Cryptography Library Support
- File System Utilities
- Games
- Graphics Support
- Industrial Applications
- Inertial Libraries Support
- Interpreters
- Logging Utilities
- LTE Libraries and NSH Add-Ons
- Math Library Support
- Machine Learning Support
- Network Utilities
- NuttShell (NSH)
- Software Define Radio Libraries
- System Libraries and NSH Add-Ons
- Testing
- Host Side Tools
- Wireless Libraries and NSH Add-Ons
- Examples
- Implementation Details
- API Reference
- FAQ
- Debugging
- GDB with Python
- How to debug NuttX using QEMU and GDB
- gdbserver
- Debugging ELF Loadable Modules
- Task Trace
- The Kernel Address Sanitizer (KASAN)
- Core Dump
- Coresight - HW Assisted Tracing on ARM
- Stack Overflow Check
- Run time stack statistics
- Disabling the Stack Dump During Debugging
- Debugging / flashing NuttX on ARM with hardware debugger (JTAG/SWD)
- Analyzing Cortex-M Hardfaults
- ATM64 MTE extension
- Guides
- NFS Client How-To
- USB Device Trace
- Simulator
- How to use RNDIS
- Drivers
- C++ Example using CMake
- pysimCoder integration with NuttX
- Custom Boards How-To
- Custom Apps How-to
- Running CI Test Locally
- High Performance: Zero Latency Interrupts, Maskable Nested Interrupts
- Fortify
- Nested Interrupts
- Open Flash Loader
- Testing TCP/IP Network Stacks
- Auto-Mounter
- STM32 Null Pointer Detection
- STM32 CCM Allocator
- etc romfs
- Thread Local Storage
- Device Tree
- Changing the System Clock Configuration
- Using Kernel Threads
- ARMv7-M Run Time Stack Checking
- Including Files in board.h
- Why can’t I put my special stuff in NuttX header files?
- Kernel Threads with Custom Stacks
- Versioning and Task Names
- Logging to a RAM Buffer
- IPv6
- Integrating with Newlib
- NuttX Protected Build
- Platform Directories
- Porting Drivers to the STM32 F7
- Semihosting
- Run NuttX on Renode
- Signaling Events from Interrupt Handlers
- Signaling Semaphores and Priority Inheritance
- Smaller Vector Tables
- How to port
- Updating a Release System with ELF Programs
- ELF Programs – With Symbol Tables
- ELF Programs – No Symbol Tables
- Building NuttX with Applications Outside the Source Tree
- Building uClibc++
- Custom Application Directories
- Multiple NSH Sessions
- NSH Network Link Management
- RAM Disks and ROM Disks
- Reading CAN Messages
- Removing Device Drivers with NSH
- Rust in NuttX
- Glossary
- NuttX Logos