You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gi...@apache.org on 2021/03/30 12:21:44 UTC
[incubator-nuttx-website] branch asf-site updated: Publishing web:
59c4fb7620bc9aabf46df895f9e5cdb361f50177 docs:
d89b2b40921f85602634ae609a8aeaf52c5cbc4d
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new b87a324 Publishing web: 59c4fb7620bc9aabf46df895f9e5cdb361f50177 docs: d89b2b40921f85602634ae609a8aeaf52c5cbc4d
b87a324 is described below
commit b87a3245ac89c38852209125e446e863836aab98
Author: Ouss4 <ab...@gmail.com>
AuthorDate: Tue Mar 30 12:20:27 2021 +0000
Publishing web: 59c4fb7620bc9aabf46df895f9e5cdb361f50177 docs: d89b2b40921f85602634ae609a8aeaf52c5cbc4d
---
content/docs/10.0.0/index.html | 2 +-
content/docs/10.0.1/index.html | 2 +-
.../docs/latest/_images/esp32-core-board-v2.jpg | Bin 0 -> 48460 bytes
.../docs/latest/_images/esp32-devkitc-v4-front.jpg | Bin 0 -> 45574 bytes
.../_sources/applications/nsh/installation.rst.txt | 3 -
.../latest/_sources/applications/nsh/nsh.rst.txt | 1 -
.../docs/latest/_sources/components/binfmt.rst.txt | 25 +-
.../_sources/contributing/documentation.rst.txt | 32 +-
.../docs/latest/_sources/guides/cpp_cmake.rst.txt | 284 +++++++++
content/docs/latest/_sources/guides/index.rst.txt | 1 +
.../_sources/introduction/detailed_support.rst.txt | 24 +-
.../introduction/supported_platforms.rst.txt | 6 -
.../esp32/boards/esp32-devkitc/index.rst.txt | 52 ++
.../_sources/platforms/xtensa/esp32/index.rst.txt | 68 ++-
.../_sources/quickstart/organization.rst.txt | 2 -
.../latest/_sources/reference/os/boardctl.rst.txt | 40 --
.../latest/_sources/reference/os/index.rst.txt | 1 -
.../_sources/reference/user/13_boardctl.rst.txt | 252 ++++++++
.../_sources/reference/user/13_logging.rst.txt | 95 +++
content/docs/latest/_static/custom.css | 2 +-
.../docs/latest/applications/nsh/installation.html | 2 -
content/docs/latest/applications/nsh/nsh.html | 1 -
content/docs/latest/components/binfmt.html | 27 +-
content/docs/latest/components/index.html | 4 +-
content/docs/latest/components/nxgraphics/nx.html | 4 +-
.../docs/latest/contributing/documentation.html | 32 +-
content/docs/latest/contributing/index.html | 4 +-
content/docs/latest/genindex.html | 60 +-
content/docs/latest/guides/cpp_cmake.html | 539 +++++++++++++++++
content/docs/latest/guides/drivers.html | 1 +
content/docs/latest/guides/index.html | 7 +
content/docs/latest/guides/nfs.html | 1 +
content/docs/latest/guides/simulator.html | 1 +
content/docs/latest/guides/tasktrace.html | 1 +
content/docs/latest/guides/tasktraceinternal.html | 5 +-
content/docs/latest/guides/tasktraceuser.html | 1 +
content/docs/latest/guides/usbtrace.html | 1 +
content/docs/latest/index.html | 3 +-
.../docs/latest/introduction/detailed_support.html | 22 +-
.../latest/introduction/supported_platforms.html | 7 -
content/docs/latest/objects.inv | Bin 22797 -> 23420 bytes
content/docs/latest/platforms/index.html | 5 +-
.../xtensa/esp32/boards/esp32-devkitc/index.html | 347 +++++++++++
.../docs/latest/platforms/xtensa/esp32/index.html | 99 +++-
content/docs/latest/quickstart/organization.html | 2 -
content/docs/latest/reference/os/addrenv.html | 1 -
content/docs/latest/reference/os/app_vs_os.html | 5 +-
content/docs/latest/reference/os/arch.html | 1 -
content/docs/latest/reference/os/board.html | 1 -
content/docs/latest/reference/os/boardctl.html | 317 ----------
content/docs/latest/reference/os/conventions.html | 1 -
content/docs/latest/reference/os/index.html | 2 -
content/docs/latest/reference/os/iob.html | 1 -
content/docs/latest/reference/os/led.html | 1 -
content/docs/latest/reference/os/nuttx.html | 1 -
content/docs/latest/reference/os/paging.html | 1 -
content/docs/latest/reference/os/shm.html | 1 -
content/docs/latest/reference/os/smp.html | 5 +-
content/docs/latest/reference/os/time_clock.html | 1 -
content/docs/latest/reference/os/wqueue.html | 1 -
.../latest/reference/user/01_task_control.html | 2 +
.../latest/reference/user/02_task_scheduling.html | 2 +
.../latest/reference/user/03_task_control.html | 2 +
.../latest/reference/user/04_message_queue.html | 2 +
.../reference/user/05_counting_semaphore.html | 2 +
.../latest/reference/user/06_clocks_timers.html | 2 +
content/docs/latest/reference/user/07_signals.html | 6 +-
content/docs/latest/reference/user/08_pthread.html | 2 +
.../docs/latest/reference/user/09_env_vars.html | 2 +
.../docs/latest/reference/user/10_filesystem.html | 2 +
content/docs/latest/reference/user/11_network.html | 2 +
.../latest/reference/user/12_shared_memory.html | 6 +-
.../docs/latest/reference/user/13_boardctl.html | 646 +++++++++++++++++++++
content/docs/latest/reference/user/13_logging.html | 419 +++++++++++++
content/docs/latest/reference/user/index.html | 4 +
content/docs/latest/reference/user/structures.html | 8 +-
content/docs/latest/searchindex.js | 2 +-
content/feed.xml | 4 +-
78 files changed, 2992 insertions(+), 531 deletions(-)
diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html
index bf03273..d5c8447 100644
--- a/content/docs/10.0.0/index.html
+++ b/content/docs/10.0.0/index.html
@@ -207,7 +207,7 @@ by following these <a class="reference internal" href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 11 March 21 at 00:46</p>
+<p>Last Updated: 30 March 21 at 12:18</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html
index d21b1c3..1203433 100644
--- a/content/docs/10.0.1/index.html
+++ b/content/docs/10.0.1/index.html
@@ -211,7 +211,7 @@ by following these <a class="reference internal" href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 11 March 21 at 00:46</p>
+<p>Last Updated: 30 March 21 at 12:18</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
diff --git a/content/docs/latest/_images/esp32-core-board-v2.jpg b/content/docs/latest/_images/esp32-core-board-v2.jpg
new file mode 100644
index 0000000..7548f35
Binary files /dev/null and b/content/docs/latest/_images/esp32-core-board-v2.jpg differ
diff --git a/content/docs/latest/_images/esp32-devkitc-v4-front.jpg b/content/docs/latest/_images/esp32-devkitc-v4-front.jpg
new file mode 100644
index 0000000..04fb739
Binary files /dev/null and b/content/docs/latest/_images/esp32-devkitc-v4-front.jpg differ
diff --git a/content/docs/latest/_sources/applications/nsh/installation.rst.txt b/content/docs/latest/_sources/applications/nsh/installation.rst.txt
index f8e0c79..2df8547 100644
--- a/content/docs/latest/_sources/applications/nsh/installation.rst.txt
+++ b/content/docs/latest/_sources/applications/nsh/installation.rst.txt
@@ -45,9 +45,6 @@ also depends on:
- ``CONFIG_DISABLE_MOUNTPOINT=n``. If mount point support is disabled,
then you cannot mount *any* file systems.
- - ``CONFIG_NFILE_DESCRIPTORS > 4``. Of course you have to have file
- descriptions to use any thing in the file system.
-
- ``CONFIG_FS_ROMFS`` enabled. This option enables ROMFS file system
support.
diff --git a/content/docs/latest/_sources/applications/nsh/nsh.rst.txt b/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
index 06d0eb5..f89b794 100644
--- a/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
+++ b/content/docs/latest/_sources/applications/nsh/nsh.rst.txt
@@ -261,7 +261,6 @@ configuration settings <#nshconfiguration>`__. This capability
also depends on:
- ``CONFIG_DISABLE_MOUNTPOINT`` not set
- - ``CONFIG_NFILE_DESCRIPTORS`` > 4
- ``CONFIG_FS_ROMFS`` enabled
**Default Start-Up Behavior**. The implementation that is provided
diff --git a/content/docs/latest/_sources/components/binfmt.rst.txt b/content/docs/latest/_sources/components/binfmt.rst.txt
index d109a70..e86c0ee 100644
--- a/content/docs/latest/_sources/components/binfmt.rst.txt
+++ b/content/docs/latest/_sources/components/binfmt.rst.txt
@@ -283,6 +283,11 @@ symbol by its name and to provide the address associated with the symbol
as needed to perform the dynamic linking of the binary object to the
base FLASH code.
+Some toolchains will prefix symbols with an underscore. To support these
+toolchains the ``CONFIG_SYMTAB_DECORATED`` setting may be defined. This
+will cause a leading underscore to be ignored on *undefined* symbols
+during dynamic linking.
+
Symbol Table Header Files
-------------------------
@@ -323,33 +328,24 @@ Symbol Table Function Interfaces
.. c:function:: FAR const struct symtab_s *symtab_findbyname(FAR const struct symtab_s *symtab, FAR const char *name, int nsyms);
Find the symbol in the symbol table with the matching name.
- This version assumes that table is not ordered with respect to
- symbol name and, hence, access time will be linear with respect
- to ``nsyms``.
-
- :return:
- A reference to the symbol table entry if an entry with the matching name is found; NULL is returned if the entry is not found.
-
-.. c:function:: FAR const struct symtab_s *symtab_findorderedbyname(FAR const struct symtab_s *symtab, FAR const char *name, int nsyms);
-
- Find the symbol in the symbol table with the matching name.
- This version assumes that table ordered with respect to symbol name.
+ The implementation will be linear with respect to ``nsyms`` if
+ ``CONFIG_SYMTAB_ORDEREDBYNAME`` is not selected, and logarithmic
+ if it is.
:return:
A reference to the symbol table entry if an entry with
the matching name is found; NULL is returned if the entry is not found.
-
.. c:function:: FAR const struct symtab_s *symtab_findbyvalue(FAR const struct symtab_s *symtab, FAR void *value, int nsyms);
Find the symbol in the symbol table whose value closest
(but not greater than), the provided value. This version assumes
- that table is not ordered with respect to symbol name and, hence,
+ that table is not ordered with respect to symbol value and, hence,
access time will be linear with respect to ``nsyms``.
:return:
A reference to the symbol table entry if an entry with the matching
- name is found; ``NULL`` is returned if the entry is not found.
+ value is found; ``NULL`` is returned if the entry is not found.
Configuration Variables
=======================
@@ -358,6 +354,7 @@ Configuration Variables
This logic may be suppressed be defining this setting.
- ``CONFIG_BINFMT_CONSTRUCTORS``: Build in support for C++ constructors in loaded modules.
- ``CONFIG_SYMTAB_ORDEREDBYNAME``: Symbol tables are order by name (rather than value).
+ - ``CONFIG_SYMTAB_DECORATED``: Symbols will have a leading underscore in object files.
Additional configuration options may be required for the each enabled
binary format.
diff --git a/content/docs/latest/_sources/contributing/documentation.rst.txt b/content/docs/latest/_sources/contributing/documentation.rst.txt
index 9b19650..a430716 100644
--- a/content/docs/latest/_sources/contributing/documentation.rst.txt
+++ b/content/docs/latest/_sources/contributing/documentation.rst.txt
@@ -39,6 +39,25 @@ go into ``Documentation`` directory. Then,
$ xdg-open _build/html/index.html
+Live Rebuild
+------------
+
+For more comfortable editing and previewing of changes (as ``make html`` will perform a slower full rebuild),
+you can install ``sphinx-autobuild`` which will monitor file changes and rebuild only affected files. To
+install it (within the virtual environment):
+
+.. code-block:: console
+
+ $ pip3 install sphinx-autobuild
+
+To run:
+
+.. code-block:: console
+
+ $ make autobuild
+
+Which will perform an initial clean build and monitor changes from then on.
+
Contributing
============
@@ -122,19 +141,10 @@ Linking
To generate internal links, Sphinx's `roles <https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#ref-role>`_ should
be used. So, use ``:ref:`` instead of standard RST syntax like ```link <target>`_`` for internal links.
-
-Moreover, sphinx is configured to use `autosectionlabel <https://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html#confval-autosectionlabel_prefix_document>`_ extension. This means that sections will automatically get a label that can be linked with the
-`:ref:`. For example:
-
-.. code-block:: RST
-
- This is a Section
- =================
-
- :ref:`This is a Section` is a link to this very same section.
-
If the target is in a different file, you can refer it with: ``:ref:`link text </pathtorst:Section Name>```.
+Linking to a specific document can be done with ``:doc:`/path/to/document``` (without ``.rst`` extension).
+
Notes and TODOS
---------------
diff --git a/content/docs/latest/_sources/guides/cpp_cmake.rst.txt b/content/docs/latest/_sources/guides/cpp_cmake.rst.txt
new file mode 100644
index 0000000..f922079
--- /dev/null
+++ b/content/docs/latest/_sources/guides/cpp_cmake.rst.txt
@@ -0,0 +1,284 @@
+.. include:: /substitutions.rst
+.. _cpp_cmake:
+
+C++ Example using CMake
+=======================
+
+In some situations, developers intend to implement software using the NuttX platform in
+a previously set hardware and configuration where it is not possible or allowed to make
+changes. In such situations, less contact with the operating source tree is better, where
+it is only used for the application.
+
+Some approaches are possible to do that today:
+
+* https://cwiki.apache.org/confluence/display/NUTTX/Building+NuttX+with+Applications+Outside+of+the+Source+Tree
+* https://www.programmersought.com/article/61604062421/
+
+We have been seen the increase of the use of C++ language in embedded systems application. And
+CMake (https://www.cmake.org) is the preferred build system used to build C++ projects. NuttX
+support C++ based projects.
+
+Using the 'build as a library' procedure of NuttX, it is possible to build NuttX
+applications using C++ language and also the cmake build tool.
+
+This document will show how to reimplement the hellocpp project using this cmake.
+
+Preparation
+-----------
+
+#. Base NuttX compilation changes
+
+ For this example, load the configuration 'stm32f4discovery:testlibcxx' for building
+
+ .. code-block:: console
+
+ $ cd nuttx
+ $ ./tools/configure.sh stm32f4discovery:testlibcxx
+
+ In menuconfig, the main points to be changed on a typical NuttX configuration are the following:
+
+ * Set RTOS Features -> Tasks and Scheduling -> Application entry point to 'hellocpp_main'
+
+ * Build NuttX and generate the export
+
+ .. code-block:: console
+
+ $ make export
+
+Creating the project
+--------------------
+
+#. Create your project file structure
+
+ The project structure is organized as follow:
+
+ .. code-block:: console
+
+ hellocpp/
+ hellocpp/CMakeLists.txt
+ hellocpp/cmake/stm32f4discovery.cmake
+ hellocpp/nuttx-export-10.0.1/
+ hellocpp/src/CMakeLists.txt
+ hellocpp/src/main.cpp
+ hellocpp/src/HelloWorld.h
+ hellocpp/src/HelloWorld.cpp
+
+ The directory 'nuttx-export-10.0.1' is the unzipped content from the file created during
+ make export procedure done before.
+
+#. File contents
+
+* hellocpp/CMakeLists.txt
+
+.. code-block:: cmake
+
+ cmake_minimum_required(VERSION 3.2...3.15)
+
+ project(HelloCpp
+ VERSION 1.0
+ DESCRIPTION "Hello world C++ Nuttx"
+ )
+
+ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ # set(CMAKE_CXX_EXTENSIONS OFF)
+ set(CMAKE_C_STANDARD 99)
+
+ set(NUTTX_PATH "${CMAKE_SOURCE_DIR}/nuttx-export-10.0.1")
+
+ include(cmake/stm32f4discovery.cmake)
+
+ set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -fno-builtin -Wall -Wshadow -Wundef -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer -Os")
+ set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -D_DEBUG -D_LIBCPP_BUILD_STATIC -D_LIBCPP_NO_EXCEPTIONS ")
+ set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -fno-exceptions -fcheck-new -fno-rtti -pedantic ")
+ set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -nostdinc++")
+
+ set(AC_DEFINES "${AC_DEFINES} -DCONFIG_WCHAR_BUILTIN")
+
+ include_directories(
+ src
+ ${NUTTX_PATH}/include
+ ${NUTTX_PATH}/include/libcxx
+ ${NUTTX_PATH}/arch/chip
+ )
+
+ set(EXE_NAME hellocpp)
+
+ set(CMAKE_CXX_FLAGS "${AC_HW_FLAGS} ${AC_DEFINES} ${AC_COMMON_FLAGS} ${AC_CXX_EXTRA_FLAGS}")
+ if (PARAM_DEBUG)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
+ endif()
+
+ set(CMAKE_SKIP_RPATH ON)
+ set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_LINKER} ${AC_LINKER_FLAGS} -o ${EXE_NAME}.elf <OBJECTS> <LINK_LIBRARIES>")
+
+ set(BUILD_SHARED_LIBS OFF)
+
+ add_subdirectory(src)
+
+* hellocpp/cmake/stm32f4discovery.cmake
+
+.. code-block:: cmake
+
+ set(CMAKE_SYSTEM_NAME Generic)
+ set(CMAKE_SYSTEM_PROCESSOR arm)
+
+ set(MCU_LINKER_SCRIPT "${NUTTX_PATH}/scripts/ld.script")
+
+ set(COMPILER_PREFIX arm-none-eabi-)
+
+ # cmake-format: off
+ set(CMAKE_C_COMPILER ${COMPILER_PREFIX}gcc)
+ set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}g++)
+ set(CMAKE_AR ${COMPILER_PREFIX}ar)
+ set(CMAKE_RANLIB ${COMPILER_PREFIX}ranlib)
+ set(CMAKE_LINKER ${COMPILER_PREFIX}ld)
+ set(CMAKE_ASM_COMPILER ${COMPILER_PREFIX}gcc)
+ set(CMAKE_OBJCOPY ${COMPILER_PREFIX}objcopy)
+ set(CMAKE_OBJDUMP ${COMPILER_PREFIX}objdump)
+ set(CMAKE_SIZE ${COMPILER_PREFIX}size)
+
+ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
+
+ set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+
+ set(AC_HW_FLAGS "-mcpu=cortex-m4 -mthumb -mfloat-abi=soft ")
+ set(AC_HW_FLAGS "${AC_HW_FLAGS} -isystem ${NUTTX_PATH}/include")
+ set(AC_HW_FLAGS "${AC_HW_FLAGS} -pipe -D__NuttX__")
+
+ set(AC_LINKER_FLAGS "--entry=__start -nostartfiles -nodefaultlibs -T${MCU_LINKER_SCRIPT}")
+
+* hellocpp/src/CMakeLists.txt
+
+.. code-block:: cmake
+
+ set(HEADER_FILES
+ HelloWorld.h
+ )
+
+ set(SOURCE_FILES
+ HelloWorld.cpp
+ )
+
+ link_directories(${EXE_NAME} ${NUTTX_PATH}/libs)
+
+ add_executable(${EXE_NAME} ${SOURCE_FILES} main.cpp ${HEADER_FILES})
+
+ add_custom_command(
+ TARGET ${EXE_NAME}
+ POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} ARGS -S -O binary ${CMAKE_BINARY_DIR}/${EXE_NAME}.elf ${CMAKE_BINARY_DIR}/${EXE_NAME}.bin
+ )
+
+ target_link_libraries(${EXE_NAME} --start-group)
+
+ target_link_libraries(${EXE_NAME} sched)
+ target_link_libraries(${EXE_NAME} drivers)
+ target_link_libraries(${EXE_NAME} boards)
+ target_link_libraries(${EXE_NAME} c)
+ target_link_libraries(${EXE_NAME} mm)
+ target_link_libraries(${EXE_NAME} arch)
+ target_link_libraries(${EXE_NAME} xx)
+ target_link_libraries(${EXE_NAME} apps)
+ target_link_libraries(${EXE_NAME} fs)
+ target_link_libraries(${EXE_NAME} binfmt)
+ target_link_libraries(${EXE_NAME} board)
+ target_link_libraries(${EXE_NAME} gcc)
+ target_link_libraries(${EXE_NAME} supc++)
+
+ target_link_libraries(${EXE_NAME} --end-group)
+
+* hellocpp/src/main.cpp
+
+.. code-block:: c++
+
+ #include "HelloWorld.h"
+ #include <nuttx/config.h>
+
+ extern "C"
+ {
+ int hellocpp_main(void)
+ {
+
+ CHelloWorld *pHelloWorld = new CHelloWorld();
+ pHelloWorld->HelloWorld();
+
+ CHelloWorld helloWorld;
+ helloWorld.HelloWorld();
+
+ delete pHelloWorld;
+ return 0;
+ }
+ }
+
+* hellocpp/src/HelloWorld.h
+
+.. code-block:: c++
+
+ #ifndef HELLOWORLD_H_
+ #define HELLOWORLD_H_
+
+ #include "nuttx/config.h"
+
+ class CHelloWorld
+ {
+ public:
+ CHelloWorld();
+ ~CHelloWorld();
+ bool HelloWorld(void);
+ private:
+ int mSecret;
+ };
+
+ #endif
+
+* hellocpp/src/HelloWorld.cpp
+
+.. code-block:: c++
+
+ #include <cstdio>
+ #include <string>
+
+ #include "HelloWorld.h"
+
+ CHelloWorld::CHelloWorld() {
+ mSecret = 42;
+ std::printf("Constructor: mSecret=%d\n",mSecret);
+ }
+
+ CHelloWorld::~CHelloWorld() {
+
+ }
+
+ bool CHelloWorld::HelloWorld(void) {
+ std::printf("HelloWorld: mSecret=%d\n",mSecret);
+
+ std::string sentence = "Hello";
+ std::printf("TEST=%s\n",sentence.c_str());
+
+ if (mSecret == 42) {
+ std::printf("CHelloWorld: HelloWorld: Hello, world!\n");
+ return true;
+ }
+ else {
+ std::printf("CHelloWorld: HelloWorld: CONSTRUCTION FAILED!\n");
+ return false;
+ }
+ }
+
+Building
+--------
+
+To launch build, you use the cmake procedure:
+
+.. code-block:: console
+
+ $ mkdir build
+ $ cd build
+ $ cmake ..
+ $ make
+
+And finally a bin file will be created to be loaded on the board.
diff --git a/content/docs/latest/_sources/guides/index.rst.txt b/content/docs/latest/_sources/guides/index.rst.txt
index 60862a2..89ddc65 100644
--- a/content/docs/latest/_sources/guides/index.rst.txt
+++ b/content/docs/latest/_sources/guides/index.rst.txt
@@ -10,3 +10,4 @@ Guides
simulator.rst
drivers.rst
tasktrace.rst
+ cpp_cmake.rst
diff --git a/content/docs/latest/_sources/introduction/detailed_support.rst.txt b/content/docs/latest/_sources/introduction/detailed_support.rst.txt
index 71693b0..5285540 100644
--- a/content/docs/latest/_sources/introduction/detailed_support.rst.txt
+++ b/content/docs/latest/_sources/introduction/detailed_support.rst.txt
@@ -1808,6 +1808,11 @@ One board is supported in this family:
`README <https://github.com/apache/incubator-nuttx/blob/master/boards/arm/stm32/nucleo-g431rb/README.txt>`__
file for further information.
+- **B-G431B-ESC1**. Initial board support for the
+ B-G431B-ESC1 was added in NuttX-10.0. Refer to the NuttX board
+ `README <https://github.com/apache/incubator-nuttx/blob/master/boards/arm/stm32/b-g431b-esc1/README.txt>`__
+ file for further information.
+
STMicro STM32 L475
------------------
@@ -3020,25 +3025,6 @@ RISC-V
RISC-V Architectural Support. Basic support for the RISC-V architecture
was contributed by Ken Pettit in NuttX-7.19.
-NEXT RISC-V NR5Mxx
-------------------
-
-This support is for a custom NEXT RISC-V NR5Mxx (RV32IM). The initial release
-is *thin* but a great starting point for anyone interested in RISC-V development with
-NuttX.
-
-GreenWaves GAP8
----------------
-
-(RV32IM architecture)
-
-Basic support GreenWaves GAP8 *gapuino* board
-was added by hhuysqt in NuttX-7.27. The GAP8 is a 1+8-core DSP-like
-RISC-V MCU. The GAP8 features a RI5CY core called Fabric Controller(FC),
-and a cluster of 8 RI5CY cores that runs at a bit slower speed. The GAP8
-is an implementation of the opensource PULP platform, a
-Parallel-Ultra-Low-Power design.
-
`Sipeed Maix bit <#k210>`__
Initial support for the Sipeed Maix bit board was added in NuttX-9.0.
diff --git a/content/docs/latest/_sources/introduction/supported_platforms.rst.txt b/content/docs/latest/_sources/introduction/supported_platforms.rst.txt
index 544fcf4..04ef202 100644
--- a/content/docs/latest/_sources/introduction/supported_platforms.rst.txt
+++ b/content/docs/latest/_sources/introduction/supported_platforms.rst.txt
@@ -68,8 +68,6 @@ from board-to-board. Follow the links for the details:
-
- :ref:`introduction/detailed_support:RISC-V` (2)
- - :ref:`introduction/detailed_support:NEXT RISC-V NR5Mxx` (1)
- - :ref:`introduction/detailed_support:GreenWaves GAP8` (1)
- :ref:`introduction/detailed_support:LiteX on Arty A7` (1)
- Xtensa LX6:
@@ -107,10 +105,6 @@ MCU. Follow the links for the details:
- :ref:`introduction/detailed_support:Xtensa LX6 ESP32` (Dual Xtensa LX6)
- - GreenWaves
-
- - :ref:`introduction/detailed_support:Greenwaves GAP8` (RISC-V RV32IM)
-
- Host PC based simulations
- :ref:`introduction/detailed_support:Linux User Mode Simulation`
diff --git a/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt b/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt
new file mode 100644
index 0000000..2038f1e
--- /dev/null
+++ b/content/docs/latest/_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt
@@ -0,0 +1,52 @@
+=============
+ESP32 DevKitC
+=============
+
+The `ESP32 DevKitC <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/modules-and-boards.html#esp32-devkitc-v4>`_ is a development board for the ESP32 SoC from Espressif, based on a ESP-WROOM-32 module. You can find the original V2 version and the newer V4 variant. They are
+pin compatible.
+
+.. list-table::
+ :align: center
+
+ * - .. figure:: esp32-core-board-v2.jpg
+ :align: center
+
+ ESP32 DevKitC/Core V2
+
+ - .. figure:: esp32-devkitc-v4-front.jpg
+ :align: center
+
+ ESP32 DevKitC V4
+
+Features
+========
+
+ - ESP32 WROOM Module
+ - USB-to-UART bridge via micro USB port
+ - Power LED
+ - EN and BOOT buttons (BOOT accessible to user)
+ - SPI FLASH (size varies according to model
+
+Pin Mapping
+===========
+
+.. todo:: To be updated
+
+===== ========== ==========
+Pin Signal Notes
+===== ========== ==========
+? ? ?
+===== ========== ==========
+
+Configurations
+==============
+
+nsh
+---
+
+Basic NuttShell configuration (console enabled in UART0, exposed via USB connection, at 115200 bps).
+
+wapi
+----
+
+Enables WiFi support
diff --git a/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt b/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt
index c6ccd60..71d78d0 100644
--- a/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/xtensa/esp32/index.rst.txt
@@ -2,13 +2,77 @@
Espressif ESP32
===============
+ESP32 series of SoCs from Espressif are single and dual-core chips based on
+Xtensa architecture, with support for Bluetooth and WiFi.
+
Toolchain
=========
-OpenOCD
--------
+You can use the prebuilt `compiler <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#xtensa-esp32-elf>`__ for Xtensa architecture and `OpenOCD <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#openocd-esp32>`__ for ESP32 by Espressif. For flashing firmware, you will need to install ``esptool.py`` by running::
+
+ pip install esptool
+
+
+Flashing
+========
+
+Firmware for ESP32 is flashed via the USB/UART interface using the ``esptool.py`` tool. To flash your NuttX firmware simply run::
+
+ make download ESPTOOL_PORT=<port>
+
+where ``<port>`` is typically ``/dev/ttyUSB0`` or similar. You can change the baudrate by passing ``ESPTOOL_BAUD``.
+
+Bootloader and partitions
+-------------------------
+
+ESP32 requires a bootloader to be flashed as well as a set of FLASH partitions. This is only needed the first time
+(or any time you which to modify either of these). An easy way is to use prebuilt binaries for NuttX from `here <https://github.com/espressif/esp-nuttx-bootloader>`_. In there you will find instructions to rebuild these if necessary.
+Once you downloaded both binaries, you can flash them by adding an ``ESPTOOL_BINDIR`` parameter, pointing to the directiry where these binaries were downloaded::
+
+ make download ESPTOOL_PORT=<port> ESPTOOL_BINDIR=<dir>
+
+.. note:: It is recommended that if this is the first time you are using the board with NuttX that you perform a complete
+ SPI FLASH erase::
+
+ esptool.py erase_flash
Peripheral Support
==================
+.. todo:: To be updated
+
+========== ======= =====
+Peripheral Support NOTES
+========== ======= =====
+? ? ?
+========== ======= =====
+
+WiFi
+====
+
+A standard network interface will be configured and can be initialized such as::
+
+ ifup wlan0
+ wapi psk wlan0 mypasswd 1
+ wapi essid wlan0 myssid 1
+ renew wlan0
+
+In this case a connection to AP with SSID ``myssid`` is done, using ``mypasswd`` as
+password. IP address is obtained via DHCP using ``renew`` command. You can check
+the result by running ``ifconfig`` afterwards.
+
+.. tip:: Boards usually expose a ``wapi`` defconfig which enables WiFi
+
+Bluetooth
+=========
+
+Bluetooth is not currently supported.
+
+Supported Boards
+================
+
+.. toctree::
+ :glob:
+ :maxdepth: 1
+ boards/*/*
diff --git a/content/docs/latest/_sources/quickstart/organization.rst.txt b/content/docs/latest/_sources/quickstart/organization.rst.txt
index eecdc52..cc42bce 100644
--- a/content/docs/latest/_sources/quickstart/organization.rst.txt
+++ b/content/docs/latest/_sources/quickstart/organization.rst.txt
@@ -225,8 +225,6 @@ Current architecture/chip directories are summarized below:
- ``arch/renesas``: This directory is the home for various
Renesas architectures, currently only the M16C and vererable
SuperH-1 architectures.
-- ``arch/risc-v``: This directory supports the RISC-V NR5
- architecture.
- ``arch/xtensa``: This directory supports the Xtensa LX6
architecture as used by the ESP32.
- ``arch/z16f``: Zilog z16f Microcontroller.
diff --git a/content/docs/latest/_sources/reference/os/boardctl.rst.txt b/content/docs/latest/_sources/reference/os/boardctl.rst.txt
deleted file mode 100644
index d3b81f5..0000000
--- a/content/docs/latest/_sources/reference/os/boardctl.rst.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-====================================
-``boardctl()`` Application Interface
-====================================
-
-.. c:function:: int boardctl(unsigned int cmd, uintptr_t arg)
-
- In a small embedded system, there will typically be a much
- greater interaction between application and low-level board features.
- The canonically correct to implement such interactions is by
- implementing a character driver and performing the interactions
- via low level ioctl() calls. This, however, may not be practical
- in many cases and will lead to "correct" but awkward implementations.
-
- boardctl() is non-standard OS interface to alleviate the problem.
- It basically circumvents the normal device driver ioctl()
- interlace and allows the application to perform direct
- IOCTL-like calls to the board-specific logic. It is especially
- useful for setting up board operational and test configurations.
-
- NOTE: The other interfaces described in this document are internal
- OS interface. boardctl() is an application interface to the OS.
- There is no point, in fact, of using boardctl() within the OS;
- the board interfaces prototyped in include/nuttx/board.h may
- be called directly from within the OS.
-
- Application interfaces are described in the NuttX User Guide.
- This application interface interface is described here only
- because it is so non-standard and because it is so closely
- tied to board porting logic.
-
- :param cmd: Identifies the board command to be executed. See
- ``include/sys/boardctl.h`` for the complete list of common
- board commands. Provisions are made to support non-common,
- board-specific commands as well.
- :param arg: The argument that accompanies the command. The nature
- of the argument is determined by the specific command.
-
- :return: On success zero (OK) is returned; -1 (ERROR) is
- returned on failure with the errno variable set to indicate the nature of the failure.
-
diff --git a/content/docs/latest/_sources/reference/os/index.rst.txt b/content/docs/latest/_sources/reference/os/index.rst.txt
index 75f53ba..c3bfdf6 100644
--- a/content/docs/latest/_sources/reference/os/index.rst.txt
+++ b/content/docs/latest/_sources/reference/os/index.rst.txt
@@ -17,7 +17,6 @@ in other header files.
addrenv.rst
nuttx.rst
app_vs_os.rst
- boardctl.rst
smp.rst
shm.rst
paging.rst
diff --git a/content/docs/latest/_sources/reference/user/13_boardctl.rst.txt b/content/docs/latest/_sources/reference/user/13_boardctl.rst.txt
new file mode 100644
index 0000000..2e6a973
--- /dev/null
+++ b/content/docs/latest/_sources/reference/user/13_boardctl.rst.txt
@@ -0,0 +1,252 @@
+===========
+Board IOCTL
+===========
+
+In a small embedded system, there will typically be a much
+greater interaction between application and low-level board features.
+The canonically correct to implement such interactions is by
+implementing a character driver and performing the interactions
+via low level ``ioctl()`` calls. This, however, may not be practical
+in many cases and will lead to "correct" but awkward implementations.
+
+:c:func:`boardctl` is non-standard OS interface to alleviate the problem.
+It basically circumvents the normal device driver ``ioctl()``
+interface and allows the application to perform direct
+IOCTL-like calls to the board-specific logic. It is especially
+useful for setting up board operational and test configurations.
+
+:c:func:`boardctl` is an application interface to the OS.
+There is no point, in fact, of using :c:func:`boardctl` within the OS;
+the board interfaces prototyped in :file:`include/nuttx/board.h` may
+be called directly from within the OS.
+
+.. c:function:: int boardctl(unsigned int cmd, uintptr_t arg)
+
+ :param cmd: Identifies the board command to be executed. See
+ :file:`include/sys/boardctl.h` for the complete list of common
+ board commands. Provisions are made to support non-common,
+ board-specific commands as well.
+ :param arg: The argument that accompanies the command. The nature
+ of the argument is determined by the specific command.
+
+ :return: On success zero (OK) is returned; -1 (ERROR) is
+ returned on failure with the errno variable set to indicate the nature of the failure.
+
+Supported commands
+==================
+
+The following is the list of supported :c:func:`boardctl` commands.
+Besides this list, board logic can implement handling of custom commands by
+implementing the :c:func:`board_ioctl` interface.
+
+System state control
+--------------------
+
+.. c:macro:: BOARDIOC_INIT
+
+ Perform one-time application initialization.
+
+ :Argument: The argument is passed to the
+ :c:func:`board_app_initialize` implementation without modification.
+ The argument has no meaning to NuttX; the meaning of the
+ argument is a contract between the board-specific
+ initialization logic and the matching application logic.
+ The value could be such things as a mode enumeration value,
+ a set of DIP switch switch settings, a pointer to
+ configuration data read from a file or serial FLASH, or
+ whatever you would like to do with it. Every
+ implementation should accept zero/NULL as a default
+ configuration.
+
+ :Dependencies: Board logic must provide :c:func:`board_app_initialize`.
+
+.. c:macro:: BOARDIOC_POWEROFF
+
+ Power off the board
+
+ :Argument: Integer value providing power off status information
+
+ :configuration: CONFIG_BOARDCTL_POWEROFF
+
+ :dependencies: Board logic must provide the :c:func:`board_power_off` interface.
+
+.. c:macro:: BOARDIOC_RESET
+
+ Reset the board
+
+ :Argument: Integer value providing power off status information
+
+ :configuration: CONFIG_BOARDCTL_RESET
+
+ :dependencies: Board logic must provide the :c:func:`board_reset` interface.
+
+Power Management
+----------------
+
+.. c:macro:: BOARDIOC_PM_CONTROL
+
+ Manage power state transition and query. The supplied argument
+ indicates the specific PM operation to perform, which map to
+ corresponding internal ``pm_<operation>`` functions
+ (see :doc:`/components/power`).
+
+ With this interface you can interact with PM handling arch/board logic
+ (typically done in IDLE loop) or you can directly manage state transitions
+ from userspace.
+
+ :Argument: A pointer to an instance of :c:struct:`boardioc_pm_ctrl_s`.
+
+ :configuration: CONFIG_PM
+
+Board information
+-----------------
+
+.. c:macro:: BOARDIOC_UNIQUEID
+
+ Return a unique ID associated with the board (such as a
+ serial number or a MAC address).
+
+ :Argument: A writable array of size :c:macro:`CONFIG_BOARDCTL_UNIQUEID_SIZE` in
+ which to receive the board unique ID.
+
+ :dependencies: Board logic must provide the :c:func:`board_uniqueid` interface.
+
+Filesystems
+-----------
+
+.. c:macro:: BOARDIOC_MKRD
+
+ Create a RAM disk
+
+ :Argument: Pointer to read-only instance of :c:struct:`boardioc_mkrd_s`.
+
+ :configuration: CONFIG_BOARDCTL_MKRD
+
+.. c:macro:: BOARDIOC_ROMDISK
+
+ Register a ROM disk
+
+ :Argument: Pointer to read-only instance of :c:struct:`boardioc_romdisk_s`.
+
+ :configuration: CONFIG_BOARDCTL_ROMDISK
+
+Symbol Handling
+---------------
+
+.. c:macro:: BOARDIOC_APP_SYMTAB
+
+ Select the application symbol table. This symbol table
+ provides the symbol definitions exported to application
+ code from application space.
+
+ :Argument: A pointer to an instance of :c:struct:`boardioc_symtab_s`.
+
+ :configuration: CONFIG_BOARDCTL_APP_SYMTAB
+
+.. c:macro:: BOARDIOC_OS_SYMTAB
+
+ Select the OS symbol table. This symbol table provides
+ the symbol definitions exported by the OS to kernel
+ modules.
+
+ :Argument: A pointer to an instance of :c:struct:`boardioc_symtab_s`.
+
+ :configuration: CONFIG_BOARDCTL_OS_SYMTAB
+
+.. c:macro:: BOARDIOC_BUILTINS
+
+ Provide the user-space list of built-in applications for
+ use by BINFS in protected mode. Normally this is small
+ set of globals provided by user-space logic. It provides
+ name-value pairs for associating built-in application
+ names with user-space entry point addresses. These
+ globals are only needed for use by BINFS which executes
+ built-in applications from kernel-space in PROTECTED mode.
+ In the FLAT build, the user space globals are readily
+ available. (BINFS is not supportable in KERNEL mode since
+ user-space address have no general meaning that
+ configuration).
+
+ :Argument: A pointer to an instance of :c:struct:`boardioc_builtin_s`.
+
+ :configuration: This command is always available when
+ CONFIG_BUILTIN is enabled, but does nothing unless
+ CONFIG_BUILD_PROTECTED and CONFIG_FS_BINFS are also
+ selected.
+
+USB
+---
+
+.. c:macro:: BOARDIOC_USBDEV_CONTROL
+
+ Manage USB device classes
+
+ :Argument: A pointer to an instance of :c:struct:`boardioc_usbdev_ctrl_s`.
+
+ :configuration: CONFIG_LIB_BOARDCTL && CONFIG_BOARDCTL_USBDEVCTRL
+
+ :dependencies: Board logic must provide ``board_<usbdev>_initialize()`.
+
+Graphics
+--------
+
+.. c:macro:: BOARDIOC_NX_START
+
+ Start the NX server
+
+ :Argument: Integer display number to be served by this NXMU instance.
+
+ :configuration: CONFIG_NX
+
+ :dependencies: Base graphics logic provides :c:func:`nxmu_start`.
+
+.. c:macro:: BOARDIOC_VNC_START
+
+ Start the NX server and framebuffer driver.
+
+ :Argument: A reference readable instance of :c:struct:`boardioc_vncstart_s`.
+
+ :configuration: CONFIG_VNCSERVER
+
+ :dependencies: VNC server provides :c:func:`vnc_default_fbinitialize`.
+
+.. c:macro:: BOARDIOC_NXTERM
+
+ Create an NX terminal device
+
+ :Argument: A reference readable/writable instance of
+ :c:struct:`boardioc_nxterm_create_s`.
+
+ :configuration: CONFIG_NXTERM
+
+ :dependencies: Base NX terminal logic provides :c:func:`nx_register` and
+ :c:func:`nxtk_register`.
+
+.. c:macro:: BOARDIOC_NXTERM_IOCTL
+
+ Create an NX terminal IOCTL command. Normal IOCTLs
+ cannot be be performed in most graphics contexts since
+ the depend on the task holding an open file descriptor
+
+ :Argument: A reference readable/writable instance of
+ :c:struct:`boardioc_nxterm_ioctl_s`.
+
+ :configuration: CONFIG_NXTERM
+
+ :dependencies: Base NX terminal logic provides :c:func:`nxterm_ioctl_tap`.
+
+Testing
+-------
+
+.. c:macro:: BOARDIOC_TESTSET
+
+ Access architecture-specific up_testset() operation
+
+ :Argument: A pointer to a write-able spinlock object. On success
+ the preceding spinlock state is returned: 0=unlocked,
+ 1=locked.
+
+ :configuration: CONFIG_BOARDCTL_TESTSET
+
+ :dependencies: Architecture-specific logic provides :c:func:`up_testset`.
+
diff --git a/content/docs/latest/_sources/reference/user/13_logging.rst.txt b/content/docs/latest/_sources/reference/user/13_logging.rst.txt
new file mode 100644
index 0000000..ad73493
--- /dev/null
+++ b/content/docs/latest/_sources/reference/user/13_logging.rst.txt
@@ -0,0 +1,95 @@
+=======
+Logging
+=======
+
+NuttX provides the SYSLOG for application and OS logging, which can be
+configured in various ways to select how these messages are displayed
+(see details :doc:`here </components/drivers/special/syslog>`).
+
+Applications can emit logging messages using the standard :c:func:`syslog`
+interface.
+
+.. note:: The standard :c:func:`openlog` and :c:func:`closelog`
+ are not currently supported.
+
+.. c:function:: void syslog(int priority, const char *fmt, ...)
+
+ This interface allows to send messages to SYSLOG using standard
+ :c:func:`printf` formatting.
+
+ Each message sent to SYSLOG is assigned a priority. Depending
+ on system configuration this message may or not appear in the
+ output.
+
+ :param priority: A priority given by ``LOG_*`` family of
+ definitions.
+
+ :param fmt: The format string
+
+.. c:function:: void vsyslog(int priority, const char *fmt, va_list ap)
+
+ Performs the same task as :c:func:`syslog` with the
+ difference that it takes a set of arguments which have been obtained
+ using the :file:`include/stdarg.h` variable argument list macros.
+
+.. c:function:: int setlogmask(int mask)
+
+ Sets the logging mask which controls which messages appear on SYSLOG
+ output. :c:func:`setlogmask` is not a thread-safe, re-entrant function.
+ Concurrent use will have undefined behavior.
+
+ :param mask: The new mask to set.
+ See :c:macro:`LOG_MASK` and :c:macro:`LOG_UPTO`.
+ Per OpenGroup.org "If the maskpri argument is 0, the current log mask
+ is not modified." In this implementation, the value zero is permitted
+ in order to disable all syslog levels.
+
+ :returns: The previous mask.
+
+ .. warning:: Per POSIX the syslog mask should be a per-process value but in
+ NuttX, the scope of the mask is dependent on the nature of the build:
+
+ * Flat Build: There is one, global SYSLOG mask that controls all output.
+ * Protected Build: There are two SYSLOG masks. One within the kernel
+ that controls only kernel output. And one in user-space that controls
+ only user SYSLOG output.
+ * Kernel Build: The kernel build is compliant with the POSIX requirement:
+ There will be one mask for each user process, controlling the SYSLOG
+ output only form that process. There will be a separate mask
+ accessible only in the kernel code to control kernel SYSLOG output.
+
+Priority Levels
+===============
+
+The following levels are defined:
+
+================ ===========
+Priority (macro) Description
+================ ===========
+``LOG_EMERG`` System is unusable
+``LOG_ALERT`` Action must be taken immediately
+``LOG_CRIT`` Critical conditions
+``LOG_ERR`` Error conditions
+``LOG_WARNING`` Warning conditions
+``LOG_NOTICE`` Normal, but significant, condition
+``LOG_INFO`` Informational message
+``LOG_DEBUG`` Debug-level message
+================ ===========
+
+Priority mask
+=============
+
+The following macros can be used with :c:func:`setlogmask`:
+
+.. c:macro:: LOG_MASK(p)
+
+ Returns the logmask corresponding priority ``p``
+
+.. c:macro:: LOG_UPTO(p)
+
+ Returns the logmask of all SYSLOG priorities
+ up to and including ``p``.
+
+.. c:macro:: LOG_ALL
+
+ Mask corresponding to all priorities enabled
\ No newline at end of file
diff --git a/content/docs/latest/_static/custom.css b/content/docs/latest/_static/custom.css
index f525eeb..7d0464e 100644
--- a/content/docs/latest/_static/custom.css
+++ b/content/docs/latest/_static/custom.css
@@ -21,7 +21,7 @@
/* Make content wider */
.wy-nav-content {
- max-width: 1200px !important;
+ max-width: 1000px !important;
}
/* Make links inside C definitions more visible */
diff --git a/content/docs/latest/applications/nsh/installation.html b/content/docs/latest/applications/nsh/installation.html
index ab16c8a..e5cd2ba 100644
--- a/content/docs/latest/applications/nsh/installation.html
+++ b/content/docs/latest/applications/nsh/installation.html
@@ -259,8 +259,6 @@ also depends on:</p>
<div><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_DISABLE_MOUNTPOINT=n</span></code>. If mount point support is disabled,
then you cannot mount <em>any</em> file systems.</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_NFILE_DESCRIPTORS</span> <span class="pre">></span> <span class="pre">4</span></code>. Of course you have to have file
-descriptions to use any thing in the file system.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_FS_ROMFS</span></code> enabled. This option enables ROMFS file system
support.</p></li>
</ul>
diff --git a/content/docs/latest/applications/nsh/nsh.html b/content/docs/latest/applications/nsh/nsh.html
index a57e0cc..e208f54 100644
--- a/content/docs/latest/applications/nsh/nsh.html
+++ b/content/docs/latest/applications/nsh/nsh.html
@@ -524,7 +524,6 @@ also depends on:</p>
<blockquote>
<div><ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_DISABLE_MOUNTPOINT</span></code> not set</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_NFILE_DESCRIPTORS</span></code> > 4</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_FS_ROMFS</span></code> enabled</p></li>
</ul>
</div></blockquote>
diff --git a/content/docs/latest/components/binfmt.html b/content/docs/latest/components/binfmt.html
index e74940c..eed30bd 100644
--- a/content/docs/latest/components/binfmt.html
+++ b/content/docs/latest/components/binfmt.html
@@ -544,6 +544,10 @@ object. The binary loader will use the symbol table to look up the
symbol by its name and to provide the address associated with the symbol
as needed to perform the dynamic linking of the binary object to the
base FLASH code.</p>
+<p>Some toolchains will prefix symbols with an underscore. To support these
+toolchains the <code class="docutils literal notranslate"><span class="pre">CONFIG_SYMTAB_DECORATED</span></code> setting may be defined. This
+will cause a leading underscore to be ignored on <em>undefined</em> symbols
+during dynamic linking.</p>
<div class="section" id="symbol-table-header-files">
<h3>Symbol Table Header Files<a class="headerlink" href="#symbol-table-header-files" title="Permalink to this headline">¶</a></h3>
<p>The interface to the symbol table logic is described in the header file
@@ -584,21 +588,9 @@ fixed size arrays completely defined at compilation or link time.</p></li>
<dt id="c.symtab_findbyname">
FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<code class="sig-name descname">symtab_findbyname</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<em>symtab</em>, FAR <em class="property">const</em> char *<em>name</em>, int <em>nsyms</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.symtab_findbyname" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Find the symbol in the symbol table with the matching name.
-This version assumes that table is not ordered with respect to
-symbol name and, hence, access time will be linear with respect
-to <code class="docutils literal notranslate"><span class="pre">nsyms</span></code>.</p>
-<dl class="field-list simple">
-<dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>A reference to the symbol table entry if an entry with the matching name is found; NULL is returned if the entry is not found.</p>
-</dd>
-</dl>
-</dd></dl>
-
-<dl class="c function">
-<dt id="c.symtab_findorderedbyname">
-FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<code class="sig-name descname">symtab_findorderedbyname</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<em>symtab</em>, FAR <em class="property">const</em> char *<em>name</em>, int <em>nsyms</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.symtab_findorderedbyname" title="Permalink to this definition">¶</a><br /></dt>
-<dd><p>Find the symbol in the symbol table with the matching name.
-This version assumes that table ordered with respect to symbol name.</p>
+The implementation will be linear with respect to <code class="docutils literal notranslate"><span class="pre">nsyms</span></code> if
+<code class="docutils literal notranslate"><span class="pre">CONFIG_SYMTAB_ORDEREDBYNAME</span></code> is not selected, and logarithmic
+if it is.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>A reference to the symbol table entry if an entry with
@@ -612,12 +604,12 @@ the matching name is found; NULL is returned if the entry is not found.</p>
FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<code class="sig-name descname">symtab_findbyvalue</code><span class="sig-paren">(</span>FAR <em class="property">const</em> <em class="property">struct</em> symtab_s *<em>symtab</em>, FAR void *<em>value</em>, int <em>nsyms</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.symtab_findbyvalue" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Find the symbol in the symbol table whose value closest
(but not greater than), the provided value. This version assumes
-that table is not ordered with respect to symbol name and, hence,
+that table is not ordered with respect to symbol value and, hence,
access time will be linear with respect to <code class="docutils literal notranslate"><span class="pre">nsyms</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>A reference to the symbol table entry if an entry with the matching
-name is found; <code class="docutils literal notranslate"><span class="pre">NULL</span></code> is returned if the entry is not found.</p>
+value is found; <code class="docutils literal notranslate"><span class="pre">NULL</span></code> is returned if the entry is not found.</p>
</dd>
</dl>
</dd></dl>
@@ -632,6 +624,7 @@ name is found; <code class="docutils literal notranslate"><span class="pre">NULL
This logic may be suppressed be defining this setting.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_BINFMT_CONSTRUCTORS</span></code>: Build in support for C++ constructors in loaded modules.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_SYMTAB_ORDEREDBYNAME</span></code>: Symbol tables are order by name (rather than value).</p></li>
+<li><p><code class="docutils literal notranslate"><span class="pre">CONFIG_SYMTAB_DECORATED</span></code>: Symbols will have a leading underscore in object files.</p></li>
</ul>
</div></blockquote>
<p>Additional configuration options may be required for the each enabled
diff --git a/content/docs/latest/components/index.html b/content/docs/latest/components/index.html
index e5f7374..58d0ad7 100644
--- a/content/docs/latest/components/index.html
+++ b/content/docs/latest/components/index.html
@@ -63,7 +63,7 @@
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Power Management" href="power.html" />
- <link rel="prev" title="Espressif ESP32" href="../platforms/xtensa/esp32/index.html" />
+ <link rel="prev" title="ESP32 DevKitC" href="../platforms/xtensa/esp32/boards/esp32-devkitc/index.html" />
</head>
<body class="wy-body-for-nav">
@@ -270,7 +270,7 @@
<a href="power.html" class="btn btn-neutral float-right" title="Power Management" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
- <a href="../platforms/xtensa/esp32/index.html" class="btn btn-neutral float-left" title="Espressif ESP32" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+ <a href="../platforms/xtensa/esp32/boards/esp32-devkitc/index.html" class="btn btn-neutral float-left" title="ESP32 DevKitC" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
diff --git a/content/docs/latest/components/nxgraphics/nx.html b/content/docs/latest/components/nxgraphics/nx.html
index d302b9c..0cd391b 100644
--- a/content/docs/latest/components/nxgraphics/nx.html
+++ b/content/docs/latest/components/nxgraphics/nx.html
@@ -300,7 +300,7 @@ usually resides the the <code class="docutils literal notranslate"><span class="
board startup logic can run automatically during the early system if
<code class="docutils literal notranslate"><span class="pre">CONFIG_BOARD_LATE_INITIALIZE</span></code> is defined in the configuration. Or,
the board startup logic can execute under control of the application
-by calling <a class="reference internal" href="../../reference/os/boardctl.html#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> as:</p>
+by calling <a class="reference internal" href="../../reference/user/13_boardctl.html#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> as:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">boardctl</span><span class="p">(</span><span class="n">BOARDIOC_INIT</span><span class="p">,</span> <span class="n">arg</span><span class="p">)</span>
</pre></div>
</div>
@@ -308,7 +308,7 @@ by calling <a class="reference internal" href="../../reference/os/boardctl.html#
call to <code class="docutils literal notranslate"><span class="pre">nxmu_start()</span></code> will start the NX server.</p>
</li>
<li><p>The NX server may also be started later by the application via
-<a class="reference internal" href="../../reference/os/boardctl.html#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> as:</p>
+<a class="reference internal" href="../../reference/user/13_boardctl.html#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> as:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">boardctl</span><span class="p">(</span><span class="n">BOARDIOC_NX_START</span><span class="p">,</span> <span class="n">arg</span><span class="p">)</span>
</pre></div>
</div>
diff --git a/content/docs/latest/contributing/documentation.html b/content/docs/latest/contributing/documentation.html
index 0b187cc..d121578 100644
--- a/content/docs/latest/contributing/documentation.html
+++ b/content/docs/latest/contributing/documentation.html
@@ -135,7 +135,10 @@
<li class="toctree-l2"><a class="reference internal" href="making-changes.html">Making Changes Using Git</a></li>
<li class="toctree-l2"><a class="reference internal" href="coding_style.html">C Coding Standard</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Documentation</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="#building">Building</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#building">Building</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#live-rebuild">Live Rebuild</a></li>
+</ul>
+</li>
<li class="toctree-l3"><a class="reference internal" href="#contributing">Contributing</a></li>
<li class="toctree-l3"><a class="reference internal" href="#writing-restructure-text-with-sphinx">Writing ReStructure Text with Sphinx</a></li>
<li class="toctree-l3"><a class="reference internal" href="#documentation-conventions">Documentation Conventions</a><ul>
@@ -264,6 +267,20 @@ project <a class="reference external" href="https://github.com/pyenv/pyenv#insta
</div>
</div></blockquote>
</div></blockquote>
+<div class="section" id="live-rebuild">
+<h3>Live Rebuild<a class="headerlink" href="#live-rebuild" title="Permalink to this headline">¶</a></h3>
+<p>For more comfortable editing and previewing of changes (as <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">html</span></code> will perform a slower full rebuild),
+you can install <code class="docutils literal notranslate"><span class="pre">sphinx-autobuild</span></code> which will monitor file changes and rebuild only affected files. To
+install it (within the virtual environment):</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> pip3 install sphinx-autobuild
+</pre></div>
+</div>
+<p>To run:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> make autobuild
+</pre></div>
+</div>
+<p>Which will perform an initial clean build and monitor changes from then on.</p>
+</div>
</div>
<div class="section" id="contributing">
<h2>Contributing<a class="headerlink" href="#contributing" title="Permalink to this headline">¶</a></h2>
@@ -337,16 +354,9 @@ it is acceptable to use RST standard <cite>::</cite>. This is specially useful a
<div class="section" id="linking">
<h3>Linking<a class="headerlink" href="#linking" title="Permalink to this headline">¶</a></h3>
<p>To generate internal links, Sphinx’s <a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#ref-role">roles</a> should
-be used. So, use <code class="docutils literal notranslate"><span class="pre">:ref:</span></code> instead of standard RST syntax like <code class="docutils literal notranslate"><span class="pre">`link</span> <span class="pre"><target>`_</span></code> for internal links.</p>
-<p>Moreover, sphinx is configured to use <a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html#confval-autosectionlabel_prefix_document">autosectionlabel</a> extension. This means that sections will automatically get a label that can be linked with the
-<cite>:ref:</cite>. For example:</p>
-<div class="highlight-RST notranslate"><div class="highlight"><pre><span></span><span class="gh">This is a Section</span>
-<span class="gh">=================</span>
-
-<span class="na">:ref:</span><span class="nv">`This is a Section`</span> is a link to this very same section.
-</pre></div>
-</div>
-<p>If the target is in a different file, you can refer it with: <code class="docutils literal notranslate"><span class="pre">:ref:`link</span> <span class="pre">text</span> <span class="pre"></pathtorst:Section</span> <span class="pre">Name>`</span></code>.</p>
+be used. So, use <code class="docutils literal notranslate"><span class="pre">:ref:</span></code> instead of standard RST syntax like <code class="docutils literal notranslate"><span class="pre">`link</span> <span class="pre"><target>`_</span></code> for internal links.
+If the target is in a different file, you can refer it with: <code class="docutils literal notranslate"><span class="pre">:ref:`link</span> <span class="pre">text</span> <span class="pre"></pathtorst:Section</span> <span class="pre">Name>`</span></code>.</p>
+<p>Linking to a specific document can be done with <code class="docutils literal notranslate"><span class="pre">:doc:`/path/to/document`</span></code> (without <code class="docutils literal notranslate"><span class="pre">.rst</span></code> extension).</p>
</div>
<div class="section" id="notes-and-todos">
<h3>Notes and TODOS<a class="headerlink" href="#notes-and-todos" title="Permalink to this headline">¶</a></h3>
diff --git a/content/docs/latest/contributing/index.html b/content/docs/latest/contributing/index.html
index 2e344f2..8c23c3a 100644
--- a/content/docs/latest/contributing/index.html
+++ b/content/docs/latest/contributing/index.html
@@ -63,7 +63,7 @@
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Development Workflow" href="workflow.html" />
- <link rel="prev" title="Task Trace Internals" href="../guides/tasktraceinternal.html" />
+ <link rel="prev" title="C++ Example using CMake" href="../guides/cpp_cmake.html" />
</head>
<body class="wy-body-for-nav">
@@ -248,7 +248,7 @@ and documentation (the one you are reading now):</p>
<a href="workflow.html" class="btn btn-neutral float-right" title="Development Workflow" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
- <a href="../guides/tasktraceinternal.html" class="btn btn-neutral float-left" title="Task Trace Internals" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+ <a href="../guides/cpp_cmake.html" class="btn btn-neutral float-left" title="C++ Example using CMake" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
diff --git a/content/docs/latest/genindex.html b/content/docs/latest/genindex.html
index 270b57b..05d2c50 100644
--- a/content/docs/latest/genindex.html
+++ b/content/docs/latest/genindex.html
@@ -287,8 +287,6 @@
</li>
<li><a href="glossary.html#term-BLE"><strong>BLE</strong></a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/os/led.html#c.board_autoled_initialize">board_autoled_initialize (C function)</a>
</li>
<li><a href="reference/os/led.html#c.board_autoled_off">board_autoled_off (C function)</a>
@@ -299,7 +297,41 @@
</li>
<li><a href="reference/os/board.html#c.board_late_initialize">board_late_initialize (C function)</a>
</li>
- <li><a href="reference/os/boardctl.html#c.boardctl">boardctl (C function)</a>
+ <li><a href="reference/user/13_boardctl.html#c.boardctl">boardctl (C function)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_APP_SYMTAB">BOARDIOC_APP_SYMTAB (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_BUILTINS">BOARDIOC_BUILTINS (C macro)</a>
+</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_INIT">BOARDIOC_INIT (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_MKRD">BOARDIOC_MKRD (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_NX_START">BOARDIOC_NX_START (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_NXTERM">BOARDIOC_NXTERM (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_NXTERM_IOCTL">BOARDIOC_NXTERM_IOCTL (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_OS_SYMTAB">BOARDIOC_OS_SYMTAB (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_PM_CONTROL">BOARDIOC_PM_CONTROL (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_POWEROFF">BOARDIOC_POWEROFF (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_RESET">BOARDIOC_RESET (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_ROMDISK">BOARDIOC_ROMDISK (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_TESTSET">BOARDIOC_TESTSET (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_UNIQUEID">BOARDIOC_UNIQUEID (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_USBDEV_CONTROL">BOARDIOC_USBDEV_CONTROL (C macro)</a>
+</li>
+ <li><a href="reference/user/13_boardctl.html#c.BOARDIOC_VNC_START">BOARDIOC_VNC_START (C macro)</a>
</li>
<li><a href="glossary.html#term-BPP"><strong>BPP</strong></a>
</li>
@@ -577,12 +609,18 @@
</li>
<li><a href="components/binfmt.html#c.load_module">load_module (C function)</a>
</li>
- </ul></td>
- <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/user/06_clocks_timers.html#c.localtime">localtime (C function)</a>
</li>
+ </ul></td>
+ <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference/user/06_clocks_timers.html#c.localtime_r">localtime_r (C function)</a>
</li>
+ <li><a href="reference/user/13_logging.html#c.LOG_ALL">LOG_ALL (C macro)</a>
+</li>
+ <li><a href="reference/user/13_logging.html#c.LOG_MASK">LOG_MASK (C macro)</a>
+</li>
+ <li><a href="reference/user/13_logging.html#c.LOG_UPTO">LOG_UPTO (C macro)</a>
+</li>
<li><a href="glossary.html#term-LP"><strong>LP</strong></a>
</li>
<li><a href="reference/os/wqueue.html#c.lpwork_boostpriority">lpwork_boostpriority (C function)</a>
@@ -1341,14 +1379,16 @@
</li>
<li><a href="reference/user/09_env_vars.html#c.setenv">setenv (C function)</a>
</li>
+ <li><a href="reference/user/13_logging.html#c.setlogmask">setlogmask (C function)</a>
+</li>
<li><a href="reference/user/11_network.html#c.setsockopt">setsockopt (C function)</a>
</li>
<li><a href="components/drivers/character/timer.html#c.settimeout">settimeout (C function)</a>
</li>
- <li><a href="reference/user/12_shared_memory.html#c.shmat">shmat (C function)</a>
-</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
+ <li><a href="reference/user/12_shared_memory.html#c.shmat">shmat (C function)</a>
+</li>
<li><a href="reference/user/12_shared_memory.html#c.shmctl">shmctl (C function)</a>
</li>
<li><a href="reference/user/12_shared_memory.html#c.shmdt">shmdt (C function)</a>
@@ -1427,10 +1467,10 @@
</li>
<li><a href="components/binfmt.html#c.symtab_findbyvalue">symtab_findbyvalue (C function)</a>
</li>
- <li><a href="components/binfmt.html#c.symtab_findorderedbyname">symtab_findorderedbyname (C function)</a>
-</li>
<li><a href="glossary.html#term-SYSLOG"><strong>SYSLOG</strong></a>
</li>
+ <li><a href="reference/user/13_logging.html#c.syslog">syslog (C function)</a>
+</li>
<li><a href="components/drivers/special/syslog.html#c.syslog_channel">syslog_channel (C function)</a>
</li>
<li><a href="components/drivers/special/syslog.html#c.syslog_file_channel">syslog_file_channel (C function)</a>
@@ -1641,6 +1681,8 @@
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="glossary.html#term-VNC"><strong>VNC</strong></a>
</li>
+ <li><a href="reference/user/13_logging.html#c.vsyslog">vsyslog (C function)</a>
+</li>
</ul></td>
</tr></table>
diff --git a/content/docs/latest/guides/cpp_cmake.html b/content/docs/latest/guides/cpp_cmake.html
new file mode 100644
index 0000000..96d8013
--- /dev/null
+++ b/content/docs/latest/guides/cpp_cmake.html
@@ -0,0 +1,539 @@
+<!--
+ 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="viewport" content="width=device-width, initial-scale=1.0">
+
+ <title>C++ Example using CMake — NuttX latest documentation</title>
+
+
+
+ <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
+ <link rel="stylesheet" href="../_static/sphinx_tabs/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 type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
+ <script src="../_static/jquery.js"></script>
+ <script src="../_static/underscore.js"></script>
+ <script src="../_static/doctools.js"></script>
+ <script src="../_static/language_data.js"></script>
+
+ <script type="text/javascript" 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="Contributing" href="../contributing/index.html" />
+ <link rel="prev" title="Task Trace Internals" href="tasktraceinternal.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
+
+
+
+
+ <img src="../_static/NuttX.png" class="logo" alt="Logo"/>
+
+ </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>
+
+ </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" />
+ <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="main navigation">
+
+
+
+
+
+
+ <p class="caption"><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="../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="../reference/index.html">API Reference</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Guides</a><ul class="current">
+<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="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="drivers.html">Drivers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">C++ Example using CMake</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#preparation">Preparation</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#creating-the-project">Creating the project</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#building">Building</a></li>
+</ul>
+</li>
+</ul>
+</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="../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="top navigation">
+
+ <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="breadcrumbs navigation">
+
+ <ul class="wy-breadcrumbs">
+
+ <li><a href="../index.html" class="icon icon-home"></a> »</li>
+
+ <li><a href="index.html">Guides</a> »</li>
+
+ <li>C++ Example using CMake</li>
+
+
+ <li class="wy-breadcrumbs-aside">
+
+
+ <a href="../_sources/guides/cpp_cmake.rst.txt" rel="nofollow"> View page source</a>
+
+
+ </li>
+
+ </ul>
+
+
+ <hr/>
+</div>
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+ <div itemprop="articleBody">
+
+ <div class="section" id="c-example-using-cmake">
+<span id="cpp-cmake"></span><h1>C++ Example using CMake<a class="headerlink" href="#c-example-using-cmake" title="Permalink to this headline">¶</a></h1>
+<p>In some situations, developers intend to implement software using the NuttX platform in
+a previously set hardware and configuration where it is not possible or allowed to make
+changes. In such situations, less contact with the operating source tree is better, where
+it is only used for the application.</p>
+<p>Some approaches are possible to do that today:</p>
+<ul class="simple">
+<li><p><a class="reference external" href="https://cwiki.apache.org/confluence/display/NUTTX/Building+NuttX+with+Applications+Outside+of+the+Source+Tree">https://cwiki.apache.org/confluence/display/NUTTX/Building+NuttX+with+Applications+Outside+of+the+Source+Tree</a></p></li>
+<li><p><a class="reference external" href="https://www.programmersought.com/article/61604062421/">https://www.programmersought.com/article/61604062421/</a></p></li>
+</ul>
+<p>We have been seen the increase of the use of C++ language in embedded systems application. And
+CMake (<a class="reference external" href="https://www.cmake.org">https://www.cmake.org</a>) is the preferred build system used to build C++ projects. NuttX
+support C++ based projects.</p>
+<p>Using the ‘build as a library’ procedure of NuttX, it is possible to build NuttX
+applications using C++ language and also the cmake build tool.</p>
+<p>This document will show how to reimplement the hellocpp project using this cmake.</p>
+<div class="section" id="preparation">
+<h2>Preparation<a class="headerlink" href="#preparation" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic">
+<li><p>Base NuttX compilation changes</p>
+<blockquote>
+<div><p>For this example, load the configuration ‘stm32f4discovery:testlibcxx’ for building</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> <span class="nb">cd</span> nuttx
+<span class="gp">$</span> ./tools/configure.sh stm32f4discovery:testlibcxx
+</pre></div>
+</div>
+<p>In menuconfig, the main points to be changed on a typical NuttX configuration are the following:</p>
+<ul class="simple">
+<li><p>Set RTOS Features -> Tasks and Scheduling -> Application entry point to ‘hellocpp_main’</p></li>
+<li><p>Build NuttX and generate the export</p></li>
+</ul>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> make <span class="nb">export</span>
+</pre></div>
+</div>
+</div></blockquote>
+</li>
+</ol>
+</div>
+<div class="section" id="creating-the-project">
+<h2>Creating the project<a class="headerlink" href="#creating-the-project" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic">
+<li><p>Create your project file structure</p>
+<blockquote>
+<div><p>The project structure is organized as follow:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">hellocpp/</span>
+<span class="go">hellocpp/CMakeLists.txt</span>
+<span class="go">hellocpp/cmake/stm32f4discovery.cmake</span>
+<span class="go">hellocpp/nuttx-export-10.0.1/</span>
+<span class="go">hellocpp/src/CMakeLists.txt</span>
+<span class="go">hellocpp/src/main.cpp</span>
+<span class="go">hellocpp/src/HelloWorld.h</span>
+<span class="go">hellocpp/src/HelloWorld.cpp</span>
+</pre></div>
+</div>
+<p>The directory ‘nuttx-export-10.0.1’ is the unzipped content from the file created during
+make export procedure done before.</p>
+</div></blockquote>
+</li>
+<li><p>File contents</p></li>
+</ol>
+<ul class="simple">
+<li><p>hellocpp/CMakeLists.txt</p></li>
+</ul>
+<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">cmake_minimum_required</span><span class="p">(</span><span class="s">VERSION</span> <span class="s">3.2...3.15</span><span class="p">)</span>
+
+<span class="nb">project</span><span class="p">(</span><span class="s">HelloCpp</span>
+ <span class="s">VERSION</span> <span class="s">1.0</span>
+ <span class="s">DESCRIPTION</span> <span class="s2">"Hello world C++ Nuttx"</span>
+<span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_STANDARD</span> <span class="s">17</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_STANDARD_REQUIRED</span> <span class="s">ON</span><span class="p">)</span>
+<span class="c"># set(CMAKE_CXX_EXTENSIONS OFF)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_C_STANDARD</span> <span class="s">99</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">NUTTX_PATH</span> <span class="s2">"${CMAKE_SOURCE_DIR}/nuttx-export-10.0.1"</span><span class="p">)</span>
+
+<span class="nb">include</span><span class="p">(</span><span class="s">cmake/stm32f4discovery.cmake</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span> <span class="s2">"${AC_COMMON_FLAGS} -fno-builtin -Wall -Wshadow -Wundef -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer -Os"</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span> <span class="s2">"${AC_COMMON_FLAGS} -D_DEBUG -D_LIBCPP_BUILD_STATIC -D_LIBCPP_NO_EXCEPTIONS "</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span> <span class="s2">"${AC_COMMON_FLAGS} -fno-exceptions -fcheck-new -fno-rtti -pedantic "</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span> <span class="s2">"${AC_COMMON_FLAGS} -nostdinc++"</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_DEFINES</span> <span class="s2">"${AC_DEFINES} -DCONFIG_WCHAR_BUILTIN"</span><span class="p">)</span>
+
+<span class="nb">include_directories</span><span class="p">(</span>
+ <span class="s">src</span>
+ <span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/include</span>
+ <span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/include/libcxx</span>
+ <span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/arch/chip</span>
+<span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">EXE_NAME</span> <span class="s">hellocpp</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_FLAGS</span> <span class="s2">"${AC_HW_FLAGS} ${AC_DEFINES} ${AC_COMMON_FLAGS} ${AC_CXX_EXTRA_FLAGS}"</span><span class="p">)</span>
+<span class="nb">if</span> <span class="p">(</span><span class="s">PARAM_DEBUG</span><span class="p">)</span>
+ <span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_FLAGS</span> <span class="s2">"${CMAKE_CXX_FLAGS} -g"</span><span class="p">)</span>
+<span class="nb">endif</span><span class="p">()</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SKIP_RPATH</span> <span class="s">ON</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_LINK_EXECUTABLE</span> <span class="s2">"${CMAKE_LINKER} ${AC_LINKER_FLAGS} -o ${EXE_NAME}.elf <OBJECTS> <LINK_LIBRARIES>"</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">BUILD_SHARED_LIBS</span> <span class="s">OFF</span><span class="p">)</span>
+
+<span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">src</span><span class="p">)</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li><p>hellocpp/cmake/stm32f4discovery.cmake</p></li>
+</ul>
+<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SYSTEM_NAME</span> <span class="s">Generic</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SYSTEM_PROCESSOR</span> <span class="s">arm</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">MCU_LINKER_SCRIPT</span> <span class="s2">"${NUTTX_PATH}/scripts/ld.script"</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">COMPILER_PREFIX</span> <span class="s">arm-none-eabi-</span><span class="p">)</span>
+
+<span class="c"># cmake-format: off</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_C_COMPILER</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">gcc</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_COMPILER</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">g++</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_AR</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">ar</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_RANLIB</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">ranlib</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_LINKER</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">ld</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_ASM_COMPILER</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">gcc</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_OBJCOPY</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">objcopy</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_OBJDUMP</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">objdump</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SIZE</span> <span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">size</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_PROGRAM</span> <span class="s">NEVER</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_LIBRARY</span> <span class="s">ONLY</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</span> <span class="s">ONLY</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</span> <span class="s">ONLY</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_TRY_COMPILE_TARGET_TYPE</span> <span class="s">STATIC_LIBRARY</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_HW_FLAGS</span> <span class="s2">"-mcpu=cortex-m4 -mthumb -mfloat-abi=soft "</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_HW_FLAGS</span> <span class="s2">"${AC_HW_FLAGS} -isystem ${NUTTX_PATH}/include"</span><span class="p">)</span>
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_HW_FLAGS</span> <span class="s2">"${AC_HW_FLAGS} -pipe -D__NuttX__"</span><span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">AC_LINKER_FLAGS</span> <span class="s2">"--entry=__start -nostartfiles -nodefaultlibs -T${MCU_LINKER_SCRIPT}"</span><span class="p">)</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li><p>hellocpp/src/CMakeLists.txt</p></li>
+</ul>
+<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="s">HEADER_FILES</span>
+ <span class="s">HelloWorld.h</span>
+<span class="p">)</span>
+
+<span class="nb">set</span><span class="p">(</span><span class="s">SOURCE_FILES</span>
+ <span class="s">HelloWorld.cpp</span>
+<span class="p">)</span>
+
+<span class="nb">link_directories</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/libs</span><span class="p">)</span>
+
+<span class="nb">add_executable</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="o">${</span><span class="nv">SOURCE_FILES</span><span class="o">}</span> <span class="s">main.cpp</span> <span class="o">${</span><span class="nv">HEADER_FILES</span><span class="o">}</span><span class="p">)</span>
+
+<span class="nb">add_custom_command</span><span class="p">(</span>
+ <span class="s">TARGET</span> <span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span>
+ <span class="s">POST_BUILD</span>
+ <span class="s">COMMAND</span> <span class="o">${</span><span class="nv">CMAKE_OBJCOPY</span><span class="o">}</span> <span class="s">ARGS</span> <span class="s">-S</span> <span class="s">-O</span> <span class="s">binary</span> <span class="o">${</span><span class="nv">CMAKE_BINARY_DIR</span><span class="o">}</span><span class="s">/</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="s">.elf</span> <span class="o">${</span><span cla [...]
+<span class="p">)</span>
+
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">--start-group</span><span class="p">)</span>
+
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">sched</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">drivers</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">boards</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">c</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">mm</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">arch</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">xx</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">apps</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">fs</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">binfmt</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">board</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">gcc</span><span class="p">)</span>
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">supc++</span><span class="p">)</span>
+
+<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="s">--end-group</span><span class="p">)</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li><p>hellocpp/src/main.cpp</p></li>
+</ul>
+<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">"HelloWorld.h"</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf"><nuttx/config.h></span><span class="cp"></span>
+
+<span class="k">extern</span> <span class="s">"C"</span>
+<span class="p">{</span>
+ <span class="kt">int</span> <span class="nf">hellocpp_main</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
+ <span class="p">{</span>
+
+ <span class="n">CHelloWorld</span> <span class="o">*</span><span class="n">pHelloWorld</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CHelloWorld</span><span class="p">();</span>
+ <span class="n">pHelloWorld</span><span class="o">-></span><span class="n">HelloWorld</span><span class="p">();</span>
+
+ <span class="n">CHelloWorld</span> <span class="n">helloWorld</span><span class="p">;</span>
+ <span class="n">helloWorld</span><span class="p">.</span><span class="n">HelloWorld</span><span class="p">();</span>
+
+ <span class="k">delete</span> <span class="n">pHelloWorld</span><span class="p">;</span>
+ <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li><p>hellocpp/src/HelloWorld.h</p></li>
+</ul>
+<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#ifndef HELLOWORLD_H_</span>
+<span class="cp">#define HELLOWORLD_H_</span>
+
+<span class="cp">#include</span> <span class="cpf">"nuttx/config.h"</span><span class="cp"></span>
+
+<span class="k">class</span> <span class="nc">CHelloWorld</span>
+<span class="p">{</span>
+ <span class="k">public</span><span class="o">:</span>
+ <span class="n">CHelloWorld</span><span class="p">();</span>
+ <span class="o">~</span><span class="n">CHelloWorld</span><span class="p">();</span>
+ <span class="kt">bool</span> <span class="nf">HelloWorld</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span>
+ <span class="k">private</span><span class="o">:</span>
+ <span class="kt">int</span> <span class="n">mSecret</span><span class="p">;</span>
+<span class="p">};</span>
+
+<span class="cp">#endif</span>
+</pre></div>
+</div>
+<ul class="simple">
+<li><p>hellocpp/src/HelloWorld.cpp</p></li>
+</ul>
+<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf"><cstdio></span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf"><string></span><span class="cp"></span>
+
+<span class="cp">#include</span> <span class="cpf">"HelloWorld.h"</span><span class="cp"></span>
+
+<span class="n">CHelloWorld</span><span class="o">::</span><span class="n">CHelloWorld</span><span class="p">()</span> <span class="p">{</span>
+ <span class="n">mSecret</span> <span class="o">=</span> <span class="mi">42</span><span class="p">;</span>
+ <span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"Constructor: mSecret=%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">mSecret</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="n">CHelloWorld</span><span class="o">::~</span><span class="n">CHelloWorld</span><span class="p">()</span> <span class="p">{</span>
+
+<span class="p">}</span>
+
+<span class="kt">bool</span> <span class="n">CHelloWorld</span><span class="o">::</span><span class="n">HelloWorld</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"HelloWorld: mSecret=%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">mSecret</span><span class="p">);</span>
+
+ <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">sentence</span> <span class="o">=</span> <span class="s">"Hello"</span><span class="p">;</span>
+ <span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"TEST=%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">sentence</span><span class="p">.</span><span class="n">c_str</span><span class="p">());</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n">mSecret</span> <span class="o">==</span> <span class="mi">42</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"CHelloWorld: HelloWorld: Hello, world!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="k">return</span> <span class="nb">true</span><span class="p">;</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="p">{</span>
+ <span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"CHelloWorld: HelloWorld: CONSTRUCTION FAILED!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="k">return</span> <span class="nb">false</span><span class="p">;</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="building">
+<h2>Building<a class="headerlink" href="#building" title="Permalink to this headline">¶</a></h2>
+<p>To launch build, you use the cmake procedure:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> mkdir build
+<span class="gp">$</span> <span class="nb">cd</span> build
+<span class="gp">$</span> cmake ..
+<span class="gp">$</span> make
+</pre></div>
+</div>
+<p>And finally a bin file will be created to be loaded on the board.</p>
+</div>
+</div>
+
+
+ </div>
+
+ </div>
+ <footer>
+
+ <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+
+ <a href="../contributing/index.html" class="btn btn-neutral float-right" title="Contributing" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+
+
+ <a href="tasktraceinternal.html" class="btn btn-neutral float-left" title="Task Trace Internals" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+
+ </div>
+
+
+ <hr/>
+
+ <div role="contentinfo">
+ <p>
+
+ © Copyright 2020, The Apache Software Foundation
+
+ </p>
+ </div>
+
+</footer>
+
+ </div>
+ </div>
+
+ </section>
+
+ </div>
+
+
+ <script type="text/javascript">
+ jQuery(function () {
+ SphinxRtdTheme.Navigation.enable(true);
+ });
+ </script>
+
+
+
+
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/content/docs/latest/guides/drivers.html b/content/docs/latest/guides/drivers.html
index b1c228b..950146a 100644
--- a/content/docs/latest/guides/drivers.html
+++ b/content/docs/latest/guides/drivers.html
@@ -142,6 +142,7 @@
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
diff --git a/content/docs/latest/guides/index.html b/content/docs/latest/guides/index.html
index 6caf180..5f48b4d 100644
--- a/content/docs/latest/guides/index.html
+++ b/content/docs/latest/guides/index.html
@@ -135,6 +135,7 @@
<li class="toctree-l2"><a class="reference internal" href="simulator.html">Simulator</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="tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
@@ -280,6 +281,12 @@
</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>
</ul>
</div>
</div>
diff --git a/content/docs/latest/guides/nfs.html b/content/docs/latest/guides/nfs.html
index 6e4ccee..01cc02e 100644
--- a/content/docs/latest/guides/nfs.html
+++ b/content/docs/latest/guides/nfs.html
@@ -141,6 +141,7 @@
<li class="toctree-l2"><a class="reference internal" href="simulator.html">Simulator</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="tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
diff --git a/content/docs/latest/guides/simulator.html b/content/docs/latest/guides/simulator.html
index 6f41560..549f85a 100644
--- a/content/docs/latest/guides/simulator.html
+++ b/content/docs/latest/guides/simulator.html
@@ -141,6 +141,7 @@
</li>
<li class="toctree-l2"><a class="reference internal" href="drivers.html">Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
diff --git a/content/docs/latest/guides/tasktrace.html b/content/docs/latest/guides/tasktrace.html
index 4141522..8a61e1b 100644
--- a/content/docs/latest/guides/tasktrace.html
+++ b/content/docs/latest/guides/tasktrace.html
@@ -139,6 +139,7 @@
<li class="toctree-l3"><a class="reference internal" href="tasktraceinternal.html">Task Trace Internals</a></li>
</ul>
</li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
diff --git a/content/docs/latest/guides/tasktraceinternal.html b/content/docs/latest/guides/tasktraceinternal.html
index 8cd53bf..088a49e 100644
--- a/content/docs/latest/guides/tasktraceinternal.html
+++ b/content/docs/latest/guides/tasktraceinternal.html
@@ -62,7 +62,7 @@
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
- <link rel="next" title="Contributing" href="../contributing/index.html" />
+ <link rel="next" title="C++ Example using CMake" href="cpp_cmake.html" />
<link rel="prev" title="Task Trace User Guide" href="tasktraceuser.html" />
</head>
@@ -154,6 +154,7 @@
</li>
</ul>
</li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
@@ -330,7 +331,7 @@ The wrapper calls the system call hooks before and after calling the real system
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
- <a href="../contributing/index.html" class="btn btn-neutral float-right" title="Contributing" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+ <a href="cpp_cmake.html" class="btn btn-neutral float-right" title="C++ Example using CMake" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="tasktraceuser.html" class="btn btn-neutral float-left" title="Task Trace User Guide" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
diff --git a/content/docs/latest/guides/tasktraceuser.html b/content/docs/latest/guides/tasktraceuser.html
index 051b1c4..39558cc 100644
--- a/content/docs/latest/guides/tasktraceuser.html
+++ b/content/docs/latest/guides/tasktraceuser.html
@@ -160,6 +160,7 @@
<li class="toctree-l3"><a class="reference internal" href="tasktraceinternal.html">Task Trace Internals</a></li>
</ul>
</li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
diff --git a/content/docs/latest/guides/usbtrace.html b/content/docs/latest/guides/usbtrace.html
index a8fa5f5..b73bd2b 100644
--- a/content/docs/latest/guides/usbtrace.html
+++ b/content/docs/latest/guides/usbtrace.html
@@ -135,6 +135,7 @@
<li class="toctree-l2"><a class="reference internal" href="simulator.html">Simulator</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="tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a></li>
diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html
index 3885bb9..84c59b4 100644
--- a/content/docs/latest/index.html
+++ b/content/docs/latest/index.html
@@ -210,7 +210,7 @@ by following these <a class="reference internal" href="contributing/documentatio
<div class="section" id="nuttx-documentation">
<h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
<p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 11 March 21 at 00:46</p>
+<p>Last Updated: 30 March 21 at 12:18</p>
<div class="toctree-wrapper compound">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
@@ -277,6 +277,7 @@ by following these <a class="reference internal" href="contributing/documentatio
<li class="toctree-l2"><a class="reference internal" href="guides/simulator.html">Simulator</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/drivers.html">Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="guides/tasktrace.html">Task Trace</a></li>
+<li class="toctree-l2"><a class="reference internal" href="guides/cpp_cmake.html">C++ Example using CMake</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contributing/index.html">Contributing</a><ul>
diff --git a/content/docs/latest/introduction/detailed_support.html b/content/docs/latest/introduction/detailed_support.html
index ef74acc..70705b1 100644
--- a/content/docs/latest/introduction/detailed_support.html
+++ b/content/docs/latest/introduction/detailed_support.html
@@ -298,8 +298,6 @@
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#risc-v">RISC-V</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="#next-risc-v-nr5mxx">NEXT RISC-V NR5Mxx</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#greenwaves-gap8">GreenWaves GAP8</a></li>
<li class="toctree-l4"><a class="reference internal" href="#litex-on-arty-a7">LiteX on ARTY A7</a></li>
</ul>
</li>
@@ -2016,6 +2014,10 @@ prompt on this board.</p>
Nucleo-G431RB was added in NuttX-10.0. Refer to the NuttX board
<a class="reference external" href="https://github.com/apache/incubator-nuttx/blob/master/boards/arm/stm32/nucleo-g431rb/README.txt">README</a>
file for further information.</p></li>
+<li><p><strong>B-G431B-ESC1</strong>. Initial board support for the
+B-G431B-ESC1 was added in NuttX-10.0. Refer to the NuttX board
+<a class="reference external" href="https://github.com/apache/incubator-nuttx/blob/master/boards/arm/stm32/b-g431b-esc1/README.txt">README</a>
+file for further information.</p></li>
</ul>
</div>
<div class="section" id="stmicro-stm32-l475">
@@ -3100,24 +3102,8 @@ release:</p>
<h2>RISC-V<a class="headerlink" href="#risc-v" title="Permalink to this headline">¶</a></h2>
<p>RISC-V Architectural Support. Basic support for the RISC-V architecture
was contributed by Ken Pettit in NuttX-7.19.</p>
-<div class="section" id="next-risc-v-nr5mxx">
-<h3>NEXT RISC-V NR5Mxx<a class="headerlink" href="#next-risc-v-nr5mxx" title="Permalink to this headline">¶</a></h3>
-<p>This support is for a custom NEXT RISC-V NR5Mxx (RV32IM). The initial release
-is <em>thin</em> but a great starting point for anyone interested in RISC-V development with
-NuttX.</p>
-</div>
-<div class="section" id="greenwaves-gap8">
-<h3>GreenWaves GAP8<a class="headerlink" href="#greenwaves-gap8" title="Permalink to this headline">¶</a></h3>
-<p>(RV32IM architecture)</p>
-<p>Basic support GreenWaves GAP8 <em>gapuino</em> board
-was added by hhuysqt in NuttX-7.27. The GAP8 is a 1+8-core DSP-like
-RISC-V MCU. The GAP8 features a RI5CY core called Fabric Controller(FC),
-and a cluster of 8 RI5CY cores that runs at a bit slower speed. The GAP8
-is an implementation of the opensource PULP platform, a
-Parallel-Ultra-Low-Power design.</p>
<p><a class="reference external" href="#k210">Sipeed Maix bit</a></p>
<p>Initial support for the Sipeed Maix bit board was added in NuttX-9.0.</p>
-</div>
<div class="section" id="litex-on-arty-a7">
<h3>LiteX on ARTY A7<a class="headerlink" href="#litex-on-arty-a7" title="Permalink to this headline">¶</a></h3>
<p>Support for the Digilent ARTY_A7 board along with CPU VexRiscV SOC were
diff --git a/content/docs/latest/introduction/supported_platforms.html b/content/docs/latest/introduction/supported_platforms.html
index 54a724a..8acaa85 100644
--- a/content/docs/latest/introduction/supported_platforms.html
+++ b/content/docs/latest/introduction/supported_platforms.html
@@ -286,8 +286,6 @@ from board-to-board. Follow the links for the details:</p>
<td><ul class="simple">
<li><p><a class="reference internal" href="detailed_support.html#risc-v"><span class="std std-ref">RISC-V</span></a> (2)</p>
<ul>
-<li><p><a class="reference internal" href="detailed_support.html#next-risc-v-nr5mxx"><span class="std std-ref">NEXT RISC-V NR5Mxx</span></a> (1)</p></li>
-<li><p><a class="reference internal" href="detailed_support.html#greenwaves-gap8"><span class="std std-ref">GreenWaves GAP8</span></a> (1)</p></li>
<li><p><a class="reference internal" href="detailed_support.html#litex-on-arty-a7"><span class="std std-ref">LiteX on ARTY A7</span></a> (1)</p></li>
</ul>
</li>
@@ -337,11 +335,6 @@ MCU. Follow the links for the details:</p>
<li><p><a class="reference internal" href="detailed_support.html#xtensa-lx6-esp32"><span class="std std-ref">Xtensa LX6 ESP32</span></a> (Dual Xtensa LX6)</p></li>
</ul>
</li>
-<li><p>GreenWaves</p>
-<ul>
-<li><p><a class="reference internal" href="detailed_support.html#greenwaves-gap8"><span class="std std-ref">GreenWaves GAP8</span></a> (RISC-V RV32IM)</p></li>
-</ul>
-</li>
<li><p>Host PC based simulations</p>
<ul>
<li><p><a class="reference internal" href="detailed_support.html#linux-user-mode-simulation"><span class="std std-ref">Linux User Mode Simulation</span></a></p></li>
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index 0e57fe9..eaf658c 100644
Binary files a/content/docs/latest/objects.inv and b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/platforms/index.html b/content/docs/latest/platforms/index.html
index 2bef082..b6ba1f9 100644
--- a/content/docs/latest/platforms/index.html
+++ b/content/docs/latest/platforms/index.html
@@ -221,7 +221,10 @@ series and boards supported in NuttX:</p>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="xtensa/index.html">Xtensa</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="xtensa/esp32/index.html">Espressif ESP32</a></li>
+<li class="toctree-l2"><a class="reference internal" href="xtensa/esp32/index.html">Espressif ESP32</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="xtensa/esp32/boards/esp32-devkitc/index.html">ESP32 DevKitC</a></li>
+</ul>
+</li>
</ul>
</li>
</ul>
diff --git a/content/docs/latest/platforms/xtensa/esp32/boards/esp32-devkitc/index.html b/content/docs/latest/platforms/xtensa/esp32/boards/esp32-devkitc/index.html
new file mode 100644
index 0000000..9bb421f
--- /dev/null
+++ b/content/docs/latest/platforms/xtensa/esp32/boards/esp32-devkitc/index.html
@@ -0,0 +1,347 @@
+<!--
+ 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="viewport" content="width=device-width, initial-scale=1.0">
+
+ <title>ESP32 DevKitC — NuttX latest documentation</title>
+
+
+
+ <link rel="stylesheet" href="../../../../../_static/css/theme.css" type="text/css" />
+ <link rel="stylesheet" href="../../../../../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../../../../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../../../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../../../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../../../../_static/sphinx_tabs/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 type="text/javascript" id="documentation_options" data-url_root="../../../../../" src="../../../../../_static/documentation_options.js"></script>
+ <script src="../../../../../_static/jquery.js"></script>
+ <script src="../../../../../_static/underscore.js"></script>
+ <script src="../../../../../_static/doctools.js"></script>
+ <script src="../../../../../_static/language_data.js"></script>
+
+ <script type="text/javascript" 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="OS Components" href="../../../../../components/index.html" />
+ <link rel="prev" title="Espressif ESP32" href="../../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
+
+
+
+
+ <img src="../../../../../_static/NuttX.png" class="logo" alt="Logo"/>
+
+ </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>
+
+ </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" />
+ <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="main navigation">
+
+
+
+
+
+
+ <p class="caption"><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="../../../../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../../../../index.html">Supported Platforms</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../../../../arm/index.html">ARM</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../risc-v/index.html">RISC-V</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="../../../index.html">Xtensa</a><ul class="current">
+<li class="toctree-l3 current"><a class="reference internal" href="../../index.html">Espressif ESP32</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal" href="../../index.html#toolchain">Toolchain</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../index.html#flashing">Flashing</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../index.html#peripheral-support">Peripheral Support</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../index.html#wifi">WiFi</a></li>
+<li class="toctree-l4"><a class="reference internal" href="../../index.html#bluetooth">Bluetooth</a></li>
+<li class="toctree-l4 current"><a class="reference internal" href="../../index.html#supported-boards">Supported Boards</a><ul class="current">
+<li class="toctree-l5 current"><a class="current reference internal" href="#">ESP32 DevKitC</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</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="../../../../../reference/index.html">API Reference</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="../../../../../contributing/index.html">Contributing</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="top navigation">
+
+ <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="breadcrumbs navigation">
+
+ <ul class="wy-breadcrumbs">
+
+ <li><a href="../../../../../index.html" class="icon icon-home"></a> »</li>
+
+ <li><a href="../../../../index.html">Supported Platforms</a> »</li>
+
+ <li><a href="../../../index.html">Xtensa</a> »</li>
+
+ <li><a href="../../index.html">Espressif ESP32</a> »</li>
+
+ <li>ESP32 DevKitC</li>
+
+
+ <li class="wy-breadcrumbs-aside">
+
+
+ <a href="../../../../../_sources/platforms/xtensa/esp32/boards/esp32-devkitc/index.rst.txt" rel="nofollow"> View page source</a>
+
+
+ </li>
+
+ </ul>
+
+
+ <hr/>
+</div>
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+ <div itemprop="articleBody">
+
+ <div class="section" id="esp32-devkitc">
+<h1>ESP32 DevKitC<a class="headerlink" href="#esp32-devkitc" title="Permalink to this headline">¶</a></h1>
+<p>The <a class="reference external" href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/modules-and-boards.html#esp32-devkitc-v4">ESP32 DevKitC</a> is a development board for the ESP32 SoC from Espressif, based on a ESP-WROOM-32 module. You can find the original V2 version and the newer V4 variant. They are
+pin compatible.</p>
+<table class="docutils align-center">
+<colgroup>
+<col style="width: 50%" />
+<col style="width: 50%" />
+</colgroup>
+<tbody>
+<tr class="row-odd"><td><div class="figure align-center" id="id3">
+<img alt="../../../../../_images/esp32-core-board-v2.jpg" src="../../../../../_images/esp32-core-board-v2.jpg" />
+<p class="caption"><span class="caption-text">ESP32 DevKitC/Core V2</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p>
+</div>
+</td>
+<td><div class="figure align-center" id="id4">
+<img alt="../../../../../_images/esp32-devkitc-v4-front.jpg" src="../../../../../_images/esp32-devkitc-v4-front.jpg" />
+<p class="caption"><span class="caption-text">ESP32 DevKitC V4</span><a class="headerlink" href="#id4" title="Permalink to this image">¶</a></p>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<div class="section" id="features">
+<h2>Features<a class="headerlink" href="#features" title="Permalink to this headline">¶</a></h2>
+<blockquote>
+<div><ul class="simple">
+<li><p>ESP32 WROOM Module</p></li>
+<li><p>USB-to-UART bridge via micro USB port</p></li>
+<li><p>Power LED</p></li>
+<li><p>EN and BOOT buttons (BOOT accessible to user)</p></li>
+<li><p>SPI FLASH (size varies according to model</p></li>
+</ul>
+</div></blockquote>
+</div>
+<div class="section" id="pin-mapping">
+<h2>Pin Mapping<a class="headerlink" href="#pin-mapping" title="Permalink to this headline">¶</a></h2>
+<div class="admonition-todo admonition" id="id2">
+<p class="admonition-title">Todo</p>
+<p>To be updated</p>
+</div>
+<table class="docutils align-default">
+<colgroup>
+<col style="width: 20%" />
+<col style="width: 40%" />
+<col style="width: 40%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Pin</p></th>
+<th class="head"><p>Signal</p></th>
+<th class="head"><p>Notes</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>?</p></td>
+<td><p>?</p></td>
+<td><p>?</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="configurations">
+<h2>Configurations<a class="headerlink" href="#configurations" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="nsh">
+<h3>nsh<a class="headerlink" href="#nsh" title="Permalink to this headline">¶</a></h3>
+<p>Basic NuttShell configuration (console enabled in UART0, exposed via USB connection, at 115200 bps).</p>
+</div>
+<div class="section" id="wapi">
+<h3>wapi<a class="headerlink" href="#wapi" title="Permalink to this headline">¶</a></h3>
+<p>Enables WiFi support</p>
+</div>
+</div>
+</div>
+
+
+ </div>
+
+ </div>
+ <footer>
+
+ <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+
+ <a href="../../../../../components/index.html" class="btn btn-neutral float-right" title="OS Components" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+
+
+ <a href="../../index.html" class="btn btn-neutral float-left" title="Espressif ESP32" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+
+ </div>
+
+
+ <hr/>
+
+ <div role="contentinfo">
+ <p>
+
+ © Copyright 2020, The Apache Software Foundation
+
+ </p>
+ </div>
+
+</footer>
+
+ </div>
+ </div>
+
+ </section>
+
+ </div>
+
+
+ <script type="text/javascript">
+ jQuery(function () {
+ SphinxRtdTheme.Navigation.enable(true);
+ });
+ </script>
+
+
+
+
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/content/docs/latest/platforms/xtensa/esp32/index.html b/content/docs/latest/platforms/xtensa/esp32/index.html
index c712e32..8c82b1a 100644
--- a/content/docs/latest/platforms/xtensa/esp32/index.html
+++ b/content/docs/latest/platforms/xtensa/esp32/index.html
@@ -62,7 +62,7 @@
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
- <link rel="next" title="OS Components" href="../../../components/index.html" />
+ <link rel="next" title="ESP32 DevKitC" href="boards/esp32-devkitc/index.html" />
<link rel="prev" title="Xtensa" href="../index.html" />
</head>
@@ -130,11 +130,18 @@
<li class="toctree-l2"><a class="reference internal" href="../../risc-v/index.html">RISC-V</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../index.html">Xtensa</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">Espressif ESP32</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="#toolchain">Toolchain</a><ul>
-<li class="toctree-l5"><a class="reference internal" href="#openocd">OpenOCD</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#toolchain">Toolchain</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#flashing">Flashing</a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#bootloader-and-partitions">Bootloader and partitions</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="#peripheral-support">Peripheral Support</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#wifi">WiFi</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#bluetooth">Bluetooth</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#supported-boards">Supported Boards</a><ul>
+<li class="toctree-l5"><a class="reference internal" href="boards/esp32-devkitc/index.html">ESP32 DevKitC</a></li>
+</ul>
+</li>
</ul>
</li>
</ul>
@@ -218,14 +225,94 @@
<div class="section" id="espressif-esp32">
<h1>Espressif ESP32<a class="headerlink" href="#espressif-esp32" title="Permalink to this headline">¶</a></h1>
+<p>ESP32 series of SoCs from Espressif are single and dual-core chips based on
+Xtensa architecture, with support for Bluetooth and WiFi.</p>
<div class="section" id="toolchain">
<h2>Toolchain<a class="headerlink" href="#toolchain" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="openocd">
-<h3>OpenOCD<a class="headerlink" href="#openocd" title="Permalink to this headline">¶</a></h3>
+<p>You can use the prebuilt <a class="reference external" href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#xtensa-esp32-elf">compiler</a> for Xtensa architecture and <a class="reference external" href="https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-tools.html#openocd-esp32">OpenOCD</a> for ESP32 by Espressif. For flashing firmware, you will need to install <code class="docutils literal notranslate"><span c [...]
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>pip install esptool
+</pre></div>
+</div>
+</div>
+<div class="section" id="flashing">
+<h2>Flashing<a class="headerlink" href="#flashing" title="Permalink to this headline">¶</a></h2>
+<p>Firmware for ESP32 is flashed via the USB/UART interface using the <code class="docutils literal notranslate"><span class="pre">esptool.py</span></code> tool. To flash your NuttX firmware simply run:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>make download ESPTOOL_PORT=<port>
+</pre></div>
+</div>
+<p>where <code class="docutils literal notranslate"><span class="pre"><port></span></code> is typically <code class="docutils literal notranslate"><span class="pre">/dev/ttyUSB0</span></code> or similar. You can change the baudrate by passing <code class="docutils literal notranslate"><span class="pre">ESPTOOL_BAUD</span></code>.</p>
+<div class="section" id="bootloader-and-partitions">
+<h3>Bootloader and partitions<a class="headerlink" href="#bootloader-and-partitions" title="Permalink to this headline">¶</a></h3>
+<p>ESP32 requires a bootloader to be flashed as well as a set of FLASH partitions. This is only needed the first time
+(or any time you which to modify either of these). An easy way is to use prebuilt binaries for NuttX from <a class="reference external" href="https://github.com/espressif/esp-nuttx-bootloader">here</a>. In there you will find instructions to rebuild these if necessary.
+Once you downloaded both binaries, you can flash them by adding an <code class="docutils literal notranslate"><span class="pre">ESPTOOL_BINDIR</span></code> parameter, pointing to the directiry where these binaries were downloaded:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>make download ESPTOOL_PORT=<port> ESPTOOL_BINDIR=<dir>
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>It is recommended that if this is the first time you are using the board with NuttX that you perform a complete
+SPI FLASH erase:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>esptool.py erase_flash
+</pre></div>
+</div>
+</div>
</div>
</div>
<div class="section" id="peripheral-support">
<h2>Peripheral Support<a class="headerlink" href="#peripheral-support" title="Permalink to this headline">¶</a></h2>
+<div class="admonition-todo admonition" id="id1">
+<p class="admonition-title">Todo</p>
+<p>To be updated</p>
+</div>
+<table class="docutils align-default">
+<colgroup>
+<col style="width: 45%" />
+<col style="width: 32%" />
+<col style="width: 23%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Peripheral</p></th>
+<th class="head"><p>Support</p></th>
+<th class="head"><p>NOTES</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p>?</p></td>
+<td><p>?</p></td>
+<td><p>?</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="wifi">
+<h2>WiFi<a class="headerlink" href="#wifi" title="Permalink to this headline">¶</a></h2>
+<p>A standard network interface will be configured and can be initialized such as:</p>
+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>ifup wlan0
+wapi psk wlan0 mypasswd 1
+wapi essid wlan0 myssid 1
+renew wlan0
+</pre></div>
+</div>
+<p>In this case a connection to AP with SSID <code class="docutils literal notranslate"><span class="pre">myssid</span></code> is done, using <code class="docutils literal notranslate"><span class="pre">mypasswd</span></code> as
+password. IP address is obtained via DHCP using <code class="docutils literal notranslate"><span class="pre">renew</span></code> command. You can check
+the result by running <code class="docutils literal notranslate"><span class="pre">ifconfig</span></code> afterwards.</p>
+<div class="admonition tip">
+<p class="admonition-title">Tip</p>
+<p>Boards usually expose a <code class="docutils literal notranslate"><span class="pre">wapi</span></code> defconfig which enables WiFi</p>
+</div>
+</div>
+<div class="section" id="bluetooth">
+<h2>Bluetooth<a class="headerlink" href="#bluetooth" title="Permalink to this headline">¶</a></h2>
+<p>Bluetooth is not currently supported.</p>
+</div>
+<div class="section" id="supported-boards">
+<h2>Supported Boards<a class="headerlink" href="#supported-boards" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="boards/esp32-devkitc/index.html">ESP32 DevKitC</a></li>
+</ul>
+</div>
</div>
</div>
@@ -237,7 +324,7 @@
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
- <a href="../../../components/index.html" class="btn btn-neutral float-right" title="OS Components" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+ <a href="boards/esp32-devkitc/index.html" class="btn btn-neutral float-right" title="ESP32 DevKitC" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="../index.html" class="btn btn-neutral float-left" title="Xtensa" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
diff --git a/content/docs/latest/quickstart/organization.html b/content/docs/latest/quickstart/organization.html
index ac9d6b6..d88e444 100644
--- a/content/docs/latest/quickstart/organization.html
+++ b/content/docs/latest/quickstart/organization.html
@@ -448,8 +448,6 @@ architecture.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">arch/renesas</span></code>: This directory is the home for various
Renesas architectures, currently only the M16C and vererable
SuperH-1 architectures.</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">arch/risc-v</span></code>: This directory supports the RISC-V NR5
-architecture.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">arch/xtensa</span></code>: This directory supports the Xtensa LX6
architecture as used by the ESP32.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">arch/z16f</span></code>: Zilog z16f Microcontroller.</p></li>
diff --git a/content/docs/latest/reference/os/addrenv.html b/content/docs/latest/reference/os/addrenv.html
index ed7844f..fdb6142 100644
--- a/content/docs/latest/reference/os/addrenv.html
+++ b/content/docs/latest/reference/os/addrenv.html
@@ -139,7 +139,6 @@
<li class="toctree-l3 current"><a class="current reference internal" href="#">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/app_vs_os.html b/content/docs/latest/reference/os/app_vs_os.html
index 25fe401..28fdb1c 100644
--- a/content/docs/latest/reference/os/app_vs_os.html
+++ b/content/docs/latest/reference/os/app_vs_os.html
@@ -62,7 +62,7 @@
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
- <link rel="next" title="boardctl() Application Interface" href="boardctl.html" />
+ <link rel="next" title="Symmetric Multiprocessing (SMP) Application" href="smp.html" />
<link rel="prev" title="APIs Exported by NuttX to Architecture-Specific Logic" href="nuttx.html" />
</head>
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
@@ -326,7 +325,7 @@ OS interfaces for sockets).</p></li>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
- <a href="boardctl.html" class="btn btn-neutral float-right" title="boardctl() Application Interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+ <a href="smp.html" class="btn btn-neutral float-right" title="Symmetric Multiprocessing (SMP) Application" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="nuttx.html" class="btn btn-neutral float-left" title="APIs Exported by NuttX to Architecture-Specific Logic" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
diff --git a/content/docs/latest/reference/os/arch.html b/content/docs/latest/reference/os/arch.html
index 6c94229..8e02594 100644
--- a/content/docs/latest/reference/os/arch.html
+++ b/content/docs/latest/reference/os/arch.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/board.html b/content/docs/latest/reference/os/board.html
index 430d8b9..617a258 100644
--- a/content/docs/latest/reference/os/board.html
+++ b/content/docs/latest/reference/os/board.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/boardctl.html b/content/docs/latest/reference/os/boardctl.html
deleted file mode 100644
index 227b028..0000000
--- a/content/docs/latest/reference/os/boardctl.html
+++ /dev/null
@@ -1,317 +0,0 @@
-<!--
- 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="viewport" content="width=device-width, initial-scale=1.0">
-
- <title>boardctl() Application Interface — NuttX latest documentation</title>
-
-
-
- <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
- <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
- <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
- <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
- <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
- <link rel="stylesheet" href="../../_static/sphinx_tabs/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 type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
- <script src="../../_static/jquery.js"></script>
- <script src="../../_static/underscore.js"></script>
- <script src="../../_static/doctools.js"></script>
- <script src="../../_static/language_data.js"></script>
-
- <script type="text/javascript" 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="Symmetric Multiprocessing (SMP) Application" href="smp.html" />
- <link rel="prev" title="Application OS vs. Internal OS Interfaces" href="app_vs_os.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
-
-
-
-
- <img src="../../_static/NuttX.png" class="logo" alt="Logo"/>
-
- </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>
-
- </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" />
- <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="main navigation">
-
-
-
-
-
-
- <p class="caption"><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="../../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 current"><a class="reference internal" href="../index.html">API Reference</a><ul class="current">
-<li class="toctree-l2"><a class="reference internal" href="../user/index.html">Userspace API</a></li>
-<li class="toctree-l2 current"><a class="reference internal" href="index.html">Architecture APIs</a><ul class="current">
-<li class="toctree-l3"><a class="reference internal" href="conventions.html">Naming and Header File Conventions</a></li>
-<li class="toctree-l3"><a class="reference internal" href="arch.html">APIs Exported by Architecture-Specific Logic to NuttX</a></li>
-<li class="toctree-l3"><a class="reference internal" href="board.html">APIs Exported by Board-Specific Logic to NuttX</a></li>
-<li class="toctree-l3"><a class="reference internal" href="time_clock.html">System Time and Clock</a></li>
-<li class="toctree-l3"><a class="reference internal" href="wqueue.html">Work Queues</a></li>
-<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
-<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
-<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
-<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
-<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
-<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
-<li class="toctree-l3"><a class="reference internal" href="led.html">LED Support</a></li>
-<li class="toctree-l3"><a class="reference internal" href="iob.html">I/O Buffer Management</a></li>
-</ul>
-</li>
-</ul>
-</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="../../contributing/index.html">Contributing</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="top navigation">
-
- <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="breadcrumbs navigation">
-
- <ul class="wy-breadcrumbs">
-
- <li><a href="../../index.html" class="icon icon-home"></a> »</li>
-
- <li><a href="../index.html">API Reference</a> »</li>
-
- <li><a href="index.html">Architecture APIs</a> »</li>
-
- <li><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</li>
-
-
- <li class="wy-breadcrumbs-aside">
-
-
- <a href="../../_sources/reference/os/boardctl.rst.txt" rel="nofollow"> View page source</a>
-
-
- </li>
-
- </ul>
-
-
- <hr/>
-</div>
- <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
- <div itemprop="articleBody">
-
- <div class="section" id="boardctl-application-interface">
-<h1><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface<a class="headerlink" href="#boardctl-application-interface" title="Permalink to this headline">¶</a></h1>
-<dl class="c function">
-<dt id="c.boardctl">
-int <code class="sig-name descname">boardctl</code><span class="sig-paren">(</span>unsigned int <em>cmd</em>, uintptr_t <em>arg</em><span class="sig-paren">)</span><a class="headerlink" href="#c.boardctl" title="Permalink to this definition">¶</a><br /></dt>
-<dd><p>In a small embedded system, there will typically be a much
-greater interaction between application and low-level board features.
-The canonically correct to implement such interactions is by
-implementing a character driver and performing the interactions
-via low level ioctl() calls. This, however, may not be practical
-in many cases and will lead to “correct” but awkward implementations.</p>
-<p>boardctl() is non-standard OS interface to alleviate the problem.
-It basically circumvents the normal device driver ioctl()
-interlace and allows the application to perform direct
-IOCTL-like calls to the board-specific logic. It is especially
-useful for setting up board operational and test configurations.</p>
-<p>NOTE: The other interfaces described in this document are internal
-OS interface. boardctl() is an application interface to the OS.
-There is no point, in fact, of using boardctl() within the OS;
-the board interfaces prototyped in include/nuttx/board.h may
-be called directly from within the OS.</p>
-<p>Application interfaces are described in the NuttX User Guide.
-This application interface interface is described here only
-because it is so non-standard and because it is so closely
-tied to board porting logic.</p>
-<dl class="field-list simple">
-<dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><ul class="simple">
-<li><p><strong>cmd</strong> – Identifies the board command to be executed. See
-<code class="docutils literal notranslate"><span class="pre">include/sys/boardctl.h</span></code> for the complete list of common
-board commands. Provisions are made to support non-common,
-board-specific commands as well.</p></li>
-<li><p><strong>arg</strong> – The argument that accompanies the command. The nature
-of the argument is determined by the specific command.</p></li>
-</ul>
-</dd>
-<dt class="field-even">Returns</dt>
-<dd class="field-even"><p>On success zero (OK) is returned; -1 (ERROR) is
-returned on failure with the errno variable set to indicate the nature of the failure.</p>
-</dd>
-</dl>
-</dd></dl>
-
-</div>
-
-
- </div>
-
- </div>
- <footer>
-
- <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-
- <a href="smp.html" class="btn btn-neutral float-right" title="Symmetric Multiprocessing (SMP) Application" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
-
-
- <a href="app_vs_os.html" class="btn btn-neutral float-left" title="Application OS vs. Internal OS Interfaces" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
-
- </div>
-
-
- <hr/>
-
- <div role="contentinfo">
- <p>
-
- © Copyright 2020, The Apache Software Foundation
-
- </p>
- </div>
-
-</footer>
-
- </div>
- </div>
-
- </section>
-
- </div>
-
-
- <script type="text/javascript">
- jQuery(function () {
- SphinxRtdTheme.Navigation.enable(true);
- });
- </script>
-
-
-
-
-
-
-</body>
-</html>
\ No newline at end of file
diff --git a/content/docs/latest/reference/os/conventions.html b/content/docs/latest/reference/os/conventions.html
index 1951320..d23a1cc 100644
--- a/content/docs/latest/reference/os/conventions.html
+++ b/content/docs/latest/reference/os/conventions.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/index.html b/content/docs/latest/reference/os/index.html
index bbcd759..56d9b6f 100644
--- a/content/docs/latest/reference/os/index.html
+++ b/content/docs/latest/reference/os/index.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
@@ -265,7 +264,6 @@ in other header files.</p>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l1"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l1"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l1"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l1"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/iob.html b/content/docs/latest/reference/os/iob.html
index c9b1dd4..5f95625 100644
--- a/content/docs/latest/reference/os/iob.html
+++ b/content/docs/latest/reference/os/iob.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/led.html b/content/docs/latest/reference/os/led.html
index bdbf2b6..f3afe21 100644
--- a/content/docs/latest/reference/os/led.html
+++ b/content/docs/latest/reference/os/led.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/nuttx.html b/content/docs/latest/reference/os/nuttx.html
index a011e82..33e3dd4 100644
--- a/content/docs/latest/reference/os/nuttx.html
+++ b/content/docs/latest/reference/os/nuttx.html
@@ -142,7 +142,6 @@
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/paging.html b/content/docs/latest/reference/os/paging.html
index 22b617d..0189d78 100644
--- a/content/docs/latest/reference/os/paging.html
+++ b/content/docs/latest/reference/os/paging.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/shm.html b/content/docs/latest/reference/os/shm.html
index 800bb51..dcb0810 100644
--- a/content/docs/latest/reference/os/shm.html
+++ b/content/docs/latest/reference/os/shm.html
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/smp.html b/content/docs/latest/reference/os/smp.html
index c0d8bd4..20ed6ae 100644
--- a/content/docs/latest/reference/os/smp.html
+++ b/content/docs/latest/reference/os/smp.html
@@ -63,7 +63,7 @@
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Shared Memory" href="shm.html" />
- <link rel="prev" title="boardctl() Application Interface" href="boardctl.html" />
+ <link rel="prev" title="Application OS vs. Internal OS Interfaces" href="app_vs_os.html" />
</head>
<body class="wy-body-for-nav">
@@ -139,7 +139,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
@@ -361,7 +360,7 @@ the index of the currently executing CPU.</p></li>
<a href="shm.html" class="btn btn-neutral float-right" title="Shared Memory" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
- <a href="boardctl.html" class="btn btn-neutral float-left" title="boardctl() Application Interface" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+ <a href="app_vs_os.html" class="btn btn-neutral float-left" title="Application OS vs. Internal OS Interfaces" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
diff --git a/content/docs/latest/reference/os/time_clock.html b/content/docs/latest/reference/os/time_clock.html
index 350be55..0ca5259 100644
--- a/content/docs/latest/reference/os/time_clock.html
+++ b/content/docs/latest/reference/os/time_clock.html
@@ -151,7 +151,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/os/wqueue.html b/content/docs/latest/reference/os/wqueue.html
index faad6e3..91485d2 100644
--- a/content/docs/latest/reference/os/wqueue.html
+++ b/content/docs/latest/reference/os/wqueue.html
@@ -153,7 +153,6 @@
<li class="toctree-l3"><a class="reference internal" href="addrenv.html">Address Environments</a></li>
<li class="toctree-l3"><a class="reference internal" href="nuttx.html">APIs Exported by NuttX to Architecture-Specific Logic</a></li>
<li class="toctree-l3"><a class="reference internal" href="app_vs_os.html">Application OS vs. Internal OS Interfaces</a></li>
-<li class="toctree-l3"><a class="reference internal" href="boardctl.html"><code class="docutils literal notranslate"><span class="pre">boardctl()</span></code> Application Interface</a></li>
<li class="toctree-l3"><a class="reference internal" href="smp.html">Symmetric Multiprocessing (SMP) Application</a></li>
<li class="toctree-l3"><a class="reference internal" href="shm.html">Shared Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="paging.html">On-Demand Paging</a></li>
diff --git a/content/docs/latest/reference/user/01_task_control.html b/content/docs/latest/reference/user/01_task_control.html
index b9838a6..02f9e93 100644
--- a/content/docs/latest/reference/user/01_task_control.html
+++ b/content/docs/latest/reference/user/01_task_control.html
@@ -145,6 +145,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/02_task_scheduling.html b/content/docs/latest/reference/user/02_task_scheduling.html
index 08608ff..11a43b4 100644
--- a/content/docs/latest/reference/user/02_task_scheduling.html
+++ b/content/docs/latest/reference/user/02_task_scheduling.html
@@ -145,6 +145,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/03_task_control.html b/content/docs/latest/reference/user/03_task_control.html
index f938427..62116d5 100644
--- a/content/docs/latest/reference/user/03_task_control.html
+++ b/content/docs/latest/reference/user/03_task_control.html
@@ -146,6 +146,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/04_message_queue.html b/content/docs/latest/reference/user/04_message_queue.html
index 52575d7..156f43c 100644
--- a/content/docs/latest/reference/user/04_message_queue.html
+++ b/content/docs/latest/reference/user/04_message_queue.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/05_counting_semaphore.html b/content/docs/latest/reference/user/05_counting_semaphore.html
index c70047a..1d3a66b 100644
--- a/content/docs/latest/reference/user/05_counting_semaphore.html
+++ b/content/docs/latest/reference/user/05_counting_semaphore.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/06_clocks_timers.html b/content/docs/latest/reference/user/06_clocks_timers.html
index e0c0694..d3ab369 100644
--- a/content/docs/latest/reference/user/06_clocks_timers.html
+++ b/content/docs/latest/reference/user/06_clocks_timers.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/07_signals.html b/content/docs/latest/reference/user/07_signals.html
index 22dcc4b..f7058ac 100644
--- a/content/docs/latest/reference/user/07_signals.html
+++ b/content/docs/latest/reference/user/07_signals.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
@@ -345,7 +347,7 @@ provided by NuttX:</p>
<li><p><a class="reference internal" href="#c.sigaddset" title="sigaddset"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigaddset()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.sigdelset" title="sigdelset"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigdelset()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.sigismember" title="sigismember"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigismember()</span></code></a></p></li>
-<li><p><a class="reference internal" href="#c.sigaction" title="sigaction"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigaction()</span></code></a></p></li>
+<li><p><a class="reference internal" href="structures.html#c.sigaction" title="sigaction"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigaction()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.sigignore" title="sigignore"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigignore()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.sigset" title="sigset"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigset()</span></code></a></p></li>
<li><p><a class="reference internal" href="#c.sigprocmask" title="sigprocmask"><code class="xref c c-func docutils literal notranslate"><span class="pre">sigprocmask()</span></code></a></p></li>
@@ -467,7 +469,7 @@ name.</p>
<dl class="c function">
<dt id="c.sigaction">
-int <code class="sig-name descname">sigaction</code><span class="sig-paren">(</span>int <em>signo</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.sigaction" title="sigaction">sigaction</a> *<em>act</em>, <em class="property">struct</em> <a class="reference internal" href="#c.sigaction" title="sigaction">sigaction</a> *<em>oact</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.sigaction" title="Permalink to th [...]
+int <code class="sig-name descname">sigaction</code><span class="sig-paren">(</span>int <em>signo</em>, <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="structures.html#c.sigaction" title="sigaction">sigaction</a> *<em>act</em>, <em class="property">struct</em> <a class="reference internal" href="structures.html#c.sigaction" title="sigaction">sigaction</a> *<em>oact</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.sig [...]
<dd><p>Allows the calling task to examine and/or
specify the action to be associated with a specific signal.</p>
<p>The structure sigaction, used to describe an action to be taken, is
diff --git a/content/docs/latest/reference/user/08_pthread.html b/content/docs/latest/reference/user/08_pthread.html
index 843bebb..4861efb 100644
--- a/content/docs/latest/reference/user/08_pthread.html
+++ b/content/docs/latest/reference/user/08_pthread.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/09_env_vars.html b/content/docs/latest/reference/user/09_env_vars.html
index 2368a6f..271ce23 100644
--- a/content/docs/latest/reference/user/09_env_vars.html
+++ b/content/docs/latest/reference/user/09_env_vars.html
@@ -147,6 +147,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/10_filesystem.html b/content/docs/latest/reference/user/10_filesystem.html
index 7d38dd5..8f239f0 100644
--- a/content/docs/latest/reference/user/10_filesystem.html
+++ b/content/docs/latest/reference/user/10_filesystem.html
@@ -161,6 +161,8 @@
</li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/11_network.html b/content/docs/latest/reference/user/11_network.html
index fa93ed1..a795630 100644
--- a/content/docs/latest/reference/user/11_network.html
+++ b/content/docs/latest/reference/user/11_network.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
diff --git a/content/docs/latest/reference/user/12_shared_memory.html b/content/docs/latest/reference/user/12_shared_memory.html
index af3fd0a..32e7e89 100644
--- a/content/docs/latest/reference/user/12_shared_memory.html
+++ b/content/docs/latest/reference/user/12_shared_memory.html
@@ -62,7 +62,7 @@
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
- <link rel="next" title="OS Data Structures" href="structures.html" />
+ <link rel="next" title="Board IOCTL" href="13_boardctl.html" />
<link rel="prev" title="Network Interfaces" href="11_network.html" />
</head>
@@ -145,6 +145,8 @@
<li class="toctree-l4"><a class="reference internal" href="#functions">Functions</a></li>
</ul>
</li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
@@ -467,7 +469,7 @@ address of a shared memory segment.</p></li>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
- <a href="structures.html" class="btn btn-neutral float-right" title="OS Data Structures" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+ <a href="13_boardctl.html" class="btn btn-neutral float-right" title="Board IOCTL" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="11_network.html" class="btn btn-neutral float-left" title="Network Interfaces" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
diff --git a/content/docs/latest/reference/user/13_boardctl.html b/content/docs/latest/reference/user/13_boardctl.html
new file mode 100644
index 0000000..1a7849a
--- /dev/null
+++ b/content/docs/latest/reference/user/13_boardctl.html
@@ -0,0 +1,646 @@
+<!--
+ 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="viewport" content="width=device-width, initial-scale=1.0">
+
+ <title>Board IOCTL — NuttX latest documentation</title>
+
+
+
+ <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/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 type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
+
+ <script type="text/javascript" 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="Logging" href="13_logging.html" />
+ <link rel="prev" title="Shared Memory Interfaces" href="12_shared_memory.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
+
+
+
+
+ <img src="../../_static/NuttX.png" class="logo" alt="Logo"/>
+
+ </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>
+
+ </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" />
+ <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="main navigation">
+
+
+
+
+
+
+ <p class="caption"><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="../../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 current"><a class="reference internal" href="../index.html">API Reference</a><ul class="current">
+<li class="toctree-l2 current"><a class="reference internal" href="index.html">Userspace API</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="01_task_control.html">Task Control Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="02_task_scheduling.html">Task Scheduling Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="03_task_control.html">Task Control Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="04_message_queue.html">Named Message Queue Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="05_counting_semaphore.html">Counting Semaphore Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="06_clocks_timers.html">Clocks and Timers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="07_signals.html">Signal Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="08_pthread.html">Pthread Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="09_env_vars.html">Environment Variables</a></li>
+<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">Board IOCTL</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#supported-commands">Supported commands</a><ul>
+<li class="toctree-l5"><a class="reference internal" href="#system-state-control">System state control</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#power-management">Power Management</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#board-information">Board information</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#filesystems">Filesystems</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#symbol-handling">Symbol Handling</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#usb">USB</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#graphics">Graphics</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#testing">Testing</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
+<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../os/index.html">Architecture APIs</a></li>
+</ul>
+</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="../../contributing/index.html">Contributing</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="top navigation">
+
+ <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="breadcrumbs navigation">
+
+ <ul class="wy-breadcrumbs">
+
+ <li><a href="../../index.html" class="icon icon-home"></a> »</li>
+
+ <li><a href="../index.html">API Reference</a> »</li>
+
+ <li><a href="index.html">Userspace API</a> »</li>
+
+ <li>Board IOCTL</li>
+
+
+ <li class="wy-breadcrumbs-aside">
+
+
+ <a href="../../_sources/reference/user/13_boardctl.rst.txt" rel="nofollow"> View page source</a>
+
+
+ </li>
+
+ </ul>
+
+
+ <hr/>
+</div>
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+ <div itemprop="articleBody">
+
+ <div class="section" id="board-ioctl">
+<h1>Board IOCTL<a class="headerlink" href="#board-ioctl" title="Permalink to this headline">¶</a></h1>
+<p>In a small embedded system, there will typically be a much
+greater interaction between application and low-level board features.
+The canonically correct to implement such interactions is by
+implementing a character driver and performing the interactions
+via low level <code class="docutils literal notranslate"><span class="pre">ioctl()</span></code> calls. This, however, may not be practical
+in many cases and will lead to “correct” but awkward implementations.</p>
+<p><a class="reference internal" href="#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> is non-standard OS interface to alleviate the problem.
+It basically circumvents the normal device driver <code class="docutils literal notranslate"><span class="pre">ioctl()</span></code>
+interface and allows the application to perform direct
+IOCTL-like calls to the board-specific logic. It is especially
+useful for setting up board operational and test configurations.</p>
+<p><a class="reference internal" href="#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> is an application interface to the OS.
+There is no point, in fact, of using <a class="reference internal" href="#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> within the OS;
+the board interfaces prototyped in <code class="file docutils literal notranslate"><span class="pre">include/nuttx/board.h</span></code> may
+be called directly from within the OS.</p>
+<dl class="c function">
+<dt id="c.boardctl">
+int <code class="sig-name descname">boardctl</code><span class="sig-paren">(</span>unsigned int <em>cmd</em>, uintptr_t <em>arg</em><span class="sig-paren">)</span><a class="headerlink" href="#c.boardctl" title="Permalink to this definition">¶</a><br /></dt>
+<dd><dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>cmd</strong> – Identifies the board command to be executed. See
+<code class="file docutils literal notranslate"><span class="pre">include/sys/boardctl.h</span></code> for the complete list of common
+board commands. Provisions are made to support non-common,
+board-specific commands as well.</p></li>
+<li><p><strong>arg</strong> – The argument that accompanies the command. The nature
+of the argument is determined by the specific command.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>On success zero (OK) is returned; -1 (ERROR) is
+returned on failure with the errno variable set to indicate the nature of the failure.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<div class="section" id="supported-commands">
+<h2>Supported commands<a class="headerlink" href="#supported-commands" title="Permalink to this headline">¶</a></h2>
+<p>The following is the list of supported <a class="reference internal" href="#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> commands.
+Besides this list, board logic can implement handling of custom commands by
+implementing the <code class="xref c c-func docutils literal notranslate"><span class="pre">board_ioctl()</span></code> interface.</p>
+<div class="section" id="system-state-control">
+<h3>System state control<a class="headerlink" href="#system-state-control" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_INIT">
+<code class="sig-name descname">BOARDIOC_INIT</code><a class="headerlink" href="#c.BOARDIOC_INIT" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Perform one-time application initialization.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>The argument is passed to the
+<code class="xref c c-func docutils literal notranslate"><span class="pre">board_app_initialize()</span></code> implementation without modification.
+The argument has no meaning to NuttX; the meaning of the
+argument is a contract between the board-specific
+initialization logic and the matching application logic.
+The value could be such things as a mode enumeration value,
+a set of DIP switch switch settings, a pointer to
+configuration data read from a file or serial FLASH, or
+whatever you would like to do with it. Every
+implementation should accept zero/NULL as a default
+configuration.</p>
+</dd>
+<dt class="field-even">Dependencies</dt>
+<dd class="field-even"><p>Board logic must provide <code class="xref c c-func docutils literal notranslate"><span class="pre">board_app_initialize()</span></code>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_POWEROFF">
+<code class="sig-name descname">BOARDIOC_POWEROFF</code><a class="headerlink" href="#c.BOARDIOC_POWEROFF" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Power off the board</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>Integer value providing power off status information</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_POWEROFF</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Board logic must provide the <code class="xref c c-func docutils literal notranslate"><span class="pre">board_power_off()</span></code> interface.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_RESET">
+<code class="sig-name descname">BOARDIOC_RESET</code><a class="headerlink" href="#c.BOARDIOC_RESET" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Reset the board</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>Integer value providing power off status information</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_RESET</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Board logic must provide the <code class="xref c c-func docutils literal notranslate"><span class="pre">board_reset()</span></code> interface.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="power-management">
+<h3>Power Management<a class="headerlink" href="#power-management" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_PM_CONTROL">
+<code class="sig-name descname">BOARDIOC_PM_CONTROL</code><a class="headerlink" href="#c.BOARDIOC_PM_CONTROL" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Manage power state transition and query. The supplied argument
+indicates the specific PM operation to perform, which map to
+corresponding internal <code class="docutils literal notranslate"><span class="pre">pm_<operation></span></code> functions
+(see <a class="reference internal" href="../../components/power.html"><span class="doc">Power Management</span></a>).</p>
+<p>With this interface you can interact with PM handling arch/board logic
+(typically done in IDLE loop) or you can directly manage state transitions
+from userspace.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A pointer to an instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_pm_ctrl_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_PM</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="board-information">
+<h3>Board information<a class="headerlink" href="#board-information" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_UNIQUEID">
+<code class="sig-name descname">BOARDIOC_UNIQUEID</code><a class="headerlink" href="#c.BOARDIOC_UNIQUEID" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Return a unique ID associated with the board (such as a
+serial number or a MAC address).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A writable array of size <code class="xref c c-macro docutils literal notranslate"><span class="pre">CONFIG_BOARDCTL_UNIQUEID_SIZE</span></code> in
+which to receive the board unique ID.</p>
+</dd>
+<dt class="field-even">Dependencies</dt>
+<dd class="field-even"><p>Board logic must provide the <code class="xref c c-func docutils literal notranslate"><span class="pre">board_uniqueid()</span></code> interface.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="filesystems">
+<h3>Filesystems<a class="headerlink" href="#filesystems" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_MKRD">
+<code class="sig-name descname">BOARDIOC_MKRD</code><a class="headerlink" href="#c.BOARDIOC_MKRD" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Create a RAM disk</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>Pointer to read-only instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_mkrd_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_MKRD</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_ROMDISK">
+<code class="sig-name descname">BOARDIOC_ROMDISK</code><a class="headerlink" href="#c.BOARDIOC_ROMDISK" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Register a ROM disk</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>Pointer to read-only instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_romdisk_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_ROMDISK</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="symbol-handling">
+<h3>Symbol Handling<a class="headerlink" href="#symbol-handling" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_APP_SYMTAB">
+<code class="sig-name descname">BOARDIOC_APP_SYMTAB</code><a class="headerlink" href="#c.BOARDIOC_APP_SYMTAB" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Select the application symbol table. This symbol table
+provides the symbol definitions exported to application
+code from application space.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A pointer to an instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_symtab_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_APP_SYMTAB</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_OS_SYMTAB">
+<code class="sig-name descname">BOARDIOC_OS_SYMTAB</code><a class="headerlink" href="#c.BOARDIOC_OS_SYMTAB" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Select the OS symbol table. This symbol table provides
+the symbol definitions exported by the OS to kernel
+modules.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A pointer to an instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_symtab_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_OS_SYMTAB</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_BUILTINS">
+<code class="sig-name descname">BOARDIOC_BUILTINS</code><a class="headerlink" href="#c.BOARDIOC_BUILTINS" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Provide the user-space list of built-in applications for
+use by BINFS in protected mode. Normally this is small
+set of globals provided by user-space logic. It provides
+name-value pairs for associating built-in application
+names with user-space entry point addresses. These
+globals are only needed for use by BINFS which executes
+built-in applications from kernel-space in PROTECTED mode.
+In the FLAT build, the user space globals are readily
+available. (BINFS is not supportable in KERNEL mode since
+user-space address have no general meaning that
+configuration).</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A pointer to an instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_builtin_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>This command is always available when
+CONFIG_BUILTIN is enabled, but does nothing unless
+CONFIG_BUILD_PROTECTED and CONFIG_FS_BINFS are also
+selected.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="usb">
+<h3>USB<a class="headerlink" href="#usb" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_USBDEV_CONTROL">
+<code class="sig-name descname">BOARDIOC_USBDEV_CONTROL</code><a class="headerlink" href="#c.BOARDIOC_USBDEV_CONTROL" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Manage USB device classes</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A pointer to an instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_usbdev_ctrl_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_LIB_BOARDCTL && CONFIG_BOARDCTL_USBDEVCTRL</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Board logic must provide <a href="#id1"><span class="problematic" id="id2">``</span></a>board_<usbdev>_initialize()`.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="graphics">
+<h3>Graphics<a class="headerlink" href="#graphics" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_NX_START">
+<code class="sig-name descname">BOARDIOC_NX_START</code><a class="headerlink" href="#c.BOARDIOC_NX_START" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Start the NX server</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>Integer display number to be served by this NXMU instance.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_NX</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Base graphics logic provides <a class="reference internal" href="../../components/nxgraphics/nx.html#c.nxmu_start" title="nxmu_start"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxmu_start()</span></code></a>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_VNC_START">
+<code class="sig-name descname">BOARDIOC_VNC_START</code><a class="headerlink" href="#c.BOARDIOC_VNC_START" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Start the NX server and framebuffer driver.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A reference readable instance of <code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_vncstart_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_VNCSERVER</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>VNC server provides <code class="xref c c-func docutils literal notranslate"><span class="pre">vnc_default_fbinitialize()</span></code>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_NXTERM">
+<code class="sig-name descname">BOARDIOC_NXTERM</code><a class="headerlink" href="#c.BOARDIOC_NXTERM" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Create an NX terminal device</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A reference readable/writable instance of
+<code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_nxterm_create_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_NXTERM</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Base NX terminal logic provides <code class="xref c c-func docutils literal notranslate"><span class="pre">nx_register()</span></code> and
+<code class="xref c c-func docutils literal notranslate"><span class="pre">nxtk_register()</span></code>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.BOARDIOC_NXTERM_IOCTL">
+<code class="sig-name descname">BOARDIOC_NXTERM_IOCTL</code><a class="headerlink" href="#c.BOARDIOC_NXTERM_IOCTL" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Create an NX terminal IOCTL command. Normal IOCTLs
+cannot be be performed in most graphics contexts since
+the depend on the task holding an open file descriptor</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A reference readable/writable instance of
+<code class="xref c c-struct docutils literal notranslate"><span class="pre">boardioc_nxterm_ioctl_s</span></code>.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_NXTERM</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Base NX terminal logic provides <code class="xref c c-func docutils literal notranslate"><span class="pre">nxterm_ioctl_tap()</span></code>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+<div class="section" id="testing">
+<h3>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h3>
+<dl class="c macro">
+<dt id="c.BOARDIOC_TESTSET">
+<code class="sig-name descname">BOARDIOC_TESTSET</code><a class="headerlink" href="#c.BOARDIOC_TESTSET" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Access architecture-specific up_testset() operation</p>
+<dl class="field-list simple">
+<dt class="field-odd">Argument</dt>
+<dd class="field-odd"><p>A pointer to a write-able spinlock object. On success
+the preceding spinlock state is returned: 0=unlocked,
+1=locked.</p>
+</dd>
+<dt class="field-even">Configuration</dt>
+<dd class="field-even"><p>CONFIG_BOARDCTL_TESTSET</p>
+</dd>
+<dt class="field-odd">Dependencies</dt>
+<dd class="field-odd"><p>Architecture-specific logic provides <a class="reference internal" href="../os/smp.html#c.up_testset" title="up_testset"><code class="xref c c-func docutils literal notranslate"><span class="pre">up_testset()</span></code></a>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+</div>
+</div>
+</div>
+
+
+ </div>
+
+ </div>
+ <footer>
+
+ <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+
+ <a href="13_logging.html" class="btn btn-neutral float-right" title="Logging" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+
+
+ <a href="12_shared_memory.html" class="btn btn-neutral float-left" title="Shared Memory Interfaces" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+
+ </div>
+
+
+ <hr/>
+
+ <div role="contentinfo">
+ <p>
+
+ © Copyright 2020, The Apache Software Foundation
+
+ </p>
+ </div>
+
+</footer>
+
+ </div>
+ </div>
+
+ </section>
+
+ </div>
+
+
+ <script type="text/javascript">
+ jQuery(function () {
+ SphinxRtdTheme.Navigation.enable(true);
+ });
+ </script>
+
+
+
+
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/content/docs/latest/reference/user/13_logging.html b/content/docs/latest/reference/user/13_logging.html
new file mode 100644
index 0000000..1c7aeb5
--- /dev/null
+++ b/content/docs/latest/reference/user/13_logging.html
@@ -0,0 +1,419 @@
+<!--
+ 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="viewport" content="width=device-width, initial-scale=1.0">
+
+ <title>Logging — NuttX latest documentation</title>
+
+
+
+ <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
+ <link rel="stylesheet" href="../../_static/sphinx_tabs/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 type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
+ <script src="../../_static/jquery.js"></script>
+ <script src="../../_static/underscore.js"></script>
+ <script src="../../_static/doctools.js"></script>
+ <script src="../../_static/language_data.js"></script>
+
+ <script type="text/javascript" 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="OS Data Structures" href="structures.html" />
+ <link rel="prev" title="Board IOCTL" href="13_boardctl.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
+
+
+
+
+ <img src="../../_static/NuttX.png" class="logo" alt="Logo"/>
+
+ </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>
+
+ </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" />
+ <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="main navigation">
+
+
+
+
+
+
+ <p class="caption"><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="../../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 current"><a class="reference internal" href="../index.html">API Reference</a><ul class="current">
+<li class="toctree-l2 current"><a class="reference internal" href="index.html">Userspace API</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal" href="01_task_control.html">Task Control Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="02_task_scheduling.html">Task Scheduling Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="03_task_control.html">Task Control Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="04_message_queue.html">Named Message Queue Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="05_counting_semaphore.html">Counting Semaphore Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="06_clocks_timers.html">Clocks and Timers</a></li>
+<li class="toctree-l3"><a class="reference internal" href="07_signals.html">Signal Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="08_pthread.html">Pthread Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="09_env_vars.html">Environment Variables</a></li>
+<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3 current"><a class="current reference internal" href="#">Logging</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="#priority-levels">Priority Levels</a></li>
+<li class="toctree-l4"><a class="reference internal" href="#priority-mask">Priority mask</a></li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="../os/index.html">Architecture APIs</a></li>
+</ul>
+</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="../../contributing/index.html">Contributing</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="top navigation">
+
+ <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="breadcrumbs navigation">
+
+ <ul class="wy-breadcrumbs">
+
+ <li><a href="../../index.html" class="icon icon-home"></a> »</li>
+
+ <li><a href="../index.html">API Reference</a> »</li>
+
+ <li><a href="index.html">Userspace API</a> »</li>
+
+ <li>Logging</li>
+
+
+ <li class="wy-breadcrumbs-aside">
+
+
+ <a href="../../_sources/reference/user/13_logging.rst.txt" rel="nofollow"> View page source</a>
+
+
+ </li>
+
+ </ul>
+
+
+ <hr/>
+</div>
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+ <div itemprop="articleBody">
+
+ <div class="section" id="logging">
+<h1>Logging<a class="headerlink" href="#logging" title="Permalink to this headline">¶</a></h1>
+<p>NuttX provides the SYSLOG for application and OS logging, which can be
+configured in various ways to select how these messages are displayed
+(see details <a class="reference internal" href="../../components/drivers/special/syslog.html"><span class="doc">here</span></a>).</p>
+<p>Applications can emit logging messages using the standard <a class="reference internal" href="#c.syslog" title="syslog"><code class="xref c c-func docutils literal notranslate"><span class="pre">syslog()</span></code></a>
+interface.</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The standard <code class="xref c c-func docutils literal notranslate"><span class="pre">openlog()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">closelog()</span></code>
+are not currently supported.</p>
+</div>
+<dl class="c function">
+<dt id="c.syslog">
+void <code class="sig-name descname">syslog</code><span class="sig-paren">(</span>int <em>priority</em>, <em class="property">const</em> char *<em>fmt</em>, ...<span class="sig-paren">)</span><a class="headerlink" href="#c.syslog" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>This interface allows to send messages to SYSLOG using standard
+<code class="xref c c-func docutils literal notranslate"><span class="pre">printf()</span></code> formatting.</p>
+<p>Each message sent to SYSLOG is assigned a priority. Depending
+on system configuration this message may or not appear in the
+output.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>priority</strong> – A priority given by <code class="docutils literal notranslate"><span class="pre">LOG_*</span></code> family of
+definitions.</p></li>
+<li><p><strong>fmt</strong> – The format string</p></li>
+</ul>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c function">
+<dt id="c.vsyslog">
+void <code class="sig-name descname">vsyslog</code><span class="sig-paren">(</span>int <em>priority</em>, <em class="property">const</em> char *<em>fmt</em>, va_list <em>ap</em><span class="sig-paren">)</span><a class="headerlink" href="#c.vsyslog" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Performs the same task as <a class="reference internal" href="#c.syslog" title="syslog"><code class="xref c c-func docutils literal notranslate"><span class="pre">syslog()</span></code></a> with the
+difference that it takes a set of arguments which have been obtained
+using the <code class="file docutils literal notranslate"><span class="pre">include/stdarg.h</span></code> variable argument list macros.</p>
+</dd></dl>
+
+<dl class="c function">
+<dt id="c.setlogmask">
+int <code class="sig-name descname">setlogmask</code><span class="sig-paren">(</span>int <em>mask</em><span class="sig-paren">)</span><a class="headerlink" href="#c.setlogmask" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Sets the logging mask which controls which messages appear on SYSLOG
+output. <a class="reference internal" href="#c.setlogmask" title="setlogmask"><code class="xref c c-func docutils literal notranslate"><span class="pre">setlogmask()</span></code></a> is not a thread-safe, re-entrant function.
+Concurrent use will have undefined behavior.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>mask</strong> – The new mask to set.
+See <a class="reference internal" href="#c.LOG_MASK" title="LOG_MASK"><code class="xref c c-macro docutils literal notranslate"><span class="pre">LOG_MASK</span></code></a> and <a class="reference internal" href="#c.LOG_UPTO" title="LOG_UPTO"><code class="xref c c-macro docutils literal notranslate"><span class="pre">LOG_UPTO</span></code></a>.
+Per OpenGroup.org “If the maskpri argument is 0, the current log mask
+is not modified.” In this implementation, the value zero is permitted
+in order to disable all syslog levels.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>The previous mask.</p>
+</dd>
+</dl>
+<div class="admonition warning">
+<p class="admonition-title">Warning</p>
+<p>Per POSIX the syslog mask should be a per-process value but in
+NuttX, the scope of the mask is dependent on the nature of the build:</p>
+<ul class="simple">
+<li><p>Flat Build: There is one, global SYSLOG mask that controls all output.</p></li>
+<li><p>Protected Build: There are two SYSLOG masks. One within the kernel
+that controls only kernel output. And one in user-space that controls
+only user SYSLOG output.</p></li>
+<li><p>Kernel Build: The kernel build is compliant with the POSIX requirement:
+There will be one mask for each user process, controlling the SYSLOG
+output only form that process. There will be a separate mask
+accessible only in the kernel code to control kernel SYSLOG output.</p></li>
+</ul>
+</div>
+</dd></dl>
+
+<div class="section" id="priority-levels">
+<h2>Priority Levels<a class="headerlink" href="#priority-levels" title="Permalink to this headline">¶</a></h2>
+<p>The following levels are defined:</p>
+<table class="docutils align-default">
+<colgroup>
+<col style="width: 32%" />
+<col style="width: 68%" />
+</colgroup>
+<thead>
+<tr class="row-odd"><th class="head"><p>Priority (macro)</p></th>
+<th class="head"><p>Description</p></th>
+</tr>
+</thead>
+<tbody>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_EMERG</span></code></p></td>
+<td><p>System is unusable</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_ALERT</span></code></p></td>
+<td><p>Action must be taken immediately</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_CRIT</span></code></p></td>
+<td><p>Critical conditions</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_ERR</span></code></p></td>
+<td><p>Error conditions</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_WARNING</span></code></p></td>
+<td><p>Warning conditions</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_NOTICE</span></code></p></td>
+<td><p>Normal, but significant, condition</p></td>
+</tr>
+<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_INFO</span></code></p></td>
+<td><p>Informational message</p></td>
+</tr>
+<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">LOG_DEBUG</span></code></p></td>
+<td><p>Debug-level message</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="section" id="priority-mask">
+<h2>Priority mask<a class="headerlink" href="#priority-mask" title="Permalink to this headline">¶</a></h2>
+<p>The following macros can be used with <a class="reference internal" href="#c.setlogmask" title="setlogmask"><code class="xref c c-func docutils literal notranslate"><span class="pre">setlogmask()</span></code></a>:</p>
+<dl class="c macro">
+<dt id="c.LOG_MASK">
+<code class="sig-name descname">LOG_MASK</code><span class="sig-paren">(</span><em>p</em><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_MASK" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Returns the logmask corresponding priority <code class="docutils literal notranslate"><span class="pre">p</span></code></p>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.LOG_UPTO">
+<code class="sig-name descname">LOG_UPTO</code><span class="sig-paren">(</span><em>p</em><span class="sig-paren">)</span><a class="headerlink" href="#c.LOG_UPTO" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Returns the logmask of all SYSLOG priorities
+up to and including <code class="docutils literal notranslate"><span class="pre">p</span></code>.</p>
+</dd></dl>
+
+<dl class="c macro">
+<dt id="c.LOG_ALL">
+<code class="sig-name descname">LOG_ALL</code><a class="headerlink" href="#c.LOG_ALL" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>Mask corresponding to all priorities enabled</p>
+</dd></dl>
+
+</div>
+</div>
+
+
+ </div>
+
+ </div>
+ <footer>
+
+ <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+
+ <a href="structures.html" class="btn btn-neutral float-right" title="OS Data Structures" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+
+
+ <a href="13_boardctl.html" class="btn btn-neutral float-left" title="Board IOCTL" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+
+ </div>
+
+
+ <hr/>
+
+ <div role="contentinfo">
+ <p>
+
+ © Copyright 2020, The Apache Software Foundation
+
+ </p>
+ </div>
+
+</footer>
+
+ </div>
+ </div>
+
+ </section>
+
+ </div>
+
+
+ <script type="text/javascript">
+ jQuery(function () {
+ SphinxRtdTheme.Navigation.enable(true);
+ });
+ </script>
+
+
+
+
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/content/docs/latest/reference/user/index.html b/content/docs/latest/reference/user/index.html
index 43f5dcc..3377f5c 100644
--- a/content/docs/latest/reference/user/index.html
+++ b/content/docs/latest/reference/user/index.html
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</li>
@@ -251,6 +253,8 @@ Porting Guide.</p>
<li class="toctree-l1"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l1"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l1"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l1"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l1"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l1"><a class="reference internal" href="structures.html">OS Data Structures</a></li>
</ul>
</div>
diff --git a/content/docs/latest/reference/user/structures.html b/content/docs/latest/reference/user/structures.html
index 30344e6..23b0f92 100644
--- a/content/docs/latest/reference/user/structures.html
+++ b/content/docs/latest/reference/user/structures.html
@@ -63,7 +63,7 @@
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Architecture APIs" href="../os/index.html" />
- <link rel="prev" title="Shared Memory Interfaces" href="12_shared_memory.html" />
+ <link rel="prev" title="Logging" href="13_logging.html" />
</head>
<body class="wy-body-for-nav">
@@ -142,6 +142,8 @@
<li class="toctree-l3"><a class="reference internal" href="10_filesystem.html">File System Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="11_network.html">Network Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="12_shared_memory.html">Shared Memory Interfaces</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_boardctl.html">Board IOCTL</a></li>
+<li class="toctree-l3"><a class="reference internal" href="13_logging.html">Logging</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">OS Data Structures</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#scalar-types">Scalar Types</a></li>
<li class="toctree-l4"><a class="reference internal" href="#hidden-interface-structures">Hidden Interface Structures</a></li>
@@ -370,7 +372,7 @@ NuttX and a MoBY application:</p>
</div>
<dl class="c struct">
<dt id="c.sigaction">
-<em class="property">struct </em><code class="sig-name descname">sigaction</code><br /></dt>
+<em class="property">struct </em><code class="sig-name descname">sigaction</code><a class="headerlink" href="#c.sigaction" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>
<p>The following structure defines the action to take for given signal:</p>
@@ -450,7 +452,7 @@ task when a message is available on a queue.</p>
<a href="../os/index.html" class="btn btn-neutral float-right" title="Architecture APIs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
- <a href="12_shared_memory.html" class="btn btn-neutral float-left" title="Shared Memory Interfaces" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+ <a href="13_logging.html" class="btn btn-neutral float-left" title="Logging" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js
index 448df79..3443e64 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/index","components/drivers/character/keypad","components/drivers/charac [...]
\ No newline at end of file
+Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/index","components/drivers/character/keypad","components/drivers/charac [...]
\ No newline at end of file
diff --git a/content/feed.xml b/content/feed.xml
index 4fa3e95..04e6733 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -5,8 +5,8 @@
<description></description>
<link>/</link>
<atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
- <pubDate>Thu, 11 Mar 2021 00:48:31 +0000</pubDate>
- <lastBuildDate>Thu, 11 Mar 2021 00:48:31 +0000</lastBuildDate>
+ <pubDate>Tue, 30 Mar 2021 12:20:25 +0000</pubDate>
+ <lastBuildDate>Tue, 30 Mar 2021 12:20:25 +0000</lastBuildDate>
<generator>Jekyll v3.8.5</generator>
<item>