| <!-- |
| 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 — 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/<arch>/src/<chip></a></li> |
| <li class="toctree-l2"><a class="reference internal" href="platform_directories.html#arch-arch-include-chip">2. arch/<arch>/include/<chip></a></li> |
| <li class="toctree-l2"><a class="reference internal" href="platform_directories.html#configs-board-include">3. configs/<board>/include</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="platform_directories.html#configs-board-src">4. configs/<board>/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/<board> (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 & cxd32xx @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>© Copyright 2023, The Apache Software Foundation.</p> |
| </div> |
| |
| |
| |
| </footer> |
| </div> |
| </div> |
| </section> |
| </div> |
| <script> |
| jQuery(function () { |
| SphinxRtdTheme.Navigation.enable(true); |
| }); |
| </script> |
| |
| </body> |
| </html> |