blob: cfe8a5b2b4f6636ea5f9b8d5baf499d2a64de404 [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>module Loadable Module &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/copybutton.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../../../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/sphinx_highlight.js"></script>
<script src="../../../_static/clipboard.min.js"></script>
<script src="../../../_static/copybutton.js"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
<link rel="next" title="mount Mount Filesystem" href="../mount/index.html" />
<link rel="prev" title="modbusmaster Modbus Master example" href="../modbusmaster/index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../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>
</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 current"><a class="reference internal" href="../../index.html">Applications</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../audioutils/index.html">Audio Utility libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../boot/index.html">Bootloader Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../benchmarks/index.html">Benchmark Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../canutils/index.html">CAN Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../crypto/index.html">Cryptography Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../fsutils/index.html">File System Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../games/index.html">Games</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../graphics/index.html">Graphics Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../industry/index.html">Industrial Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../inertial/index.html">Inertial Libraries Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../interpreters/index.html">Interpreters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../logging/index.html">Logging Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../lte/index.html">LTE Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../math/index.html">Math Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../mlearing/index.html">Machine Learning Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../netutils/index.html">Network Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nsh/index.html">NuttShell (NSH)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sdr/index.html">Software Define Radio Libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system/index.html">System Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../testing/index.html">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../tools/index.html">Host Side Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../wireless/index.html">Wireless Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../index.html">Examples</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../index.html#selecting-examples">Selecting Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../index.html#built-in-functions">Built-In Functions</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="../index.html#supported-examples">Supported examples</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="../abntcodi/index.html"><code class="docutils literal notranslate"><span class="pre">abntcodi</span></code> ABNT CODI example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../adc/index.html"><code class="docutils literal notranslate"><span class="pre">adc</span></code> Read from ADC</a></li>
<li class="toctree-l4"><a class="reference internal" href="../adjtime/index.html"><code class="docutils literal notranslate"><span class="pre">adjtime</span></code> Ajdtime function example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../adxl372_test/index.html"><code class="docutils literal notranslate"><span class="pre">adxl372_test</span></code> ADXL372 test program</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ajoystick/index.html"><code class="docutils literal notranslate"><span class="pre">ajoystick</span></code> Analog Joystick</a></li>
<li class="toctree-l4"><a class="reference internal" href="../alarm/index.html"><code class="docutils literal notranslate"><span class="pre">alarm</span></code> RTC Alarm</a></li>
<li class="toctree-l4"><a class="reference internal" href="../apa102/index.html"><code class="docutils literal notranslate"><span class="pre">apa102</span></code> Rainbow on <code class="docutils literal notranslate"><span class="pre">APA102</span></code> LED Strip</a></li>
<li class="toctree-l4"><a class="reference internal" href="../apds9960/index.html"><code class="docutils literal notranslate"><span class="pre">apds9960</span></code> APDS-9960 test pplication</a></li>
<li class="toctree-l4"><a class="reference internal" href="../audio_rttl/index.html"><code class="docutils literal notranslate"><span class="pre">audio_rttl</span></code> Audio tone generator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../bastest/index.html"><code class="docutils literal notranslate"><span class="pre">bastest</span></code> Bas BASIC Interpreter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../battery/index.html"><code class="docutils literal notranslate"><span class="pre">battery</span></code> Battery monitor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../bme680/index.html"><code class="docutils literal notranslate"><span class="pre">bme680</span></code> BME680 sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../bmi160/index.html"><code class="docutils literal notranslate"><span class="pre">bmi160</span></code> BMI160 sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../bmp180/index.html"><code class="docutils literal notranslate"><span class="pre">bmp180</span></code> BMP180 Barometer sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../bmp280/index.html"><code class="docutils literal notranslate"><span class="pre">bmp280</span></code> BMP280 Barometer sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../bridge/index.html"><code class="docutils literal notranslate"><span class="pre">bridge</span></code> Network Bridge</a></li>
<li class="toctree-l4"><a class="reference internal" href="../buttons/index.html"><code class="docutils literal notranslate"><span class="pre">buttons</span></code> Read GPIO Buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../calib_udelay/index.html"><code class="docutils literal notranslate"><span class="pre">calib_udelay</span></code> Calibration tool for udelay</a></li>
<li class="toctree-l4"><a class="reference internal" href="../camera/index.html"><code class="docutils literal notranslate"><span class="pre">camera</span></code> Camera Snapshot</a></li>
<li class="toctree-l4"><a class="reference internal" href="../can/index.html"><code class="docutils literal notranslate"><span class="pre">can</span></code> CAN Device Test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../capture/index.html"><code class="docutils literal notranslate"><span class="pre">capture</span></code> PWM Capture example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../cbortest/index.html"><code class="docutils literal notranslate"><span class="pre">cbortest</span></code> TinyCBOR Test Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../cctype/index.html"><code class="docutils literal notranslate"><span class="pre">cctype</span></code> Verify C++ cctype operations</a></li>
<li class="toctree-l4"><a class="reference internal" href="../chat/index.html"><code class="docutils literal notranslate"><span class="pre">chat</span></code> AT over TTY</a></li>
<li class="toctree-l4"><a class="reference internal" href="../chrono/index.html"><code class="docutils literal notranslate"><span class="pre">chrono</span></code> Chronometer example to use with STM32LDiscover</a></li>
<li class="toctree-l4"><a class="reference internal" href="../configdata/index.html"><code class="docutils literal notranslate"><span class="pre">configdata</span></code> Config Data example / unit test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../cordic/index.html"><code class="docutils literal notranslate"><span class="pre">cordic</span></code> CORDIC driver example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../cpuhog/index.html"><code class="docutils literal notranslate"><span class="pre">cpuhog</span></code> Keep CPU Busy</a></li>
<li class="toctree-l4"><a class="reference internal" href="../cromfs/index.html"><code class="docutils literal notranslate"><span class="pre">cromfs</span></code> CROMFS Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../dac/index.html"><code class="docutils literal notranslate"><span class="pre">dac</span></code> Write to DAC</a></li>
<li class="toctree-l4"><a class="reference internal" href="../dhcpd/index.html"><code class="docutils literal notranslate"><span class="pre">dhcpd</span></code> DHCP Server</a></li>
<li class="toctree-l4"><a class="reference internal" href="../discover/index.html"><code class="docutils literal notranslate"><span class="pre">discover</span></code> UDP Discover Daemon</a></li>
<li class="toctree-l4"><a class="reference internal" href="../djoystick/index.html"><code class="docutils literal notranslate"><span class="pre">djoystick</span></code> Discrete Joystick</a></li>
<li class="toctree-l4"><a class="reference internal" href="../dronecan/index.html"><code class="docutils literal notranslate"><span class="pre">dronecan</span></code> DroneCAN example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../elf/index.html"><code class="docutils literal notranslate"><span class="pre">elf</span></code> ELF loader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../embedlog/index.html"><code class="docutils literal notranslate"><span class="pre">embedlog</span></code> embedlog example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../esp32_himem/index.html"><code class="docutils literal notranslate"><span class="pre">esp32_himem</span></code> ESP32 HIMEM Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../etl/index.html"><code class="docutils literal notranslate"><span class="pre">etl</span></code> Embedded Template Library (ETL) C++ example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../fb/index.html"><code class="docutils literal notranslate"><span class="pre">fb</span></code> Framebuffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../fboverlay/index.html"><code class="docutils literal notranslate"><span class="pre">fboverlay</span></code> Framebuffer overlay test tool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../flash_test/index.html"><code class="docutils literal notranslate"><span class="pre">flash_test</span></code> SMART Flash test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../flowc/index.html"><code class="docutils literal notranslate"><span class="pre">flowc</span></code> Serial Hardware Flow Control</a></li>
<li class="toctree-l4"><a class="reference internal" href="../fmsynth/index.html"><code class="docutils literal notranslate"><span class="pre">fmsynth</span></code> FM Synthesizer examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../foc/index.html"><code class="docutils literal notranslate"><span class="pre">foc</span></code> FOC motor controller example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ft80x/index.html"><code class="docutils literal notranslate"><span class="pre">ft80x</span></code> FT80x GUI Chip</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ftpc/index.html"><code class="docutils literal notranslate"><span class="pre">ftpc</span></code> FTP Client</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ftpd/index.html"><code class="docutils literal notranslate"><span class="pre">ftpd</span></code> FTP daemon</a></li>
<li class="toctree-l4"><a class="reference internal" href="../fxos8700cq_test/index.html"><code class="docutils literal notranslate"><span class="pre">fxos8700cq_test</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../gpio/index.html"><code class="docutils literal notranslate"><span class="pre">gpio</span></code> GPIO Read and Write</a></li>
<li class="toctree-l4"><a class="reference internal" href="../gps/index.html"><code class="docutils literal notranslate"><span class="pre">gps</span></code> GPS example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hall/index.html"><code class="docutils literal notranslate"><span class="pre">hall</span></code> Hall effect sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hdc1008_demo/index.html"><code class="docutils literal notranslate"><span class="pre">hdc1008_demo</span></code> HDC1008 driver example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hello/index.html"><code class="docutils literal notranslate"><span class="pre">hello</span></code> Hello World</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hello_nim/index.html"><code class="docutils literal notranslate"><span class="pre">hello_nim</span></code> Hello World in Nim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hello_rust/index.html"><code class="docutils literal notranslate"><span class="pre">hello_rust</span></code> Hello World in Rust</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hello_wasm/index.html"><code class="docutils literal notranslate"><span class="pre">hello_wasm</span></code> Hello World in WASM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hello_zig/index.html"><code class="docutils literal notranslate"><span class="pre">hello_zig</span></code> Hello World in Zig</a></li>
<li class="toctree-l4"><a class="reference internal" href="../helloxx/index.html"><code class="docutils literal notranslate"><span class="pre">helloxx</span></code> Hello World in C++</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hidkbd/index.html"><code class="docutils literal notranslate"><span class="pre">hidkbd</span></code> USB Host HID keyboard</a></li>
<li class="toctree-l4"><a class="reference internal" href="../hts221_reader/index.html"><code class="docutils literal notranslate"><span class="pre">hts221_reader</span></code> <code class="docutils literal notranslate"><span class="pre">HTS221</span></code> Humidity Sensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../i2cchar/index.html"><code class="docutils literal notranslate"><span class="pre">i2cchar</span></code> Transfer Through I2C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../i2sloop/index.html"><code class="docutils literal notranslate"><span class="pre">i2sloop</span></code> I2S loopback test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../igmp/index.html"><code class="docutils literal notranslate"><span class="pre">igmp</span></code> Trivial IGMP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ina219/index.html"><code class="docutils literal notranslate"><span class="pre">ina219</span></code> Current/Power Monitor INA219</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ina226/index.html"><code class="docutils literal notranslate"><span class="pre">ina226</span></code> Current/Power Monitor INA219</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ini_dumper/index.html"><code class="docutils literal notranslate"><span class="pre">ini_dumper</span></code> ini dumper example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ipcfg/index.html"><code class="docutils literal notranslate"><span class="pre">ipcfg</span></code> IP Configuration file example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ipforward/index.html"><code class="docutils literal notranslate"><span class="pre">ipforward</span></code> IP Forwarding Using TUN</a></li>
<li class="toctree-l4"><a class="reference internal" href="../json/index.html"><code class="docutils literal notranslate"><span class="pre">json</span></code> cJSON</a></li>
<li class="toctree-l4"><a class="reference internal" href="../keyboard/index.html"><code class="docutils literal notranslate"><span class="pre">keyboard</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../leds/index.html"><code class="docutils literal notranslate"><span class="pre">leds</span></code> Toggle LEDs</a></li>
<li class="toctree-l4"><a class="reference internal" href="../libtest/index.html"><code class="docutils literal notranslate"><span class="pre">libtest</span></code> Static Library Test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lis3dsh_reader/index.html"><code class="docutils literal notranslate"><span class="pre">lis3dsh_reader</span></code> <code class="docutils literal notranslate"><span class="pre">LIS3DSH</span></code> Accelerometer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lp503x/index.html"><code class="docutils literal notranslate"><span class="pre">lp503x</span></code> LP503X PWM LED example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lsm303_reader/index.html"><code class="docutils literal notranslate"><span class="pre">lsm303_reader</span></code> <code class="docutils literal notranslate"><span class="pre">LSM303</span></code> Accelerometer/Magnetometer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lsm6dsl_reader/index.html"><code class="docutils literal notranslate"><span class="pre">lsm6dsl_reader</span></code> <code class="docutils literal notranslate"><span class="pre">LSM6DSL</span></code> Accelerometer/Gyroscope</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ltr308/index.html"><code class="docutils literal notranslate"><span class="pre">ltr308</span></code> LTR308 ambient light sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lua_module/index.html"><code class="docutils literal notranslate"><span class="pre">lua_module</span></code> Hello World Lua module</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lvgldemo/index.html"><code class="docutils literal notranslate"><span class="pre">lvgldemo</span></code> LVGL Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../lvglterm/index.html"><code class="docutils literal notranslate"><span class="pre">lvglterm</span></code> LVGL Terminal for NuttShell (NSH)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../max31855/index.html"><code class="docutils literal notranslate"><span class="pre">max31855</span></code> max31855 example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mcuboot/index.html"><code class="docutils literal notranslate"><span class="pre">mcuboot</span></code> MCUboot examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../media/index.html"><code class="docutils literal notranslate"><span class="pre">media</span></code> Media test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mld/index.html"><code class="docutils literal notranslate"><span class="pre">mld</span></code> MLD example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mlx90614/index.html"><code class="docutils literal notranslate"><span class="pre">mlx90614</span></code> MLX90614 Test Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mml_parser/index.html"><code class="docutils literal notranslate"><span class="pre">mml_parser</span></code> MML parser example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../modbus/index.html"><code class="docutils literal notranslate"><span class="pre">modbus</span></code> FreeModbus demo example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../modbusmaster/index.html"><code class="docutils literal notranslate"><span class="pre">modbusmaster</span></code> Modbus Master example</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">module</span></code> Loadable Module</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mount/index.html"><code class="docutils literal notranslate"><span class="pre">mount</span></code> Mount Filesystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mqttc/index.html"><code class="docutils literal notranslate"><span class="pre">mqttc</span></code> MQTT-C Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mtdpart/index.html"><code class="docutils literal notranslate"><span class="pre">mtdpart</span></code> MTD Partition Test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../mtdrwb/index.html"><code class="docutils literal notranslate"><span class="pre">mtdrwb</span></code> MTD Read-ahead and Write Buffering</a></li>
<li class="toctree-l4"><a class="reference internal" href="../netlink_route/index.html"><code class="docutils literal notranslate"><span class="pre">netlink_route</span></code> Netlink NETLINK_ROUTE test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../netloop/index.html"><code class="docutils literal notranslate"><span class="pre">netloop</span></code> Network loopback device</a></li>
<li class="toctree-l4"><a class="reference internal" href="../netpkt/index.html"><code class="docutils literal notranslate"><span class="pre">netpkt</span></code> <code class="docutils literal notranslate"><span class="pre">AF_PACKET</span></code> Raw Sockets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nettest/index.html"><code class="docutils literal notranslate"><span class="pre">nettest</span></code> Client/Server Over TCP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nimble/index.html"><code class="docutils literal notranslate"><span class="pre">nimble</span></code> NimBLE example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nng_test/index.html"><code class="docutils literal notranslate"><span class="pre">nng_test</span></code> NNG pubsub program</a></li>
<li class="toctree-l4"><a class="reference internal" href="../noteprintf/index.html"><code class="docutils literal notranslate"><span class="pre">noteprintf</span></code> “Note printf!” example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nrf24l01_btle/index.html"><code class="docutils literal notranslate"><span class="pre">nrf24l01_btle</span></code> Emulates a nRF8001 temperature beacon with nRF24L01</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nrf24l01_term/index.html"><code class="docutils literal notranslate"><span class="pre">nrf24l01_term</span></code> NRF24L01 Wireless Connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="../null/index.html"><code class="docutils literal notranslate"><span class="pre">null</span></code> NULL example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nunchuck/index.html"><code class="docutils literal notranslate"><span class="pre">nunchuck</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../nx/index.html"><code class="docutils literal notranslate"><span class="pre">nx</span></code> NX graphics example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxdemo/index.html"><code class="docutils literal notranslate"><span class="pre">nxdemo</span></code> NX Demo “Graphic test” example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxflat/index.html"><code class="docutils literal notranslate"><span class="pre">nxflat</span></code> NXFLAT Binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxhello/index.html"><code class="docutils literal notranslate"><span class="pre">nxhello</span></code> NX graphics “Hello, World!” example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nximage/index.html"><code class="docutils literal notranslate"><span class="pre">nximage</span></code> Display NuttX Logo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxlines/index.html"><code class="docutils literal notranslate"><span class="pre">nxlines</span></code> NX Line Drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxscope/index.html"><code class="docutils literal notranslate"><span class="pre">nxscope</span></code> NxScope library example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxterm/index.html"><code class="docutils literal notranslate"><span class="pre">nxterm</span></code> Display NuttShell (NSH) as NX Console</a></li>
<li class="toctree-l4"><a class="reference internal" href="../nxtext/index.html"><code class="docutils literal notranslate"><span class="pre">nxtext</span></code> Display NX Text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../obd2/index.html"><code class="docutils literal notranslate"><span class="pre">obd2</span></code> OBD-II application example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../oneshot/index.html"><code class="docutils literal notranslate"><span class="pre">oneshot</span></code> Oneshot Timer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../opencyphal/index.html"><code class="docutils literal notranslate"><span class="pre">opencyphal</span></code> OpenCyphal Cyphal/CAN example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pca9635/index.html"><code class="docutils literal notranslate"><span class="pre">pca9635</span></code> <code class="docutils literal notranslate"><span class="pre">PCA9635PW</span></code> LED</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pdcurses/index.html"><code class="docutils literal notranslate"><span class="pre">pdcurses</span></code> pdcurses demos</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pf_ieee802154/index.html"><code class="docutils literal notranslate"><span class="pre">pf_ieee802154</span></code> PF_IEEE802154 example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pipe/index.html"><code class="docutils literal notranslate"><span class="pre">pipe</span></code> Pipe example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../poll/index.html"><code class="docutils literal notranslate"><span class="pre">poll</span></code> Poll example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../popen/index.html"><code class="docutils literal notranslate"><span class="pre">popen</span></code> popen() example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../posix_spawn/index.html"><code class="docutils literal notranslate"><span class="pre">posix_spawn</span></code> posix_spawn Unit Test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../powerled/index.html"><code class="docutils literal notranslate"><span class="pre">powerled</span></code> Powerled driver example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../powermonitor/index.html"><code class="docutils literal notranslate"><span class="pre">powermonitor</span></code> LTC4151 powermonitor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pppd/index.html"><code class="docutils literal notranslate"><span class="pre">pppd</span></code> pppd client example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pty_test/index.html"><code class="docutils literal notranslate"><span class="pre">pty_test</span></code> Pseudo-Terminals</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pwfb/index.html"><code class="docutils literal notranslate"><span class="pre">pwfb</span></code> NX Per-Window Framebuffer Text Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pwlines/index.html"><code class="docutils literal notranslate"><span class="pre">pwlines</span></code> NX Per-Window Framebuffer Graphics Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../pwm/index.html"><code class="docutils literal notranslate"><span class="pre">pwm</span></code> General PWM Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../qencoder/index.html"><code class="docutils literal notranslate"><span class="pre">qencoder</span></code> Quadrature Encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../random/index.html"><code class="docutils literal notranslate"><span class="pre">random</span></code> Random Numbers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../relays/index.html"><code class="docutils literal notranslate"><span class="pre">relays</span></code> Relays</a></li>
<li class="toctree-l4"><a class="reference internal" href="../rfid_readuid/index.html"><code class="docutils literal notranslate"><span class="pre">rfid_readuid</span></code> RFID example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../rgbled/index.html"><code class="docutils literal notranslate"><span class="pre">rgbled</span></code> RGB LED Using PWM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../romfs/index.html"><code class="docutils literal notranslate"><span class="pre">romfs</span></code> File System</a></li>
<li class="toctree-l4"><a class="reference internal" href="../rpmsgsocket/index.html"><code class="docutils literal notranslate"><span class="pre">rpmsgsocket</span></code> Rpmsg socket example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../sendmail/index.html"><code class="docutils literal notranslate"><span class="pre">sendmail</span></code> SMTP Client</a></li>
<li class="toctree-l4"><a class="reference internal" href="../serialblaster/index.html"><code class="docutils literal notranslate"><span class="pre">serialblaster</span></code> Serial Blaster example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../serialrx/index.html"><code class="docutils literal notranslate"><span class="pre">serialrx</span></code> Serial RX example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../serloop/index.html"><code class="docutils literal notranslate"><span class="pre">serloop</span></code> Serial Loopback</a></li>
<li class="toctree-l4"><a class="reference internal" href="../shm_test/index.html"><code class="docutils literal notranslate"><span class="pre">shm_test</span></code> SHM example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../sht3x/index.html"><code class="docutils literal notranslate"><span class="pre">sht3x</span></code> SHT3x sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../slcd/index.html"><code class="docutils literal notranslate"><span class="pre">slcd</span></code> Alphanumeric Segment LCD</a></li>
<li class="toctree-l4"><a class="reference internal" href="../smps/index.html"><code class="docutils literal notranslate"><span class="pre">smps</span></code> Switched-Mode Power Supply</a></li>
<li class="toctree-l4"><a class="reference internal" href="../sotest/index.html"><code class="docutils literal notranslate"><span class="pre">sotest</span></code> Shared Library Module Test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stat/index.html"><code class="docutils literal notranslate"><span class="pre">stat</span></code> Test of stat(), fstat(), and statfs()</a></li>
<li class="toctree-l4"><a class="reference internal" href="../sx127x_demo/index.html"><code class="docutils literal notranslate"><span class="pre">sx127x_demo</span></code> SX127X Radio</a></li>
<li class="toctree-l4"><a class="reference internal" href="../system/index.html"><code class="docutils literal notranslate"><span class="pre">system</span></code> System() example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tcp_ipc_client/index.html"><code class="docutils literal notranslate"><span class="pre">tcp_ipc_client</span></code> Client for TCP IPC NuttX</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tcp_ipc_server/index.html"><code class="docutils literal notranslate"><span class="pre">tcp_ipc_server</span></code> Server for TCP IPC NuttX</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tcpblaster/index.html"><code class="docutils literal notranslate"><span class="pre">tcpblaster</span></code> TCP Performance Test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tcpecho/index.html"><code class="docutils literal notranslate"><span class="pre">tcpecho</span></code> TCP Echo Server</a></li>
<li class="toctree-l4"><a class="reference internal" href="../telnetd/index.html"><code class="docutils literal notranslate"><span class="pre">telnetd</span></code> Simple Telnet Shell</a></li>
<li class="toctree-l4"><a class="reference internal" href="../termios/index.html"><code class="docutils literal notranslate"><span class="pre">termios</span></code> Simple Termios interface test</a></li>
<li class="toctree-l4"><a class="reference internal" href="../thttpd/index.html"><code class="docutils literal notranslate"><span class="pre">thttpd</span></code> THTTPD server</a></li>
<li class="toctree-l4"><a class="reference internal" href="../tiff/index.html"><code class="docutils literal notranslate"><span class="pre">tiff</span></code> TIFF file generation example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../timer/index.html"><code class="docutils literal notranslate"><span class="pre">timer</span></code> Timer example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../timer_gpio/index.html"><code class="docutils literal notranslate"><span class="pre">timer_gpio</span></code> Timer GPIO example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../touchscreen/index.html"><code class="docutils literal notranslate"><span class="pre">touchscreen</span></code> Touchscreen Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../udgram/index.html"><code class="docutils literal notranslate"><span class="pre">udgram</span></code> Unix domain datagram example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../udp/index.html"><code class="docutils literal notranslate"><span class="pre">udp</span></code> Client/Server Over UDP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../udpblaster/index.html"><code class="docutils literal notranslate"><span class="pre">udpblaster</span></code> UDP blaster example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../uid/index.html"><code class="docutils literal notranslate"><span class="pre">uid</span></code> UID/GID example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../unionfs/index.html"><code class="docutils literal notranslate"><span class="pre">unionfs</span></code> Union File System</a></li>
<li class="toctree-l4"><a class="reference internal" href="../usbserial/index.html"><code class="docutils literal notranslate"><span class="pre">usbserial</span></code> USB Serial Hello World</a></li>
<li class="toctree-l4"><a class="reference internal" href="../userfs/index.html"><code class="docutils literal notranslate"><span class="pre">userfs</span></code> UserFS File System</a></li>
<li class="toctree-l4"><a class="reference internal" href="../usrsocktest/index.html"><code class="docutils literal notranslate"><span class="pre">usrsocktest</span></code> USRSOCK test example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ustream/index.html"><code class="docutils literal notranslate"><span class="pre">ustream</span></code> Unix Stream Sockets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../veml6070/index.html"><code class="docutils literal notranslate"><span class="pre">veml6070</span></code> VEML6070 UltraViolet sensor example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../watchdog/index.html"><code class="docutils literal notranslate"><span class="pre">watchdog</span></code> Watchdog Timer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../watcher/index.html"><code class="docutils literal notranslate"><span class="pre">watcher</span></code> Watcher &amp; Watched</a></li>
<li class="toctree-l4"><a class="reference internal" href="../webserver/index.html"><code class="docutils literal notranslate"><span class="pre">webserver</span></code> Simple Webserver</a></li>
<li class="toctree-l4"><a class="reference internal" href="../wget/index.html"><code class="docutils literal notranslate"><span class="pre">wget</span></code> Web Client</a></li>
<li class="toctree-l4"><a class="reference internal" href="../wgetjson/index.html"><code class="docutils literal notranslate"><span class="pre">wgetjson</span></code> GET JSON Using <code class="docutils literal notranslate"><span class="pre">wget</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../wiegand/index.html"><code class="docutils literal notranslate"><span class="pre">wiegand</span></code> Wiegand example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ws2812/index.html"><code class="docutils literal notranslate"><span class="pre">ws2812</span></code> ws2812 Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../ws2812esp32rmt/index.html"><code class="docutils literal notranslate"><span class="pre">ws2812esp32rmt</span></code> ws2812 Demo using ESP32_RMT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../xbc_test/index.html"><code class="docutils literal notranslate"><span class="pre">xbc_test</span></code> XBox Controller Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../xmlrpc/index.html"><code class="docutils literal notranslate"><span class="pre">xmlrpc</span></code> XML-RPC Server</a></li>
<li class="toctree-l4"><a class="reference internal" href="../zerocross/index.html"><code class="docutils literal notranslate"><span class="pre">zerocross</span></code> Zero Crossing Device</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../implementation/index.html">Implementation Details</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../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"><a href="../../index.html">Applications</a></li>
<li class="breadcrumb-item"><a href="../index.html">Examples</a></li>
<li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">module</span></code> Loadable Module</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/applications/examples/module/index.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="module-loadable-module">
<h1><code class="docutils literal notranslate"><span class="pre">module</span></code> Loadable Module<a class="headerlink" href="#module-loadable-module" title="Permalink to this heading"></a></h1>
<p>This example builds a small loadable module test case. This includes a character
driver under <code class="docutils literal notranslate"><span class="pre">examples/module/drivers</span></code>. This driver is built using the
relocatable ELF format and installed in a ROMFS file system. At run time, the
driver module is loaded and exercised. Requires <code class="docutils literal notranslate"><span class="pre">CONFIG_MODULE</span></code>. Other
configuration options:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_ELF_DEVMINOR</span></code> – The minor device number of the ROMFS block
driver. For example, the <code class="docutils literal notranslate"><span class="pre">N</span></code> in <code class="docutils literal notranslate"><span class="pre">/dev/ramN</span></code>. Used for registering the RAM
block driver that will hold the ROMFS file system containing the ELF
executables to be tested. Default: <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_ELF_DEVPATH</span></code> – The path to the ROMFS block driver device.
This must match <code class="docutils literal notranslate"><span class="pre">EXAMPLES_ELF_DEVMINOR</span></code>. Used for registering the RAM block
driver that will hold the ROMFS file system containing the ELF executables to
be tested. Default: <code class="docutils literal notranslate"><span class="pre">/dev/ram0</span></code>.</p></li>
</ul>
<p><strong>Notes</strong>:</p>
<ol class="arabic">
<li><p><code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code> should be provided in <code class="docutils literal notranslate"><span class="pre">CMODULEFLAGS</span></code>. RAM and FLASH memory regions
may require long allcs. For ARM, this might be:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>CMODULEFLAGS = $(CFLAGS) -mlong-calls
</pre></div>
</div>
<p>Similarly for C++ flags which must be provided in <code class="docutils literal notranslate"><span class="pre">CXXMODULEFLAGS</span></code>.</p>
</li>
<li><p>Your top-level <code class="docutils literal notranslate"><span class="pre">nuttx/Make.defs</span></code> file must also include an appropriate
definition, LDMODULEFLAGS, to generate a relocatable ELF object. With GNU LD,
this should include <code class="docutils literal notranslate"><span class="pre">-r</span></code> and <code class="docutils literal notranslate"><span class="pre">-e</span> <span class="pre">&lt;entry</span> <span class="pre">point&gt;</span></code>.:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize
</pre></div>
</div>
<p>If you use GCC to link, you make also need to include <code class="docutils literal notranslate"><span class="pre">-nostdlib</span></code>.</p>
</li>
<li><p>This example also requires <code class="docutils literal notranslate"><span class="pre">genromfs</span></code>. <code class="docutils literal notranslate"><span class="pre">genromfs</span></code> can be build as part of the
nuttx toolchain. Or can built from the <code class="docutils literal notranslate"><span class="pre">genromfs</span></code> sources that can be found
in the NuttX tools repository (<code class="docutils literal notranslate"><span class="pre">genromfs-0.5.2.tar.gz</span></code>). In any event, the
PATH variable must include the path to the <code class="docutils literal notranslate"><span class="pre">genromfs</span></code> executable.</p></li>
<li><p>ELF size: The ELF files in this example are, be default, quite large because
they include a lot of build garbage. You can greatly reduce the size of the
ELF binaries are using the <code class="docutils literal notranslate"><span class="pre">objcopy</span> <span class="pre">--strip-unneeded</span></code> command to remove
un-necessary information from the ELF files.</p></li>
<li><p>Simulator. You cannot use this example with the NuttX simulator on Cygwin.
That is because the Cygwin GCC does not generate ELF file but rather some
Windows-native binary format.</p>
<p>If you really want to do this, you can create a NuttX x86 <code class="docutils literal notranslate"><span class="pre">buildroot</span></code>
toolchain and use that be build the ELF executables for the ROMFS file
system.</p>
</li>
<li><p>Linker scripts. You might also want to use a linker scripts to combine
sections better. An example linker script is at
<code class="docutils literal notranslate"><span class="pre">nuttx/libc/modlib/gnu-elf.ld</span></code>. That example might have to be tuned for your
particular linker output to position additional sections correctly. The GNU
LD <code class="docutils literal notranslate"><span class="pre">LDMODULEFLAGS</span></code> then might be:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/modlib/gnu-elf.ld
</pre></div>
</div>
</li>
</ol>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../modbusmaster/index.html" class="btn btn-neutral float-left" title="modbusmaster Modbus Master example" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../mount/index.html" class="btn btn-neutral float-right" title="mount Mount Filesystem" 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>