blob: c1573c35d1dcecdea6de6c597a219c3341e28379 [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>NuttX Documentation &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/copybutton.css" type="text/css" />
<link rel="stylesheet" href="_static/tabs.css" type="text/css" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="_static/jquery.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Introduction" href="introduction/index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="#" class="icon icon-home"> NuttX
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select onchange="javascript:location.href = this.value;">
<option value="./../latest" selected="selected">latest</option>
<option value="./../10.0.0" >10.0.0</option>
<option value="./../10.0.1" >10.0.1</option>
<option value="./../10.1.0" >10.1.0</option>
<option value="./../10.2.0" >10.2.0</option>
<option value="./../10.3.0" >10.3.0</option>
<option value="./../11.0.0" >11.0.0</option>
<option value="./../12.0.0" >12.0.0</option>
<option value="./../12.1.0" >12.1.0</option>
<option value="./../12.2.0" >12.2.0</option>
<option value="./../12.2.1" >12.2.1</option>
<option value="./../12.3.0" >12.3.0</option>
<option value="./../12.4.0" >12.4.0</option>
<option value="./../12.5.0" >12.5.0</option>
<option value="./../12.5.1" >12.5.1</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="platforms/index.html">Supported Platforms</a></li>
<li class="toctree-l1"><a class="reference internal" href="components/index.html">OS Components</a></li>
<li class="toctree-l1"><a class="reference internal" href="applications/index.html">Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="implementation/index.html">Implementation Details</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="#">NuttX</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="#" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">NuttX Documentation</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/index.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>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 <a class="reference internal" href="contributing/documentation.html"><span class="doc">instructions</span></a>.</p>
</div>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>You can find the old documentation <a class="reference external" href="https://cwiki.apache.org/confluence/display/NUTTX/Documentation">here</a>.</p>
</div>
<section id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1>
<p>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()).</p>
<p>Last Updated: 24 June 24 at 00:15</p>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="introduction/index.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="introduction/about.html">About Apache NuttX</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/development_environments.html">Development Environments</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/licensing.html">Licensing</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/trademarks.html">Trademarks</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/resources.html">Resources</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="quickstart/index.html">Getting Started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="quickstart/install.html">Installing</a></li>
<li class="toctree-l2"><a class="reference internal" href="quickstart/compiling_make.html">Compiling with Make</a></li>
<li class="toctree-l2"><a class="reference internal" href="quickstart/compiling_cmake.html">Compiling with CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="quickstart/running.html">Running</a></li>
<li class="toctree-l2"><a class="reference internal" href="quickstart/configuring.html">Configuring</a></li>
<li class="toctree-l2"><a class="reference internal" href="quickstart/debugging.html">Debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="quickstart/organization.html">Directory Structure</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contributing/index.html">Contributing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="contributing/workflow.html">Development Workflow</a></li>
<li class="toctree-l2"><a class="reference internal" href="contributing/making-changes.html">Making Changes Using Git</a></li>
<li class="toctree-l2"><a class="reference internal" href="contributing/coding_style.html">C Coding Standard</a></li>
<li class="toctree-l2"><a class="reference internal" href="contributing/documentation.html">Documentation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="introduction/inviolables.html">The Inviolable Principles of NuttX</a><ul>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#definition">Definition</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#strict-posix-compliance">Strict POSIX compliance</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#modular-architecture">Modular Architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#clear-consistent-standardized-coding-style">Clear, Consistent, Standardized Coding Style</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#open-and-unencumbered-license">Open and Unencumbered License</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#all-users-matter">All Users Matter</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#nuttx-branding">NuttX Branding</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction/inviolables.html#the-enemies">The Enemies</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="platforms/index.html">Supported Platforms</a><ul>
<li class="toctree-l2"><a class="reference internal" href="platforms/arm/index.html">ARM</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/arm64/index.html">ARM64</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/avr/index.html">Microchip AVR</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/ceva/index.html">CEVA</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/hc/index.html">HC</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/mips/index.html">MIPS</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/misco/index.html">Misoc</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/or1k/index.html">OpenRISC</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/renesas/index.html">Renesas</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/risc-v/index.html">RISC-V</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/sim/index.html">Simulators</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/sparc/index.html">SPARC</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/tricore/index.html">TriCore</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/x86/index.html">Intel 80x86</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/x86_64/index.html">Intel 80x86_64</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/xtensa/index.html">Xtensa</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/z16/index.html">Z16</a></li>
<li class="toctree-l2"><a class="reference internal" href="platforms/z80/index.html">Z80</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="components/index.html">OS Components</a><ul>
<li class="toctree-l2"><a class="reference internal" href="components/binfmt.html">Binary Loader</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/drivers/index.html">Device Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/nxflat.html">NXFLAT</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/nxgraphics/index.html">NX Graphics Subsystem</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/paging.html">On-Demand Paging</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/audio/index.html">Audio Subsystem</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/filesystem/index.html">NuttX File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/libs/index.html">NuttX libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/net/index.html">Network Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/mm/index.html">Memory Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/syscall.html">Syscall Layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/tools/index.html"><code class="docutils literal notranslate"><span class="pre">/tools</span></code> Host Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/arch/index.html">Architecture-Specific Code</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/boards.html">Boards Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/cmake.html">CMake Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/openamp.html">OpenAMP Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/video.html">Video Subsystem</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/crypto.html">Crypto API Subsystem</a></li>
<li class="toctree-l2"><a class="reference internal" href="components/wireless.html">Wireless Subsystem</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="applications/index.html">Applications</a><ul>
<li class="toctree-l2"><a class="reference internal" href="applications/audioutils/index.html">Audio Utility libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/boot/index.html">Bootloader Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/benchmarks/index.html">Benchmark Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/canutils/index.html">CAN Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/crypto/index.html">Cryptography Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/fsutils/index.html">File System Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/games/index.html">Games</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/graphics/index.html">Graphics Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/industry/index.html">Industrial Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/inertial/index.html">Inertial Libraries Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/interpreters/index.html">Interpreters</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/logging/index.html">Logging Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/lte/index.html">LTE Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/math/index.html">Math Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/mlearing/index.html">Machine Learning Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/netutils/index.html">Network Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/nsh/index.html">NuttShell (NSH)</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/sdr/index.html">Software Define Radio Libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/system/index.html">System Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/testing/index.html">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/tools/index.html">Host Side Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/wireless/index.html">Wireless Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="applications/examples/index.html">Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="implementation/index.html">Implementation Details</a><ul>
<li class="toctree-l2"><a class="reference internal" href="implementation/processes_vs_tasks.html">Linux Processes vs NuttX Tasks</a></li>
<li class="toctree-l2"><a class="reference internal" href="implementation/critical_sections.html">Critical Sections</a></li>
<li class="toctree-l2"><a class="reference internal" href="implementation/interrupt_controls.html">Per-Thread Interrupt Controls</a></li>
<li class="toctree-l2"><a class="reference internal" href="implementation/preemption_latency.html">Effects of Disabling Interrupts or Pre-Emption on Response Latency</a></li>
<li class="toctree-l2"><a class="reference internal" href="implementation/bottomhalf_interrupt.html">Bottom-Half Interrupt Handlers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reference/index.html">API Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="reference/user/index.html">Userspace API</a></li>
<li class="toctree-l2"><a class="reference internal" href="reference/os/index.html">Architecture APIs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="faq/index.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq/index.html#nsh-tricks">NSH Tricks</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/index.html#board-initialization">Board Initialization</a></li>
<li class="toctree-l2"><a class="reference internal" href="faq/index.html#network">Network</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="guides/index.html">Guides</a><ul>
<li class="toctree-l2"><a class="reference internal" href="guides/nfs.html">NFS Client How-To</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/usbtrace.html">USB Device Trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/simulator.html">Simulator</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/qemugdb.html">How to debug NuttX using QEMU and GDB</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/rndis.html">How to use RNDIS</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/drivers.html">Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/tasktrace.html">Task Trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/cpp_cmake.html">C++ Example using CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/pysimcoder.html">pysimCoder integration with NuttX</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/customapps.html">Custom Apps How-to</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/citests.html">Running CI Test Locally</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/zerolatencyinterrupts.html">High Performance, Zero Latency Interrupts</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/nestedinterrupts.html">Nested Interrupts</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/cortexmhardfaults.html">Analyzing Cortex-M Hardfaults</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/coredump.html">Core Dump</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/minidumpserver.html">minidumpserver</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/gdbwithpython.html">GDB with Python</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/ofloader.html">Open Flash Loader</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/testingtcpip.html">Testing TCP/IP Network Stacks</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/automounter.html">Auto-Mounter</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/stm32nullpointer.html">STM32 Null Pointer Detection</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/stm32ccm.html">STM32 CCM Allocator</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/stackrecord.html">Run time stack statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/etcromfs.html">etc romfs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="glossary.html">Glossary</a></li>
</ul>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="introduction/index.html" class="btn btn-neutral float-right" title="Introduction" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2023, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>