blob: 0154299f752548c261fd37d3fb7c5f9d14ca77a7 [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.19: https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Guides &mdash; NuttX latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../_static/sphinx_collapse.css" />
<link rel="stylesheet" type="text/css" href="../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css" />
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<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/design-tabs.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="NFS Client How-To" href="nfs.html" />
<link rel="prev" title="ATM64 MTE extension" href="../debugging/mte.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="../index.html" 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>
<option value="../../12.6.0" >12.6.0</option>
<option value="../../12.7.0" >12.7.0</option>
<option value="../../12.8.0" >12.8.0</option>
<option value="../../12.9.0" >12.9.0</option>
<option value="../../12.10.0" >12.10.0</option>
<option value="../../12.11.0" >12.11.0</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"><a class="reference internal" href="../index.html">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="../debugging/index.html">Debugging</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Guides</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nfs.html">NFS Client How-To</a></li>
<li class="toctree-l2"><a class="reference internal" href="nix_flake.html">Nix Flake for Reproducible Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="usbtrace.html">USB Device Trace</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulator.html">Simulator</a></li>
<li class="toctree-l2"><a class="reference internal" href="rndis.html">How to use RNDIS</a></li>
<li class="toctree-l2"><a class="reference internal" href="drivers.html">Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="pysimcoder.html">pysimCoder integration with NuttX</a></li>
<li class="toctree-l2"><a class="reference internal" href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal" href="customapps.html">Custom Apps How-to</a></li>
<li class="toctree-l2"><a class="reference internal" href="citests.html">Running CI Test Locally</a></li>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html">High Performance: Zero Latency Interrupts, Maskable Nested Interrupts</a></li>
<li class="toctree-l2"><a class="reference internal" href="fortify.html">Fortify</a></li>
<li class="toctree-l2"><a class="reference internal" href="nestedinterrupts.html">Nested Interrupts</a></li>
<li class="toctree-l2"><a class="reference internal" href="ofloader.html">Open Flash Loader</a></li>
<li class="toctree-l2"><a class="reference internal" href="testingtcpip.html">Testing TCP/IP Network Stacks</a></li>
<li class="toctree-l2"><a class="reference internal" href="automounter.html">Auto-Mounter</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32nullpointer.html">STM32 Null Pointer Detection</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32ccm.html">STM32 CCM Allocator</a></li>
<li class="toctree-l2"><a class="reference internal" href="etcromfs.html">etc romfs</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread_local_storage.html">Thread Local Storage</a></li>
<li class="toctree-l2"><a class="reference internal" href="devicetree.html">Device Tree</a></li>
<li class="toctree-l2"><a class="reference internal" href="changing_systemclockconfig.html">Changing the System Clock Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="usingkernelthreads.html">Using Kernel Threads</a></li>
<li class="toctree-l2"><a class="reference internal" href="armv7m_runtimestackcheck.html">ARMv7-M Run Time Stack Checking</a></li>
<li class="toctree-l2"><a class="reference internal" href="include_files_board_h.html">Including Files in board.h</a></li>
<li class="toctree-l2"><a class="reference internal" href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff in NuttX header files?</a></li>
<li class="toctree-l2"><a class="reference internal" href="kernel_threads_with_custom_stacks.html">Kernel Threads with Custom Stacks</a></li>
<li class="toctree-l2"><a class="reference internal" href="versioning_and_task_names.html">Versioning and Task Names</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_rambuffer.html">Logging to a RAM Buffer</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipv6.html">IPv6</a></li>
<li class="toctree-l2"><a class="reference internal" href="integrate_newlib.html">Integrating with Newlib</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html">NuttX Protected Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html">Porting Drivers to the STM32 F7</a></li>
<li class="toctree-l2"><a class="reference internal" href="semihosting.html">Semihosting</a></li>
<li class="toctree-l2"><a class="reference internal" href="renode.html">Run NuttX on Renode</a></li>
<li class="toctree-l2"><a class="reference internal" href="signal_events_interrupt_handlers.html">Signaling Events from Interrupt Handlers</a></li>
<li class="toctree-l2"><a class="reference internal" href="signaling_sem_priority_inheritance.html">Signaling Semaphores and Priority Inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="smaller_vector_tables.html">Smaller Vector Tables</a></li>
<li class="toctree-l2"><a class="reference internal" href="port.html">How to port</a></li>
<li class="toctree-l2"><a class="reference internal" href="updating_release_system_elf.html">Updating a Release System with ELF Programs</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html">ELF Programs – With Symbol Tables</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html">ELF Programs – No Symbol Tables</a></li>
<li class="toctree-l2"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html">Building NuttX with Applications Outside the Source Tree</a></li>
<li class="toctree-l2"><a class="reference internal" href="building_uclibcpp.html">Building uClibc++</a></li>
<li class="toctree-l2"><a class="reference internal" href="custom_app_directories.html">Custom Application Directories</a></li>
<li class="toctree-l2"><a class="reference internal" href="multiple_nsh_sessions.html">Multiple NSH Sessions</a></li>
<li class="toctree-l2"><a class="reference internal" href="nsh_network_link_management.html">NSH Network Link Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="ram_rom_disks.html">RAM Disks and ROM Disks</a></li>
<li class="toctree-l2"><a class="reference internal" href="reading_can_msgs.html">Reading CAN Messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="remove_device_drivers_nsh.html">Removing Device Drivers with NSH</a></li>
<li class="toctree-l2"><a class="reference internal" href="rust.html">Rust in NuttX</a></li>
<li class="toctree-l2"><a class="reference internal" href="optee.html">Interfacing with OP-TEE</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../standards/index.html">Standards</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../logos/index.html">NuttX Logos</a></li>
<li class="toctree-l1"><a class="reference internal" href="../_tags/tagsindex.html">Tags</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="../index.html">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="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Guides</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/apache/nuttx/blob/master/Documentation/guides/index.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="admonition-todo admonition" id="id1">
<p class="admonition-title">Todo</p>
<p>Create “tutorial” type documentation for specific subjects not to be covered in more general terms.</p>
</div>
<section id="guides">
<h1>Guides<a class="headerlink" href="#guides" title="Permalink to this heading"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="nfs.html">NFS Client How-To</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nfs.html#adding-nfs-to-the-nuttx-configuration">Adding NFS to the NuttX Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="nfs.html#mount-interface">Mount Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="nfs.html#nfs-mount-command">NFS Mount Command</a></li>
<li class="toctree-l2"><a class="reference internal" href="nfs.html#configuring-the-nfs-server-ubuntu">Configuring the NFS server (Ubuntu)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="nix_flake.html">Nix Flake for Reproducible Development</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nix_flake.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="nix_flake.html#setting-up-the-development-environment">Setting up the Development Environment</a></li>
<li class="toctree-l2"><a class="reference internal" href="nix_flake.html#setting-up-the-documentation-environment">Setting up the Documentation Environment</a></li>
<li class="toctree-l2"><a class="reference internal" href="nix_flake.html#benefits">Benefits</a></li>
<li class="toctree-l2"><a class="reference internal" href="nix_flake.html#contents-of-the-nix-flake">Contents of the Nix Flake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="usbtrace.html">USB Device Trace</a></li>
<li class="toctree-l1"><a class="reference internal" href="simulator.html">Simulator</a><ul>
<li class="toctree-l2"><a class="reference internal" href="simulator.html#prerequisites-for-macos">Prerequisites For macOS</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulator.html#compiling">Compiling</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulator.html#accessing-the-network">Accessing the Network</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulator.html#testing-capturing-tcp-network-traffic">Testing / capturing TCP network traffic</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulator.html#stopping">Stopping</a></li>
<li class="toctree-l2"><a class="reference internal" href="simulator.html#debugging">Debugging</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rndis.html">How to use RNDIS</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rndis.html#compiling">Compiling</a></li>
<li class="toctree-l2"><a class="reference internal" href="rndis.html#flashing">Flashing</a></li>
<li class="toctree-l2"><a class="reference internal" href="rndis.html#setup-rndis-in-your-computer">Setup RNDIS in your computer</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drivers.html">Drivers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drivers.html#porting-a-driver">Porting a Driver</a></li>
<li class="toctree-l2"><a class="reference internal" href="drivers.html#nuttx-drivers-as-a-reference">NuttX Drivers as a Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drivers.html#using-chip-datasheets">Using Chip Datasheets</a></li>
<li class="toctree-l2"><a class="reference internal" href="drivers.html#logic-analyzers">Logic Analyzers</a></li>
<li class="toctree-l2"><a class="reference internal" href="drivers.html#dma-debugging">DMA Debugging</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a><ul>
<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html#preparation">Preparation</a></li>
<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html#creating-the-project">Creating the project</a></li>
<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html#building">Building</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pysimcoder.html">pysimCoder integration with NuttX</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pysimcoder.html#peripheral-support">Peripheral Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="pysimcoder.html#nuttx-configuration">NuttX Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="pysimcoder.html#using-pysimcoder-to-design-nuttx-application">Using pysimCoder to design NuttX application</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="customboards.html">Custom Boards How-To</a><ul>
<li class="toctree-l2"><a class="reference internal" href="customboards.html#add-a-custom-board">Add a Custom Board</a></li>
<li class="toctree-l2"><a class="reference internal" href="customboards.html#kconfig-settings">Kconfig Settings</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="customapps.html">Custom Apps How-to</a><ul>
<li class="toctree-l2"><a class="reference internal" href="customapps.html#replace-the-apps-directory-completely">1. Replace The Apps/ Directory Completely</a><ul>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#makefile">1.1 Makefile</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#kconfig">1.2 Kconfig</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#customhello-c">1.3 CustomHello.c</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#building-with-the-customapps-directory">1.4 Building with the CustomApps Directory</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="customapps.html#extend-the-apps-directory-to-include-a-new-custom-directory">2. Extend the apps/ directory to include a new custom directory</a><ul>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#custom-apps-directory">2.1 Custom Apps Directory</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#make-defs">2.2 Make.defs</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#id1">2.3 Makefile</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#customhello-app">2.4 CustomHello App</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#customhello-make-defs">2.5 CustomHello Make.defs</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#customhello-makefile">2.6 CustomHello Makefile</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#customhello-kconfig">2.7 CustomHello Kconfig</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#build-and-run">2.8 Build and Run</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="customapps.html#include-an-additional-custom-directory-outside-of-the-main-source-trees">3. Include an Additional Custom directory Outside of the Main Source Trees</a><ul>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#create-custom-apps-directory-and-a-symbolic-link">3.1 Create Custom Apps directory and a Symbolic Link</a></li>
<li class="toctree-l3"><a class="reference internal" href="customapps.html#make-defs-etc">3.2 Make.defs etc.</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="citests.html">Running CI Test Locally</a><ul>
<li class="toctree-l2"><a class="reference internal" href="citests.html#configuring-nuttx">Configuring NuttX</a></li>
<li class="toctree-l2"><a class="reference internal" href="citests.html#running-ci-tests">Running CI Tests</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="zerolatencyinterrupts.html">High Performance: Zero Latency Interrupts, Maskable Nested Interrupts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html#generic-interrupt-handling">Generic Interrupt Handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html#bypassing-the-generic-interrupt-handling">Bypassing the Generic Interrupt Handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html#getting-back-into-the-game">Getting Back into the Game</a></li>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html#maskable-nested-interrupts">Maskable Nested Interrupts</a></li>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html#nested-interrupt-handling">Nested Interrupt Handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="zerolatencyinterrupts.html#cortex-m3-4-implementation">Cortex-M3/4 Implementation</a><ul>
<li class="toctree-l3"><a class="reference internal" href="zerolatencyinterrupts.html#configuration-options">Configuration Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="zerolatencyinterrupts.html#disabling-the-high-priority-interrupt">Disabling the High Priority Interrupt</a></li>
<li class="toctree-l3"><a class="reference internal" href="zerolatencyinterrupts.html#dependencies">Dependencies</a></li>
<li class="toctree-l3"><a class="reference internal" href="zerolatencyinterrupts.html#configuring-high-priority-interrupts">Configuring High Priority Interrupts</a></li>
<li class="toctree-l3"><a class="reference internal" href="zerolatencyinterrupts.html#example-code">Example Code</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="fortify.html">Fortify</a><ul>
<li class="toctree-l2"><a class="reference internal" href="fortify.html#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="fortify.html#support">Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="fortify.html#usage">Usage</a><ul>
<li class="toctree-l3"><a class="reference internal" href="fortify.html#fortify-source-overview">FORTIFY_SOURCE Overview</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="fortify.html#gcc-built-in-functions">GCC Built-in Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="fortify.html#example-memcpy-implementation-in-nuttx">Example: memcpy Implementation in NuttX</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="nestedinterrupts.html">Nested Interrupts</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nestedinterrupts.html#are-nested-interrupts-needed">Are Nested Interrupts Needed?</a></li>
<li class="toctree-l2"><a class="reference internal" href="nestedinterrupts.html#layered-interrupt-handling-architecture">Layered Interrupt Handling Architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="nestedinterrupts.html#how-to-implement-nested-interrupts-in-the-layered-interrupt-handling-architecture">How to Implement Nested Interrupts in the Layered Interrupt Handling Architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="nestedinterrupts.html#svcall-vs-pendsv">SVCall vs PendSV</a></li>
<li class="toctree-l2"><a class="reference internal" href="nestedinterrupts.html#what-could-go-wrong">What Could Go Wrong?</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="ofloader.html">Open Flash Loader</a><ul>
<li class="toctree-l2"><a class="reference internal" href="ofloader.html#introduce">Introduce</a></li>
<li class="toctree-l2"><a class="reference internal" href="ofloader.html#configuration">CONFIGURATION</a></li>
<li class="toctree-l2"><a class="reference internal" href="ofloader.html#usage">Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="ofloader.html#precautions">Precautions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="testingtcpip.html">Testing TCP/IP Network Stacks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="testingtcpip.html#syn-flood-attack">SYN Flood Attack</a></li>
<li class="toctree-l2"><a class="reference internal" href="testingtcpip.html#building-packets-with-scapy">Building Packets with Scapy</a></li>
<li class="toctree-l2"><a class="reference internal" href="testingtcpip.html#simulating-packet-loss">Simulating Packet Loss</a></li>
<li class="toctree-l2"><a class="reference internal" href="testingtcpip.html#fuzz-testing">Fuzz-Testing</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="automounter.html">Auto-Mounter</a><ul>
<li class="toctree-l2"><a class="reference internal" href="automounter.html#general-description">General Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="automounter.html#board-specific-support">Board-Specific Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="automounter.html#example-implementation">Example Implementation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="stm32nullpointer.html">STM32 Null Pointer Detection</a><ul>
<li class="toctree-l2"><a class="reference internal" href="stm32nullpointer.html#the-null-pointer-problem">The NULL Pointer Problem</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32nullpointer.html#cortex-m-memory">Cortex-M Memory</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32nullpointer.html#stm32-memory-aliasing">STM32 Memory Aliasing</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32nullpointer.html#the-cortex-m-memory-protection-unit">The Cortex-M Memory Protection Unit</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32nullpointer.html#using-the-mpu-to-detect-null-pointer-usage">Using the MPU to Detect Null Pointer Usage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="stm32ccm.html">STM32 CCM Allocator</a><ul>
<li class="toctree-l2"><a class="reference internal" href="stm32ccm.html#ccm-memory">CCM Memory</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32ccm.html#config-stm32-ccmexclude">CONFIG_STM32_CCMEXCLUDE</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32ccm.html#ccm-allocator">CCM Allocator</a></li>
<li class="toctree-l2"><a class="reference internal" href="stm32ccm.html#ccm-stacks">CCM Stacks</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="etcromfs.html">etc romfs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="etcromfs.html#configuration">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="etcromfs.html#start-up-scripts">Start up Scripts</a></li>
<li class="toctree-l2"><a class="reference internal" href="etcromfs.html#customizing-start-up-scripts">Customizing Start up Scripts</a></li>
<li class="toctree-l2"><a class="reference internal" href="etcromfs.html#customizing-romfs-image">Customizing ROMFS Image</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="thread_local_storage.html">Thread Local Storage</a><ul>
<li class="toctree-l2"><a class="reference internal" href="thread_local_storage.html#configuration">Configuration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="devicetree.html">Device Tree</a><ul>
<li class="toctree-l2"><a class="reference internal" href="devicetree.html#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="devicetree.html#how-to-use">How to use</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="changing_systemclockconfig.html">Changing the System Clock Configuration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="changing_systemclockconfig.html#question">Question</a></li>
<li class="toctree-l2"><a class="reference internal" href="changing_systemclockconfig.html#answer">Answer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#custom-clock-configuration">Custom Clock Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#peripheral-clocks">Peripheral Clocks</a></li>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#reinitializing-peripherals">Reinitializing Peripherals</a></li>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#variable-peripheral-clocking">Variable Peripheral Clocking</a></li>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#systick-timer">Systick Timer</a></li>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#up-mdelay">up_mdelay</a></li>
<li class="toctree-l3"><a class="reference internal" href="changing_systemclockconfig.html#power-management">Power Management</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../components/drivers/special/power/pm/index.html">Power Management</a><ul>
<li class="toctree-l5"><a class="reference internal" href="../components/drivers/special/power/pm/index.html#interfaces">Interfaces</a></li>
<li class="toctree-l5"><a class="reference internal" href="../components/drivers/special/power/pm/index.html#callbacks">Callbacks</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="usingkernelthreads.html">Using Kernel Threads</a><ul>
<li class="toctree-l2"><a class="reference internal" href="usingkernelthreads.html#build-configurations">Build Configurations</a></li>
<li class="toctree-l2"><a class="reference internal" href="usingkernelthreads.html#thread-types">Thread Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="usingkernelthreads.html#kernel-threads">Kernel Threads</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="armv7m_runtimestackcheck.html">ARMv7-M Run Time Stack Checking</a><ul>
<li class="toctree-l2"><a class="reference internal" href="armv7m_runtimestackcheck.html#overview">Overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="armv7m_runtimestackcheck.html#the-stack-monitor">The Stack Monitor</a></li>
<li class="toctree-l3"><a class="reference internal" href="armv7m_runtimestackcheck.html#per-function-call">Per function Call</a></li>
<li class="toctree-l3"><a class="reference internal" href="armv7m_runtimestackcheck.html#details-for-support-of-per-call-stack-checking">Details for Support of Per Call Stack Checking</a></li>
<li class="toctree-l3"><a class="reference internal" href="armv7m_runtimestackcheck.html#other-considerations">Other Considerations</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="include_files_board_h.html">Including Files in board.h</a><ul>
<li class="toctree-l2"><a class="reference internal" href="include_files_board_h.html#global-scope-of-board-h">Global Scope of board.h</a></li>
<li class="toctree-l2"><a class="reference internal" href="include_files_board_h.html#restricted-scope-of-architecture-specific-header-files">Restricted Scope of Architecture-Specific Header Files</a></li>
<li class="toctree-l2"><a class="reference internal" href="include_files_board_h.html#errors-due-to-mixed-scope-of-header-files">Errors due to Mixed Scope of Header Files</a></li>
<li class="toctree-l2"><a class="reference internal" href="include_files_board_h.html#so-how-do-i-avoid-this">So How Do I Avoid This?</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff in NuttX header files?</a><ul>
<li class="toctree-l2"><a class="reference internal" href="specialstuff_in_nuttxheaderfiles.html#the-problem">The Problem</a></li>
<li class="toctree-l2"><a class="reference internal" href="specialstuff_in_nuttxheaderfiles.html#a-work-around">A Work-Around</a></li>
<li class="toctree-l2"><a class="reference internal" href="specialstuff_in_nuttxheaderfiles.html#when-does-it-make-sense">When Does It Make Sense?</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="kernel_threads_with_custom_stacks.html">Kernel Threads with Custom Stacks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="kernel_threads_with_custom_stacks.html#background">Background</a></li>
<li class="toctree-l2"><a class="reference internal" href="kernel_threads_with_custom_stacks.html#example">Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="kernel_threads_with_custom_stacks.html#freeing-the-tcb">Freeing the TCB</a></li>
<li class="toctree-l2"><a class="reference internal" href="kernel_threads_with_custom_stacks.html#freeing-the-custom-stack-memory">Freeing the Custom Stack Memory</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="versioning_and_task_names.html">Versioning and Task Names</a><ul>
<li class="toctree-l2"><a class="reference internal" href="versioning_and_task_names.html#question">Question</a></li>
<li class="toctree-l2"><a class="reference internal" href="versioning_and_task_names.html#answer">Answer</a><ul>
<li class="toctree-l3"><a class="reference internal" href="versioning_and_task_names.html#versioning">Versioning</a></li>
<li class="toctree-l3"><a class="reference internal" href="versioning_and_task_names.html#task-name-size">Task Name Size</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="logging_rambuffer.html">Logging to a RAM Buffer</a><ul>
<li class="toctree-l2"><a class="reference internal" href="logging_rambuffer.html#default-debug-output">Default Debug Output</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_rambuffer.html#the-syslog-device">The syslog Device</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_rambuffer.html#the-ramlog-device">The RAMLOG Device</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging_rambuffer.html#using-the-ramlog-as-the-syslog-device">Using the RAMLOG as the syslog Device</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="ipv6.html">IPv6</a><ul>
<li class="toctree-l2"><a class="reference internal" href="ipv6.html#ethernet-driver-requirements">Ethernet Driver Requirements</a><ul>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#basic-driver-requirements">Basic Driver Requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#multicast-address-filtering">Multicast Address Filtering</a></li>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#icmpv6-neighbor-discovery-protocol">ICMPv6 Neighbor Discovery Protocol</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="ipv6.html#board-configurations">Board Configurations</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipv6.html#ping">Ping</a><ul>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#ping-from-host-pc">Ping from Host PC</a><ul>
<li class="toctree-l4"><a class="reference internal" href="ipv6.html#ping-from-windows-cmd-terminal">Ping from Windows cmd Terminal</a></li>
<li class="toctree-l4"><a class="reference internal" href="ipv6.html#ping-from-linux-shell">Ping From Linux shell</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#ping-from-the-nuttshell-nsh">Ping from the NuttShell (NSH)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="ipv6.html#nsh-ifconfig">NSH ifconfig</a><ul>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#ipv4-only">IPv4 Only</a></li>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#ipv6-only">IPv6 Only</a></li>
<li class="toctree-l3"><a class="reference internal" href="ipv6.html#both-ipv4-and-ipv6">Both IPv4 and IPv6</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="ipv6.html#tests-applications-and-network-utilities">Tests, Applications, and Network Utilities</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="integrate_newlib.html">Integrating with Newlib</a><ul>
<li class="toctree-l2"><a class="reference internal" href="integrate_newlib.html#built-in-c-library">Built-In C Library</a></li>
<li class="toctree-l2"><a class="reference internal" href="integrate_newlib.html#header-file-issues">Header File Issues</a><ul>
<li class="toctree-l3"><a class="reference internal" href="integrate_newlib.html#math-h">math.h</a></li>
<li class="toctree-l3"><a class="reference internal" href="integrate_newlib.html#cmath">cmath</a></li>
<li class="toctree-l3"><a class="reference internal" href="integrate_newlib.html#alloca-h">alloca.h</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="integrate_newlib.html#c-issues">C++ Issues</a><ul>
<li class="toctree-l3"><a class="reference internal" href="integrate_newlib.html#new-operator">new Operator</a></li>
<li class="toctree-l3"><a class="reference internal" href="integrate_newlib.html#uint32-t">uint32_t</a></li>
<li class="toctree-l3"><a class="reference internal" href="integrate_newlib.html#size-t">size_t</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="protected_build.html">NuttX Protected Build</a><ul>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#the-traditional-flat-build">The Traditional “Flat” Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#the-two-pass-protected-build">The “Two Pass” Protected Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#the-memory-protection-unit">The Memory Protection Unit</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#advantages-of-the-protected-build">Advantages of the Protected Build</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#user-space-proxies-kernel-space-stubs">User-Space Proxies/Kernel-Space Stubs</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#combining-intel-hex-files">Combining Intel HEX Files</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#files-and-directories">Files and Directories</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#alignment-regions-and-subregions">Alignment, Regions, and Subregions</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#memory-management">Memory Management</a><ul>
<li class="toctree-l3"><a class="reference internal" href="protected_build.html#single-user-heap">Single User Heap</a></li>
<li class="toctree-l3"><a class="reference internal" href="protected_build.html#dual-partitioned-heaps">Dual, Partitioned Heaps</a></li>
<li class="toctree-l3"><a class="reference internal" href="protected_build.html#the-traditional-approach">The Traditional Approach</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#comparing-the-flat-build-configuration-with-the-protected-build-configuration">Comparing the “Flat” Build Configuration with the Protected Build Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#size-expansion">Size Expansion</a></li>
<li class="toctree-l2"><a class="reference internal" href="protected_build.html#performance-issues">Performance Issues</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="platform_directories.html">Platform Directories</a><ul>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#arch-arch-src-chip">1. arch/&lt;arch&gt;/src/&lt;chip&gt;</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#arch-arch-include-chip">2. arch/&lt;arch&gt;/include/&lt;chip&gt;</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#configs-board-include">3. configs/&lt;board&gt;/include</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#configs-board-src">4. configs/&lt;board&gt;/src</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#application-directory">5. Application Directory</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#drivers">6. drivers/</a></li>
<li class="toctree-l2"><a class="reference internal" href="platform_directories.html#apps-platform-board-maybe">7. apps/platform/&lt;board&gt; (maybe)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="port_drivers_to_stm32f7.html">Porting Drivers to the STM32 F7</a><ul>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html#problem-statement">Problem Statement</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html#porting-simple-drivers">Porting Simple Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html#porting-complex-drivers">Porting Complex Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html#cache-coherency">Cache Coherency</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html#dma">DMA</a><ul>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#dma-read-accesses">DMA Read Accesses</a></li>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#dma-write-accesses">DMA Write Accesses</a></li>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#write-back-vs-write-through-d-cache">Write-back vs. Write-through D-Cache</a></li>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#dma-module">DMA Module</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="port_drivers_to_stm32f7.html#converting-an-stm32f429-driver-for-the-stm32f746">Converting an STM32F429 Driver for the STM32F746</a><ul>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#an-example">An Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#reorganize-dma-data-structure">Reorganize DMA Data Structure</a></li>
<li class="toctree-l3"><a class="reference internal" href="port_drivers_to_stm32f7.html#add-cache-operations">Add Cache Operations</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="semihosting.html">Semihosting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="semihosting.html#overview">Overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="semihosting.html#semihosting-syslog">Semihosting SYSLOG</a></li>
<li class="toctree-l3"><a class="reference internal" href="semihosting.html#semihosting-files">Semihosting files</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="renode.html">Run NuttX on Renode</a><ul>
<li class="toctree-l2"><a class="reference internal" href="renode.html#stm32f4discovery">stm32f4discovery</a></li>
<li class="toctree-l2"><a class="reference internal" href="renode.html#nucleo-l073rz">nucleo-l073rz</a></li>
<li class="toctree-l2"><a class="reference internal" href="renode.html#nrf52840-dk">nrf52840-dk</a></li>
<li class="toctree-l2"><a class="reference internal" href="renode.html#stm32f746g-disco">stm32f746g-disco</a></li>
<li class="toctree-l2"><a class="reference internal" href="renode.html#nucleo-h743zi">nucleo-h743zi</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="signal_events_interrupt_handlers.html">Signaling Events from Interrupt Handlers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="signal_events_interrupt_handlers.html#best-way-to-wake-multiple-threads-from-interrupt">Best way to wake multiple threads from interrupt?</a></li>
<li class="toctree-l2"><a class="reference internal" href="signal_events_interrupt_handlers.html#message-queues">Message Queues</a></li>
<li class="toctree-l2"><a class="reference internal" href="signal_events_interrupt_handlers.html#semaphores">Semaphores</a></li>
<li class="toctree-l2"><a class="reference internal" href="signal_events_interrupt_handlers.html#signals">Signals</a></li>
<li class="toctree-l2"><a class="reference internal" href="signal_events_interrupt_handlers.html#poll"><code class="docutils literal notranslate"><span class="pre">poll()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="signaling_sem_priority_inheritance.html">Signaling Semaphores and Priority Inheritance</a><ul>
<li class="toctree-l2"><a class="reference internal" href="signaling_sem_priority_inheritance.html#locking-vs-signaling-semaphores">Locking vs Signaling Semaphores</a><ul>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#locking-semaphores">Locking Semaphores</a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#mutual-exclusion-example">Mutual Exclusion Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#signaling-semaphores">Signaling Semaphores</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="signaling_sem_priority_inheritance.html#signaling-semaphores-and-priority-inheritance-details">Signaling Semaphores and Priority Inheritance details</a><ul>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#example">Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#usage-in-drivers">Usage in Drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#priority-inheritance-fails">Priority Inheritance Fails</a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#who-s-to-blame">Who’s to Blame</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="signaling_sem_priority_inheritance.html#selecting-the-semaphore-protocol">Selecting the Semaphore Protocol</a><ul>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#sem-setprotocol"><code class="docutils literal notranslate"><span class="pre">sem_setprotocol()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#why-another-non-standard-os-interface">Why Another Non-Standard OS Interface?</a></li>
<li class="toctree-l3"><a class="reference internal" href="signaling_sem_priority_inheritance.html#pthread-mutexattr-setprotocol"><code class="docutils literal notranslate"><span class="pre">pthread_mutexattr_setprotocol()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="signaling_sem_priority_inheritance.html#is-this-always-a-problem">Is this Always a Problem?</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="smaller_vector_tables.html">Smaller Vector Tables</a><ul>
<li class="toctree-l2"><a class="reference internal" href="smaller_vector_tables.html#software-irq-remapping">Software IRQ Remapping</a><ul>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#irq-attach"><code class="docutils literal notranslate"><span class="pre">irq_attach()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#irq-dispatch"><code class="docutils literal notranslate"><span class="pre">irq_dispatch()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#irq-initialize"><code class="docutils literal notranslate"><span class="pre">irq_initialize()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#g-mapirq"><code class="docutils literal notranslate"><span class="pre">g_mapirq[]</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="smaller_vector_tables.html#hardware-vector-remapping">Hardware Vector Remapping</a></li>
<li class="toctree-l2"><a class="reference internal" href="smaller_vector_tables.html#vector-definitions">Vector Definitions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#interrupt-handler-definitions">Interrupt Handler Definitions</a></li>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#a-complication">A Complication</a></li>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#dubious-performance-improvements">Dubious Performance Improvements</a></li>
<li class="toctree-l3"><a class="reference internal" href="smaller_vector_tables.html#complexity-and-generalizability">Complexity and Generalizability</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="port.html">How to port</a><ul>
<li class="toctree-l2"><a class="reference internal" href="port_bootsequence.html">The diagram of boot sequence</a></li>
<li class="toctree-l2"><a class="reference internal" href="port_relatedkernelconfigrations.html">The list of related kernel configurations</a></li>
<li class="toctree-l2"><a class="reference internal" href="port.html#porting-procedure">Porting procedure</a></li>
<li class="toctree-l2"><a class="reference internal" href="port.html#porting-case-studies">Porting Case Studies</a><ul>
<li class="toctree-l3"><a class="reference internal" href="porting-case-studies/bcm2711-rpi4b.html">Porting to the BCM2711 (Raspberry Pi 4B)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/bcm2711-rpi4b.html#researching">Researching</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/bcm2711-rpi4b.html#adding-to-the-source-tree">Adding to the source tree</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/bcm2711-rpi4b.html#mapping-out-the-chip">Mapping out the chip</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/bcm2711-rpi4b.html#figuring-out-the-boot">Figuring out the boot</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html">The case of ARM CM4 &amp; cxd32xx &#64;NuttX12.4.0</a><ul>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step1-add-the-soc">Step1 : Add the SoC</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step2-add-the-board">Step2 : Add the Board</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step3-configure">Step3 : Configure</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step4-compile">Step4 : Compile</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step5-link">Step5 : Link</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step6-implement">Step6 : Implement</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#step7-verify">Step7 : Verify</a></li>
<li class="toctree-l4"><a class="reference internal" href="porting-case-studies/port_arm_cm4.html#appendix-out-of-tree-code">Appendix : out-of-tree code</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="updating_release_system_elf.html">Updating a Release System with ELF Programs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="updating_release_system_elf.html#partially-linked">Partially linked</a></li>
<li class="toctree-l2"><a class="reference internal" href="updating_release_system_elf.html#fully-linked">Fully linked</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="partially_linked_elf.html">ELF Programs – With Symbol Tables</a><ul>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#creating-a-symbol-table">Creating a Symbol Table</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#creating-the-export-package">Creating the Export Package</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#preparing-the-add-on-build-directory">Preparing the Add-On Build Directory</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#hello-example">Hello Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#building-the-elf-program">Building the ELF Program</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#the-makefile">The Makefile</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#the-linker-script">The Linker Script</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#replacing-nsh-built-in-functions">Replacing NSH Built-In Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="partially_linked_elf.html#tightly-coupled-memories">Tightly Coupled Memories</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="fully_linked_elf.html">ELF Programs – No Symbol Tables</a><ul>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#creating-the-export-package">Creating the Export Package</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#preparing-the-add-on-build-directory">Preparing the Add-On Build Directory</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#hello-example">Hello Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#building-the-elf-program">Building the ELF Program</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#the-makefile">The Makefile</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#the-linker-script">The Linker Script</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#creating-the-defines-ld-linker-script">Creating the <code class="docutils literal notranslate"><span class="pre">defines.ld</span></code> Linker Script</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#replacing-nsh-built-in-functions">Replacing NSH Built-In Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#version-dependency">Version Dependency</a></li>
<li class="toctree-l2"><a class="reference internal" href="fully_linked_elf.html#tightly-coupled-memories">Tightly Coupled Memories</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html">Building NuttX with Applications Outside the Source Tree</a><ul>
<li class="toctree-l2"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#q-has-anyone-come-up-with-a-tidy-way-to-build-nuttx-with-board-specific-pieces-outside-the-source-tree">Q: Has anyone come up with a tidy way to build NuttX with board-specific pieces outside the source tree?</a></li>
<li class="toctree-l2"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#a-here-are-four-approaches">A: Here are four approaches:</a><ul>
<li class="toctree-l3"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#make-export">1. Make export</a></li>
<li class="toctree-l3"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#replace-the-apps-directory">1. Replace the apps/ Directory</a></li>
<li class="toctree-l3"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#extend-the-apps-directory">1. Extend the apps/ Directory</a><ul>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#makefile-and-make-defs">Makefile and Make.defs</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#automatic-sub-directory-inclusion">Automatic Sub-directory Inclusion</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#kconfig">Kconfig</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#install-script">Install script</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#special-apps-external-directory">Special <code class="docutils literal notranslate"><span class="pre">apps/external</span></code> Directory</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#contain-the-apps-directory">4. Contain the apps/ Directory</a><ul>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#kconfig-and-makefile">Kconfig and Makefile</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#library-issues">Library Issues</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#relative-effort-and-benefits">Relative Effort and Benefits</a></li>
<li class="toctree-l4"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#out-of-tree-builds">Out-of-tree Builds</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="building_nuttx_with_app_out_of_src_tree.html#hooking-external-applications-into-the-configuration-system">Hooking External Applications into the Configuration System</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="building_uclibcpp.html">Building uClibc++</a><ul>
<li class="toctree-l2"><a class="reference internal" href="building_uclibcpp.html#undefined-reference-to-impure-ptr">Undefined Reference to <code class="docutils literal notranslate"><span class="pre">_impure_ptr</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="custom_app_directories.html">Custom Application Directories</a><ul>
<li class="toctree-l2"><a class="reference internal" href="custom_app_directories.html#creating-the-custom-application-directory">Creating the Custom Application Directory</a><ul>
<li class="toctree-l3"><a class="reference internal" href="custom_app_directories.html#makefile">Makefile</a></li>
<li class="toctree-l3"><a class="reference internal" href="custom_app_directories.html#kconfig">Kconfig</a></li>
<li class="toctree-l3"><a class="reference internal" href="custom_app_directories.html#hello-c">hello.c</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="custom_app_directories.html#building-with-the-custom-application-directory">Building with the Custom Application Directory</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="multiple_nsh_sessions.html">Multiple NSH Sessions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="multiple_nsh_sessions.html#nutty">NuTTY</a></li>
<li class="toctree-l2"><a class="reference internal" href="multiple_nsh_sessions.html#other-ideas">Other Ideas</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="nsh_network_link_management.html">NSH Network Link Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nsh_network_link_management.html#configuration-options">Configuration Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="nsh_network_link_management.html#overview-of-the-operation">Overview of the Operation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="ram_rom_disks.html">RAM Disks and ROM Disks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="ram_rom_disks.html#nsh-mkrd-command">NSH mkrd Command</a></li>
<li class="toctree-l2"><a class="reference internal" href="ram_rom_disks.html#nsh-romfs-etc-support">NSH ROMFS /etc Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="ram_rom_disks.html#creating-ram-disks-in-board-bring-up-logic">Creating RAM Disks in Board Bring-Up Logic</a></li>
<li class="toctree-l2"><a class="reference internal" href="ram_rom_disks.html#creating-rom-disks-in-board-bring-up-logic">Creating ROM Disks in Board Bring-Up Logic</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reading_can_msgs.html">Reading CAN Messages</a></li>
<li class="toctree-l1"><a class="reference internal" href="remove_device_drivers_nsh.html">Removing Device Drivers with NSH</a><ul>
<li class="toctree-l2"><a class="reference internal" href="remove_device_drivers_nsh.html#nuttx-and-unix-like-operating-systems-compared">NuttX and Unix-like Operating Systems Compared</a></li>
<li class="toctree-l2"><a class="reference internal" href="remove_device_drivers_nsh.html#the-unlink-method">The unlink() Method</a></li>
<li class="toctree-l2"><a class="reference internal" href="remove_device_drivers_nsh.html#removing-a-device-node-from-nsh">Removing a Device Node from NSH</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rust.html">Rust in NuttX</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rust.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="rust.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l2"><a class="reference internal" href="rust.html#supported-platforms">Supported Platforms</a></li>
<li class="toctree-l2"><a class="reference internal" href="rust.html#getting-started">Getting Started</a></li>
<li class="toctree-l2"><a class="reference internal" href="rust.html#specifying-target-cpu-for-optimization">Specifying Target CPU for Optimization</a></li>
<li class="toctree-l2"><a class="reference internal" href="rust.html#editor-integration">Editor Integration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="optee.html">Interfacing with OP-TEE</a><ul>
<li class="toctree-l2"><a class="reference internal" href="optee.html#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="optee.html#enabling-the-op-tee-driver">Enabling the OP-TEE Driver</a></li>
<li class="toctree-l2"><a class="reference internal" href="optee.html#ioctls-supported">IOCTLs supported</a></li>
<li class="toctree-l2"><a class="reference internal" href="optee.html#typical-usage">Typical usage</a></li>
</ul>
</li>
</ul>
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../debugging/mte.html" class="btn btn-neutral float-left" title="ATM64 MTE extension" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="nfs.html" class="btn btn-neutral float-right" title="NFS Client How-To" 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>