This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 6ef36dbc6a Publishing docs: 140959f63f4e059d6259448eecfa74078fde6947
(web: b3ba9359c605c5e92ad2feac6444e03d16143fd3)
6ef36dbc6a is described below
commit 6ef36dbc6a4fb50a28c1a7e07850db6557ce2404
Author: Swatantra Yadav <[email protected]>
AuthorDate: Tue Oct 27 00:50:16 2026 +0000
Publishing docs: 140959f63f4e059d6259448eecfa74078fde6947 (web:
b3ba9359c605c5e92ad2feac6444e03d16143fd3)
---
.../concurrency/zerolatencyinterrupts.rst.txt | 42 ++++++++++
.../os/drivers/character/timers/watchdog.rst.txt | 35 ++++++++
.../_sources/os/drivers/special/sensors.rst.txt | 1 +
.../drivers/special/sensors/sensors_uorb.rst.txt | 1 +
.../os/drivers/special/sensors/shtc3.rst.txt | 16 ++++
.../_sources/os/scheduling/user_identity.rst.txt | 8 +-
.../gd32w51x/boards/gd-xd-w515-eval/index.rst.txt | 67 +++++++++++++++-
.../boards/gd32vw553k-start/index.rst.txt | 32 ++++++++
.../risc-v/qemu-rv/boards/rv-virt/index.rst.txt | 4 +-
.../platforms/sim/sim/boards/sim/index.rst.txt | 12 +++
.../_sources/reference/user/10_filesystem.rst.txt | 25 ++++++
.../_sources/reference/user/11_network.rst.txt | 23 ++++++
content/docs/latest/_sources/testing/ntfc.rst.txt | 2 +-
.../components/drivers/special/sensors/shtc3.html | 5 ++
content/docs/latest/genindex.html | 4 +
.../guides/concurrency/zerolatencyinterrupts.html | 39 +++++++++
.../latest/guides/porting/port_bootsequence.html | 8 +-
.../porting/port_relatedkernelconfigrations.html | 8 +-
.../latest/guides/programs/fully_linked_elf.html | 2 +-
.../guides/programs/partially_linked_elf.html | 2 +-
content/docs/latest/objects.inv | Bin 259495 -> 259774 bytes
.../latest/os/drivers/character/timers/index.html | 1 +
.../os/drivers/character/timers/watchdog.html | 30 +++++++
.../os/drivers/special/sensors/sensors_uorb.html | 1 +
.../latest/os/drivers/special/sensors/sht4x.html | 4 +-
.../special/sensors/{tc74.html => shtc3.html} | 55 ++++---------
.../latest/os/drivers/special/sensors/tc74.html | 4 +-
.../docs/latest/os/scheduling/user_identity.html | 8 +-
.../arm/gd32w51x/boards/gd-xd-w515-eval/index.html | 64 ++++++++++++++-
.../arm/stm32c0/boards/nucleo-c071rb/index.html | 60 +++++++++-----
.../stm32f0/boards/stm32f051-discovery/index.html | 60 +++++++++-----
.../arm64/fvp-v8r/boards/fvp-armv8r/index.html | 89 +++++++++++----------
.../gd32vw55x/boards/gd32vw553k-start/index.html | 31 +++++++
.../risc-v/qemu-rv/boards/rv-virt/index.html | 5 +-
.../latest/platforms/sim/sim/boards/sim/index.html | 12 +++
.../docs/latest/reference/user/10_filesystem.html | 25 ++++++
content/docs/latest/reference/user/11_network.html | 33 ++++++++
content/docs/latest/searchindex.js | 2 +-
content/docs/latest/testing/ntfc.html | 2 +-
39 files changed, 667 insertions(+), 155 deletions(-)
diff --git
a/content/docs/latest/_sources/guides/concurrency/zerolatencyinterrupts.rst.txt
b/content/docs/latest/_sources/guides/concurrency/zerolatencyinterrupts.rst.txt
index 2a5f14e70c..7cacc2caa4 100644
---
a/content/docs/latest/_sources/guides/concurrency/zerolatencyinterrupts.rst.txt
+++
b/content/docs/latest/_sources/guides/concurrency/zerolatencyinterrupts.rst.txt
@@ -307,3 +307,45 @@ You can find an example that tests the high priority,
nested interrupts in the N
* ``nuttx/boards/arm/stm32f1/viewtool-stm32f107/src/stm32_highpri`` Test
driver.
+AVR DA/DB implementation
+========================
+
+Implementation of high priority interrupts allows the user to bypass the
generic
+interrupt handling. There is, however, no mechanism described in the "Getting
Back
+into the Game" section.
+
+This AVR family only has one interrupt vector that can be declared as
high-priority.
+Nevertheless, you can disable the generic handler for multiple vectors - they
will
+execute with regular priority though.
+
+AVR DA/DB Configuration Options
+-------------------------------
+
+High priority interrupts are enabled in
+:menuselection:`System type --> Enable high priority interrupts`
+
+Enabling this option allows fine-grained selection of interrupt handlers
+which should have their default implementation disabled.
+
+Interrupt handlers that relate to hardware controlled by drivers must
+not be overridden this way.
+
+Non-default interrupt handling
+------------------------------
+
+With GCC, interrupt handler is defined using the following code:
+
+.. code:: c
+
+ void __vector_avrdx_usart2_dre (void) \
+ __attribute__ ((__signal__,__used__, __externally_visible__));
+ void __vector_avrdx_usart2_dre (void)
+ {
+ /* your implementation */
+ }
+
+The compiled code will preserve contents of all registers (not just
call-preserved ones
+like in regular functions) and return using ``reti`` (return from interrupt)
instruction.
+
+The function name always corresponds to interrupt name as specified in
datasheet
+for the chip in question.
diff --git
a/content/docs/latest/_sources/os/drivers/character/timers/watchdog.rst.txt
b/content/docs/latest/_sources/os/drivers/character/timers/watchdog.rst.txt
index ffd8538516..6006070c14 100644
--- a/content/docs/latest/_sources/os/drivers/character/timers/watchdog.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/character/timers/watchdog.rst.txt
@@ -265,3 +265,38 @@ To enable it, follow the next instructions:
After selecting one of these choices, the chip will keep itself alive by
one of
these options.
+
+Software Watchdog Implementation (watchdog_wdog)
+------------------------------------------------
+
+The ``CONFIG_WATCHDOG_WDOG`` option provides a watchdog "lower half" built on
+the NuttX internal wdog timers, for the platforms that have no watchdog
+hardware, such as the simulator. It is the watchdog counterpart of
+``timer_wdog``. Like any watchdog it expires if it is not fed within its
+timeout, but since there is no hardware to reset the system, it does what
+``CONFIG_WATCHDOG_WDOG_ACTION`` selects: panic, reboot (``board_reset()``) or
+power off (``board_power_off()``). With the last two,
``CONFIG_WATCHDOG_WDOG_STATUS``
+is the status given to the board.
+
+Because it relies on the system tick, it can not detect a system where the tick
+stopped. It is not the same as ``CONFIG_WATCHDOG_AUTOMONITOR_BY_WDOG``, where a
+wdog feeds a real watchdog, and it is not available with the oneshot and timer
+auto-monitors.
+
+Call ``watchdog_wdog_initialize()`` from the board initialization code to
+register it. The initial timeout is ``CONFIG_WATCHDOG_WDOG_TIMEOUT``:
+
+.. code-block:: c
+
+ #include <nuttx/timers/watchdog_wdog.h>
+
+ #ifdef CONFIG_WATCHDOG_WDOG
+ ret = watchdog_wdog_initialize(CONFIG_WATCHDOG_DEVPATH);
+ if (ret < 0)
+ {
+ syslog(LOG_ERR, "ERROR: watchdog_wdog_initialize failed: %d\n", ret);
+ }
+ #endif
+
+The simulator uses it, see the ``watchdog`` configuration of the
+:doc:`sim </platforms/sim/sim/boards/sim/index>`.
diff --git a/content/docs/latest/_sources/os/drivers/special/sensors.rst.txt
b/content/docs/latest/_sources/os/drivers/special/sensors.rst.txt
index 19b592d73c..3746eabe4a 100644
--- a/content/docs/latest/_sources/os/drivers/special/sensors.rst.txt
+++ b/content/docs/latest/_sources/os/drivers/special/sensors.rst.txt
@@ -39,6 +39,7 @@ tool for monitoring sensor activity at runtime.
sensors/qmi8658.rst
sensors/scl3300.rst
sensors/sht4x.rst
+ sensors/shtc3.rst
sensors/tc74.rst
sensors/tmp112.rst
sensors/lsm6dso32.rst
diff --git
a/content/docs/latest/_sources/os/drivers/special/sensors/sensors_uorb.rst.txt
b/content/docs/latest/_sources/os/drivers/special/sensors/sensors_uorb.rst.txt
index 1603113923..2c544b675c 100644
---
a/content/docs/latest/_sources/os/drivers/special/sensors/sensors_uorb.rst.txt
+++
b/content/docs/latest/_sources/os/drivers/special/sensors/sensors_uorb.rst.txt
@@ -570,6 +570,7 @@ Implemented Drivers
- :doc:`nau7802`
- :doc:`qmi8658`
- :doc:`sht4x`
+- :doc:`shtc3`
- :doc:`tc74`
- :doc:`tmp112`
- :doc:`lsm6dso32`
diff --git
a/content/docs/latest/_sources/os/drivers/special/sensors/shtc3.rst.txt
b/content/docs/latest/_sources/os/drivers/special/sensors/shtc3.rst.txt
new file mode 100644
index 0000000000..e202978e29
--- /dev/null
+++ b/content/docs/latest/_sources/os/drivers/special/sensors/shtc3.rst.txt
@@ -0,0 +1,16 @@
+=============================
+Sensirion SHTC3 Sensor Driver
+=============================
+
+This driver provides support for the Sensirion SHTC3 temperature and humidity
sensor
+using the uORB sensor framework.
+
+It provides two uORB topics:
+- ``SENSOR_TYPE_AMBIENT_TEMPERATURE``
+- ``SENSOR_TYPE_RELATIVE_HUMIDITY``
+
+Configuration
+-------------
+
+To enable the driver, select ``CONFIG_SENSORS_SHTC3=y`` in your board
configuration.
+You can configure the I2C frequency via ``CONFIG_SHTC3_I2C_FREQUENCY``
(default is 400kHz).
diff --git a/content/docs/latest/_sources/os/scheduling/user_identity.rst.txt
b/content/docs/latest/_sources/os/scheduling/user_identity.rst.txt
index 9f621c80e8..b9416e7547 100644
--- a/content/docs/latest/_sources/os/scheduling/user_identity.rst.txt
+++ b/content/docs/latest/_sources/os/scheduling/user_identity.rst.txt
@@ -89,10 +89,10 @@ This implements temporary privilege drop with ``seteuid()``
/
These functions set the real and/or effective IDs in a single call. When the
effective ID is zero, any requested real and effective values may be assigned
and the saved set-ID is updated accordingly. When the effective ID is
-non-zero, each requested value must equal the current effective ID, saved
-set-ID, or (for the effective argument only) the real ID; otherwise the call
-returns ``-1`` with ``errno`` set to ``EPERM``. When the real ID is changed,
-or the effective ID is changed to a value not equal to the real ID, the saved
+non-zero, each requested value must equal the current real, effective, or saved
+set-ID; otherwise the call returns ``-1`` with ``errno`` set to ``EPERM``.
+When the real ID is explicitly specified (its argument is not ``-1``), or the
+effective ID is explicitly set to a value not equal to the real ID, the saved
set-ID is set to the new effective ID.
``getresuid()`` and ``getresgid()``
diff --git
a/content/docs/latest/_sources/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.rst.txt
b/content/docs/latest/_sources/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.rst.txt
index b3558ee1d9..829c4fdad9 100644
---
a/content/docs/latest/_sources/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.rst.txt
@@ -57,7 +57,7 @@ USB detect PC1 (micro-USB VBUS / 2)
/dev/gpio1 (interrupt)
Charger IRQ PB2 GD30BC2416 driver (*)
Charger enable PC3 (CHRG_EN, active high) Held high
Analog inputs PA1, PA2, PA3, PC2 ADC channels 1/2/3/6 (*)
-GD-Link VBUS PC0 (mini-USB VBUS / 2) ADC channel 4 (unused)
+GD-Link VBUS PC0 (mini-USB VBUS / 2) ADC channel 4 (*)
Microphone PA15 (MIC_OUT) Digital input
QSPI flash PA4 (SCK), PA5 (CS) GD25Q128E, AF3
QSPI flash PA6, PA7, PB3, PB4 IO0..IO3, AF3
@@ -67,8 +67,10 @@ QSPI flash PA6, PA7, PB3, PB4
IO0..IO3, AF3
of the battery (PA2) and of the USB connector (PA3), each a 10 kOhm NTC
with a 10 kOhm pull-up to 3.3 V, and the battery current (PC2): an
INA181A1 (gain 20) on a 20 mOhm shunt with a 1.8 V offset, so
-``I = (V - 1.8) / 0.4`` A, negative while the battery charges. The battery
-voltage is only measured by the charger. PB2 is ``/dev/gpio3`` when the
+``I = (V - 1.8) / 0.4`` A, negative while the battery charges. PC0 is the
+GD-Link USB supply through a 10 kOhm / 10 kOhm divider: about 2.5 V with
+the GD-Link cable plugged in, near 0 V without it. The battery voltage is
+only measured by the charger. PB2 is ``/dev/gpio3`` when the
charger driver is disabled.
Fingerprint sensor
@@ -248,7 +250,8 @@ reboot:
- ``/data``: the last 128 KB of the internal flash (``/dev/gd32flash``).
- ``/flash``: the 16 MB QSPI NOR flash (``/dev/qspiflash``, GD25 driver in
- QSPI mode).
+ QSPI mode). Reads of 64 bytes or more go through DMA1 channel 0
+ (``CONFIG_GD32W51X_QSPI_DMA``): 256 KB in 60 ms instead of 80 ms.
::
@@ -259,3 +262,59 @@ reboot:
nsh> echo hello > /flash/hello.txt
nsh> cat /flash/hello.txt
hello
+
+With ``CONFIG_GD_XD_W515_EVAL_QSPI_MEMMAP`` the QSPI flash is not registered:
+it is mapped read-only at 0x90000000 (memory-mapped mode,
+``gd32_qspi_enter_memorymapped()``), so that constant data stored in it can
+be read in place.
+
+::
+
+ nsh> xd 0x90000000 16
+ Hex dump:
+ 0000: cc 00 00 00 f0 0f ff f7 6c 69 74 74 6c 65 66 73 ........littlefs
+
+``CONFIG_GD_XD_W515_EVAL_QSPI_XIP`` adds code and constant data run in place
+from the last MiB of the QSPI flash: functions and data marked
+``locate_code(".qspixip")`` and ``locate_data(".qspixip")`` go to the
+``.qspixip`` section. It is linked at 0x10f00000, which the instruction
+cache remaps to the window (0x90f00000), and stored after the image in the
+internal flash: the board programs it to the QSPI flash at boot when it
+differs, so ``nuttx.bin`` is still programmed as usual. A self-test runs a
+CRC-32 function from the QSPI flash over a string read in place::
+
+ QSPI XIP section programmed (176 bytes)
+ QSPI XIP: code at 0x10f00001, data at 0x10f0002c: crc 21821ab6 OK
+
+.. note::
+ Code run from the window at 0x90000000 itself hangs the bus as soon as
+ it also reads the window (its literal pool, its data); through the
+ instruction cache remap both work. Nothing may access the window
+ directly while code runs from the QSPI flash. After such a hang the
+ debugger only connects under reset
+ (``reset_config srst_only srst_nogate connect_assert_srst``).
+
+pm
+--
+
+NSH with the power management (``CONFIG_PM``, activity governor) and the
+RTC. After a few seconds without activity the governor selects
+``PM_STANDBY``, which is the deep-sleep mode of the GD32W51x: the core and
+bus clocks stop, the SRAM and the registers keep their contents. The chip
+wakes up on any EXTI interrupt and on the RTC wake-up timer every
+``CONFIG_GD32W51X_PM_WAKEUP_MS`` (1 s), sets the PLL up again and corrects
+the system time with the time spent asleep, read from the RTC with its
+sub-second counter. Timers may run late by up to that period while the
+board sleeps, and a character received while the board sleeps is lost:
+press Enter until NSH answers, then the console activity keeps the board
+awake. The debugger connection is kept in deep-sleep, so a sleeping board
+can still be programmed.
+
+::
+
+ nsh> cat /proc/pm/state0
+ DOMAIN0 WAKE SLEEP TOTAL
+ normal 20s 17% 1s 0% 21s 18%
+ idle 15s 13% 0s 0% 15s 13%
+ standby 76s 67% 0s 0% 76s 67%
+ sleep 0s 0% 0s 0% 0s 0%
diff --git
a/content/docs/latest/_sources/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.rst.txt
b/content/docs/latest/_sources/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.rst.txt
index 8d8a4397ee..8208ea29cf 100644
---
a/content/docs/latest/_sources/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.rst.txt
@@ -424,6 +424,38 @@ the next boot format it again::
Erase only the progmem region. The NVDS lives immediately above it, at
0x083fb000, and holds the BLE bonding data.
+pm
+--
+
+NSH with the power management (``CONFIG_PM``, activity governor) and the
+RTC. After a few seconds without activity the governor selects
+``PM_STANDBY``, which is the deep-sleep mode of the GD32VW55x: the core and
+bus clocks stop, the SRAM and the registers keep their contents. The RTC
+wake-up timer ends the deep-sleep at the next system timer event, at most
+``CONFIG_GD32VW55X_PM_WAKEUP_MS`` (1 s) later, and so does any EXTI
+interrupt. On the way out the PLL is set up again and the system timer is
+advanced by the time spent asleep, measured on the RTC calendar. The
+system time then follows the IRC32K while the board sleeps (within about
+0.1 percent here, the board has no 32.768 kHz crystal), and the timers keep
+their time. A character received while the board sleeps is lost: press
+Enter until NSH answers, then the console activity keeps the board awake.
+The radios are not supported in deep-sleep.
+
+::
+
+ nsh> cat /proc/pm/state0
+ DOMAIN0 WAKE SLEEP TOTAL
+ normal 18s 10% 9s 5% 27s 15%
+ idle 9s 5% 0s 0% 9s 5%
+ standby 134s 78% 0s 0% 134s 78%
+ sleep 0s 0% 0s 0% 0s 0%
+
+.. note::
+ The debug module does not answer while the core is in deep-sleep, so
+ OpenOCD fails to examine a sleeping board. Keep the board awake by
+ pressing Enter on the console (or by sending characters in a loop) while
+ it is programmed, or press RESET right before.
+
sta_softap
----------
diff --git
a/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
b/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
index bd95687eef..ed97b15195 100644
---
a/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
+++
b/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
@@ -108,9 +108,7 @@ To run it with QEMU, use the following command::
-device virtio-blk-device,bus=virtio-mmio-bus.0,drive=userdata \
-bios none -kernel nuttx -nographic
-To run the CI scripts, use the following command::
-
- $ ./nuttx/boards/risc-v/qemu-rv/rv-virt/configs/citest/run
+To run the CI tests of this configuration locally, see :doc:`NTFC
</testing/ntfc>`.
citest64
--------
diff --git
a/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
b/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
index ff1de01456..f23d8c482c 100644
--- a/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/sim/sim/boards/sim/index.rst.txt
@@ -1815,6 +1815,18 @@ since there are some compatibility issues. By default
SIM will be blocked at
startup to wait client connection, if a client connected, then the fb example
will launch.
+watchdog
+--------
+
+This configuration enables ``CONFIG_WATCHDOG_WDOG``, a watchdog timer
+registered at ``CONFIG_WATCHDOG_DEVPATH``. The simulator cannot reset itself,
+so the watchdog powers it off when it expires, with status 77
+(``CONFIG_WATCHDOG_WDOG_STATUS``). It enables the ``wdog`` example: it feeds
+the watchdog for a while, stops, and the simulator exits with that status when
+the timeout expires::
+
+ nsh> wdog
+
vpnkit
------
diff --git a/content/docs/latest/_sources/reference/user/10_filesystem.rst.txt
b/content/docs/latest/_sources/reference/user/10_filesystem.rst.txt
index 2eb42f0895..73208a50dd 100644
--- a/content/docs/latest/_sources/reference/user/10_filesystem.rst.txt
+++ b/content/docs/latest/_sources/reference/user/10_filesystem.rst.txt
@@ -351,6 +351,31 @@ However, the following may also be considered as file
system interfaces:
.. c:function:: int mktemp(FAR char *template);
.. c:function:: int mkstemp(FAR char *template);
+Pathname Pattern Matching (``glob.h``)
+--------------------------------------
+
+.. code-block:: c
+
+ #include <glob.h>
+
+ int glob(FAR const char *pattern, int flags,
+ CODE int (*errfunc)(FAR const char *epath, int eerrno),
+ FAR glob_t *pglob);
+ void globfree(FAR glob_t *pglob);
+
+``glob()`` finds the pathnames that match ``pattern`` (the rules of
+``fnmatch()``) and puts them in ``pglob->gl_pathv``. The POSIX flags are
+``GLOB_APPEND``, ``GLOB_DOOFFS``, ``GLOB_ERR``, ``GLOB_MARK``,
+``GLOB_NOCHECK``, ``GLOB_NOESCAPE`` and ``GLOB_NOSORT``. Two extensions of
+other C libraries are also available:
+
+- ``GLOB_TILDE``: a ``~`` at the start of the pattern is the home directory
+ (``HOME``, else the home directory of the user in the password database),
+ and ``~name`` is the home directory of the user ``name``. When the home
+ directory is not known, the pattern is used as it is.
+- ``GLOB_TILDE_CHECK``: the same, but ``glob()`` returns ``GLOB_NOMATCH`` when
+ the home directory is not known.
+
Asynchronous I/O
----------------
diff --git a/content/docs/latest/_sources/reference/user/11_network.rst.txt
b/content/docs/latest/_sources/reference/user/11_network.rst.txt
index fcee9069cf..09341c09e2 100644
--- a/content/docs/latest/_sources/reference/user/11_network.rst.txt
+++ b/content/docs/latest/_sources/reference/user/11_network.rst.txt
@@ -622,3 +622,26 @@ name servers, timeouts and retries as the DNS client.
``dn_comp()``,
:return: The size of the name in bytes on success; -1 if the name is not
valid or does not end before ``end``.
+
+Resolver Error Messages (``netdb.h``)
+-------------------------------------
+
+``gethostbyname()``, ``gethostbyaddr()`` and :c:func:`res_query` give their
+errors in ``h_errno``. These functions give the message for an ``h_errno``
+value. They are available with ``CONFIG_LIBC_NETDB``.
+
+ - :c:func:`hstrerror`
+ - :c:func:`herror`
+
+.. c:function:: const char *hstrerror(int errnum);
+
+ Give the message for ``errnum``: ``HOST_NOT_FOUND``, ``NO_DATA``,
+ ``NO_RECOVERY`` or ``TRY_AGAIN``. Other values give "Unknown resolver
+ error".
+
+ :return: A constant string, never ``NULL``.
+
+.. c:function:: void herror(const char *s);
+
+ Write the message for the current ``h_errno`` to ``stderr``. When ``s`` is
+ not ``NULL`` and not empty, the line starts with ``s`` and ``": "``.
diff --git a/content/docs/latest/_sources/testing/ntfc.rst.txt
b/content/docs/latest/_sources/testing/ntfc.rst.txt
index 3e4d84c8b6..f7feebb0d3 100644
--- a/content/docs/latest/_sources/testing/ntfc.rst.txt
+++ b/content/docs/latest/_sources/testing/ntfc.rst.txt
@@ -39,7 +39,7 @@ case versions currently used by NuttX CI:
$ python3 -m venv ../ntfc-venv
$ . ../ntfc-venv/bin/activate
- $ python -m pip install ntfc==0.0.1
+ $ python -m pip install ntfc==0.0.3
$ git clone --branch release-0.0.2 --depth 1 \
https://github.com/apache/nuttx-ntfc-testing ../nuttx-ntfc-testing
diff --git a/content/docs/latest/components/drivers/special/sensors/shtc3.html
b/content/docs/latest/components/drivers/special/sensors/shtc3.html
new file mode 100644
index 0000000000..8c50697b91
--- /dev/null
+++ b/content/docs/latest/components/drivers/special/sensors/shtc3.html
@@ -0,0 +1,5 @@
+<!-- SPDX-License-Identifier: Apache-2.0 -->
+<html><head>
+<script>location.replace("../../../../os/drivers/special/sensors/shtc3.html" +
location.hash);</script>
+<meta http-equiv="refresh" content="0;
url=../../../../os/drivers/special/sensors/shtc3.html">
+</head></html>
diff --git a/content/docs/latest/genindex.html
b/content/docs/latest/genindex.html
index 63bbe0308b..a03a49f9ef 100644
--- a/content/docs/latest/genindex.html
+++ b/content/docs/latest/genindex.html
@@ -610,6 +610,8 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="glossary.html#term-HCD"><strong>HCD</strong></a>
+</li>
+ <li><a href="reference/user/11_network.html#c.herror">herror (C
function)</a>
</li>
<li><a href="os/time/time_clock.html#c.hrtimer_cancel">hrtimer_cancel (C
function)</a>
</li>
@@ -626,6 +628,8 @@
<li><a href="os/time/time_clock.html#c.hrtimer_start">hrtimer_start (C
function)</a>
</li>
<li><a href="glossary.html#term-HSMCI"><strong>HSMCI</strong></a>
+</li>
+ <li><a href="reference/user/11_network.html#c.hstrerror">hstrerror (C
function)</a>
</li>
</ul></td>
</tr></table>
diff --git a/content/docs/latest/guides/concurrency/zerolatencyinterrupts.html
b/content/docs/latest/guides/concurrency/zerolatencyinterrupts.html
index ef7dec5e60..b9e91e9e8f 100644
--- a/content/docs/latest/guides/concurrency/zerolatencyinterrupts.html
+++ b/content/docs/latest/guides/concurrency/zerolatencyinterrupts.html
@@ -185,6 +185,11 @@
<li class="toctree-l4"><a class="reference internal"
href="#example-code">Example Code</a></li>
</ul>
</li>
+<li class="toctree-l3"><a class="reference internal"
href="#avr-da-db-implementation">AVR DA/DB implementation</a><ul>
+<li class="toctree-l4"><a class="reference internal"
href="#avr-da-db-configuration-options">AVR DA/DB Configuration Options</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="#non-default-interrupt-handling">Non-default interrupt handling</a></li>
+</ul>
+</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal"
href="../programs/fully_linked_elf.html">ELF Programs – No Symbol
Tables</a></li>
@@ -510,6 +515,40 @@ driver.</p></li>
</ul>
</section>
</section>
+<section id="avr-da-db-implementation">
+<h2>AVR DA/DB implementation<a class="headerlink"
href="#avr-da-db-implementation" title="Permalink to this heading"></a></h2>
+<p>Implementation of high priority interrupts allows the user to bypass the
generic
+interrupt handling. There is, however, no mechanism described in the “Getting
Back
+into the Game” section.</p>
+<p>This AVR family only has one interrupt vector that can be declared as
high-priority.
+Nevertheless, you can disable the generic handler for multiple vectors - they
will
+execute with regular priority though.</p>
+<section id="avr-da-db-configuration-options">
+<h3>AVR DA/DB Configuration Options<a class="headerlink"
href="#avr-da-db-configuration-options" title="Permalink to this
heading"></a></h3>
+<p>High priority interrupts are enabled in
+<span class="menuselection">System type ‣ Enable high priority
interrupts</span></p>
+<p>Enabling this option allows fine-grained selection of interrupt handlers
+which should have their default implementation disabled.</p>
+<p>Interrupt handlers that relate to hardware controlled by drivers must
+not be overridden this way.</p>
+</section>
+<section id="non-default-interrupt-handling">
+<h3>Non-default interrupt handling<a class="headerlink"
href="#non-default-interrupt-handling" title="Permalink to this
heading"></a></h3>
+<p>With GCC, interrupt handler is defined using the following code:</p>
+<div class="highlight-c notranslate"><div
class="highlight"><pre><span></span><span class="kt">void</span><span
class="w"> </span><span class="nf">__vector_avrdx_usart2_dre</span><span
class="w"> </span><span class="p">(</span><span class="kt">void</span><span
class="p">)</span><span class="w"> </span>\
+<span class="w"> </span><span class="n">__attribute__</span><span
class="w"> </span><span class="p">((</span><span
class="n">__signal__</span><span class="p">,</span><span
class="n">__used__</span><span class="p">,</span><span class="w"> </span><span
class="n">__externally_visible__</span><span class="p">));</span>
+<span class="kt">void</span><span class="w"> </span><span
class="nf">__vector_avrdx_usart2_dre</span><span class="w"> </span><span
class="p">(</span><span class="kt">void</span><span class="p">)</span>
+<span class="p">{</span>
+<span class="w"> </span><span class="cm">/* your implementation */</span>
+<span class="p">}</span>
+</pre></div>
+</div>
+<p>The compiled code will preserve contents of all registers (not just
call-preserved ones
+like in regular functions) and return using <code class="docutils literal
notranslate"><span class="pre">reti</span></code> (return from interrupt)
instruction.</p>
+<p>The function name always corresponds to interrupt name as specified in
datasheet
+for the chip in question.</p>
+</section>
+</section>
</section>
diff --git a/content/docs/latest/guides/porting/port_bootsequence.html
b/content/docs/latest/guides/porting/port_bootsequence.html
index e64a702065..543c1e7c12 100644
--- a/content/docs/latest/guides/porting/port_bootsequence.html
+++ b/content/docs/latest/guides/porting/port_bootsequence.html
@@ -151,7 +151,13 @@
<li class="toctree-l2"><a class="reference internal"
href="../build/platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal"
href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal"
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2"><a class="reference internal" href="port.html">How to
port</a></li>
+<li class="toctree-l2 current"><a class="reference internal"
href="port.html">How to port</a><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal"
href="#">The diagram of boot sequence</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port_relatedkernelconfigrations.html">The list of related kernel
configurations</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-procedure">Porting procedure</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-case-studies">Porting Case Studies</a></li>
+</ul>
+</li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">The diagram of boot sequence</a></li>
<li class="toctree-l2"><a class="reference internal"
href="port_relatedkernelconfigrations.html">The list of related kernel
configurations</a></li>
<li class="toctree-l2"><a class="reference internal"
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff
in NuttX header files?</a></li>
diff --git
a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
index 107389719a..d718a3e872 100644
--- a/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
+++ b/content/docs/latest/guides/porting/port_relatedkernelconfigrations.html
@@ -151,7 +151,13 @@
<li class="toctree-l2"><a class="reference internal"
href="../build/platform_directories.html">Platform Directories</a></li>
<li class="toctree-l2"><a class="reference internal"
href="customboards.html">Custom Boards How-To</a></li>
<li class="toctree-l2"><a class="reference internal"
href="include_files_board_h.html">Including Files in board.h</a></li>
-<li class="toctree-l2"><a class="reference internal" href="port.html">How to
port</a></li>
+<li class="toctree-l2 current"><a class="reference internal"
href="port.html">How to port</a><ul class="current">
+<li class="toctree-l3"><a class="reference internal"
href="port_bootsequence.html">The diagram of boot sequence</a></li>
+<li class="toctree-l3 current"><a class="current reference internal"
href="#">The list of related kernel configurations</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-procedure">Porting procedure</a></li>
+<li class="toctree-l3"><a class="reference internal"
href="port.html#porting-case-studies">Porting Case Studies</a></li>
+</ul>
+</li>
<li class="toctree-l2"><a class="reference internal"
href="port_bootsequence.html">The diagram of boot sequence</a></li>
<li class="toctree-l2 current"><a class="current reference internal"
href="#">The list of related kernel configurations</a></li>
<li class="toctree-l2"><a class="reference internal"
href="specialstuff_in_nuttxheaderfiles.html">Why can’t I put my special stuff
in NuttX header files?</a></li>
diff --git a/content/docs/latest/guides/programs/fully_linked_elf.html
b/content/docs/latest/guides/programs/fully_linked_elf.html
index 0b79ad268a..1139d4f2a6 100644
--- a/content/docs/latest/guides/programs/fully_linked_elf.html
+++ b/content/docs/latest/guides/programs/fully_linked_elf.html
@@ -488,7 +488,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="d1ba21ba-1e00-44c2-b316-1f87949ef1d5"
name="d1ba21ba-1e00-44c2-b316-1f87949ef1d5" type="checkbox"><label
class="sphinx_collapse__label" for="d1ba21ba-1e00-44c2-b316-1f87949ef1d5"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="5b0c8609-1a4e-4bda-a2fe-b83f8b4ff037"
name="5b0c8609-1a4e-4bda-a2fe-b83f8b4ff037" type="checkbox"><label
class="sphinx_collapse__label" for="5b0c8609-1a4e-4bda-a2fe-b83f8b4ff037"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/guides/programs/partially_linked_elf.html
b/content/docs/latest/guides/programs/partially_linked_elf.html
index 097c20f631..e1237edb0b 100644
--- a/content/docs/latest/guides/programs/partially_linked_elf.html
+++ b/content/docs/latest/guides/programs/partially_linked_elf.html
@@ -514,7 +514,7 @@ NuttX package: <code class="docutils literal
notranslate"><span class="pre">nutt
<div
class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version
admonition">
<p class="admonition-title">Here is an alternative minimal (and possibly
outdated) version</p>
<div class="sphinx_collapse docutils">
-<input class="sphinx_collapse__input"
id="d80b9d39-0a60-4617-aa7a-fd8f7b04e8a6"
name="d80b9d39-0a60-4617-aa7a-fd8f7b04e8a6" type="checkbox"><label
class="sphinx_collapse__label" for="d80b9d39-0a60-4617-aa7a-fd8f7b04e8a6"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
+<input class="sphinx_collapse__input"
id="2fc9afb4-907a-49f8-b4cd-fde3b3cbd4e5"
name="2fc9afb4-907a-49f8-b4cd-fde3b3cbd4e5" type="checkbox"><label
class="sphinx_collapse__label" for="2fc9afb4-907a-49f8-b4cd-fde3b3cbd4e5"><i
class="sphinx_collapse__icon"></i>Show content:</label><div
class="sphinx_collapse__content docutils">
<div class="highlight-text notranslate"><div
class="highlight"><pre><span></span>SECTIONS
{
.text 0x00000000 :
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index c6aa496496..e3484e3222 100644
Binary files a/content/docs/latest/objects.inv and
b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/os/drivers/character/timers/index.html
b/content/docs/latest/os/drivers/character/timers/index.html
index 8f68554b45..4a27778894 100644
--- a/content/docs/latest/os/drivers/character/timers/index.html
+++ b/content/docs/latest/os/drivers/character/timers/index.html
@@ -244,6 +244,7 @@
<li class="toctree-l2"><a class="reference internal"
href="watchdog.html#watchdog-timer-example">Watchdog Timer Example</a></li>
<li class="toctree-l2"><a class="reference internal"
href="watchdog.html#application-level-interface">Application Level
Interface</a></li>
<li class="toctree-l2"><a class="reference internal"
href="watchdog.html#enable-built-in-system-monitoring-to-reset-the-watchdog">Enable
Built in System Monitoring to reset the watchdog</a></li>
+<li class="toctree-l2"><a class="reference internal"
href="watchdog.html#software-watchdog-implementation-watchdog-wdog">Software
Watchdog Implementation (watchdog_wdog)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rtc.html">RTC
Drivers</a></li>
diff --git a/content/docs/latest/os/drivers/character/timers/watchdog.html
b/content/docs/latest/os/drivers/character/timers/watchdog.html
index 2306a73bf7..161c8aae7d 100644
--- a/content/docs/latest/os/drivers/character/timers/watchdog.html
+++ b/content/docs/latest/os/drivers/character/timers/watchdog.html
@@ -475,6 +475,36 @@ these options.</p>
</li>
</ol>
</section>
+<section id="software-watchdog-implementation-watchdog-wdog">
+<h2>Software Watchdog Implementation (watchdog_wdog)<a class="headerlink"
href="#software-watchdog-implementation-watchdog-wdog" title="Permalink to this
heading"></a></h2>
+<p>The <code class="docutils literal notranslate"><span
class="pre">CONFIG_WATCHDOG_WDOG</span></code> option provides a watchdog
“lower half” built on
+the NuttX internal wdog timers, for the platforms that have no watchdog
+hardware, such as the simulator. It is the watchdog counterpart of
+<code class="docutils literal notranslate"><span
class="pre">timer_wdog</span></code>. Like any watchdog it expires if it is not
fed within its
+timeout, but since there is no hardware to reset the system, it does what
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_WATCHDOG_WDOG_ACTION</span></code> selects: panic, reboot
(<code class="docutils literal notranslate"><span
class="pre">board_reset()</span></code>) or
+power off (<code class="docutils literal notranslate"><span
class="pre">board_power_off()</span></code>). With the last two, <code
class="docutils literal notranslate"><span
class="pre">CONFIG_WATCHDOG_WDOG_STATUS</span></code>
+is the status given to the board.</p>
+<p>Because it relies on the system tick, it can not detect a system where the
tick
+stopped. It is not the same as <code class="docutils literal
notranslate"><span
class="pre">CONFIG_WATCHDOG_AUTOMONITOR_BY_WDOG</span></code>, where a
+wdog feeds a real watchdog, and it is not available with the oneshot and timer
+auto-monitors.</p>
+<p>Call <code class="docutils literal notranslate"><span
class="pre">watchdog_wdog_initialize()</span></code> from the board
initialization code to
+register it. The initial timeout is <code class="docutils literal
notranslate"><span class="pre">CONFIG_WATCHDOG_WDOG_TIMEOUT</span></code>:</p>
+<div class="highlight-c notranslate"><div
class="highlight"><pre><span></span><span class="cp">#include</span><span
class="w"> </span><span class="cpf"><nuttx/timers/watchdog_wdog.h></span>
+
+<span class="cp">#ifdef CONFIG_WATCHDOG_WDOG</span>
+<span class="w"> </span><span class="n">ret</span><span class="w">
</span><span class="o">=</span><span class="w"> </span><span
class="n">watchdog_wdog_initialize</span><span class="p">(</span><span
class="n">CONFIG_WATCHDOG_DEVPATH</span><span class="p">);</span>
+<span class="w"> </span><span class="k">if</span><span class="w">
</span><span class="p">(</span><span class="n">ret</span><span class="w">
</span><span class="o"><</span><span class="w"> </span><span
class="mi">0</span><span class="p">)</span>
+<span class="w"> </span><span class="p">{</span>
+<span class="w"> </span><span class="n">syslog</span><span
class="p">(</span><span class="n">LOG_ERR</span><span class="p">,</span><span
class="w"> </span><span class="s">"ERROR: watchdog_wdog_initialize failed:
%d</span><span class="se">\n</span><span class="s">"</span><span
class="p">,</span><span class="w"> </span><span class="n">ret</span><span
class="p">);</span>
+<span class="w"> </span><span class="p">}</span>
+<span class="cp">#endif</span>
+</pre></div>
+</div>
+<p>The simulator uses it, see the <code class="docutils literal
notranslate"><span class="pre">watchdog</span></code> configuration of the
+<a class="reference internal"
href="../../../../platforms/sim/sim/boards/sim/index.html"><span
class="doc">sim</span></a>.</p>
+</section>
</section>
diff --git a/content/docs/latest/os/drivers/special/sensors/sensors_uorb.html
b/content/docs/latest/os/drivers/special/sensors/sensors_uorb.html
index 15ed03a203..66140303fc 100644
--- a/content/docs/latest/os/drivers/special/sensors/sensors_uorb.html
+++ b/content/docs/latest/os/drivers/special/sensors/sensors_uorb.html
@@ -696,6 +696,7 @@ based on the sampling rate.</p>
<li><p><a class="reference internal" href="nau7802.html"><span
class="doc">NAU7802</span></a></p></li>
<li><p><a class="reference internal" href="qmi8658.html"><span
class="doc">QMI8658</span></a></p></li>
<li><p><a class="reference internal" href="sht4x.html"><span
class="doc">SHT4X</span></a></p></li>
+<li><p><a class="reference internal" href="shtc3.html"><span
class="doc">Sensirion SHTC3 Sensor Driver</span></a></p></li>
<li><p><a class="reference internal" href="tc74.html"><span
class="doc">TC74</span></a></p></li>
<li><p><a class="reference internal" href="tmp112.html"><span
class="doc">TMP112</span></a></p></li>
<li><p><a class="reference internal" href="lsm6dso32.html"><span
class="doc">LSM6DSO32</span></a></p></li>
diff --git a/content/docs/latest/os/drivers/special/sensors/sht4x.html
b/content/docs/latest/os/drivers/special/sensors/sht4x.html
index 472f83e8da..1b7cff9b9c 100644
--- a/content/docs/latest/os/drivers/special/sensors/sht4x.html
+++ b/content/docs/latest/os/drivers/special/sensors/sht4x.html
@@ -46,7 +46,7 @@
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../../genindex.html" />
<link rel="search" title="Search" href="../../../../search.html" />
- <link rel="next" title="TC74" href="tc74.html" />
+ <link rel="next" title="Sensirion SHTC3 Sensor Driver" href="shtc3.html" />
<link rel="prev" title="SCL3300" href="scl3300.html" />
</head>
@@ -290,7 +290,7 @@ precision.</p>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
<a href="scl3300.html" class="btn btn-neutral float-left"
title="SCL3300" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"
aria-hidden="true"></span> Previous</a>
- <a href="tc74.html" class="btn btn-neutral float-right" title="TC74"
accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"
aria-hidden="true"></span></a>
+ <a href="shtc3.html" class="btn btn-neutral float-right"
title="Sensirion SHTC3 Sensor Driver" accesskey="n" rel="next">Next <span
class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/content/docs/latest/os/drivers/special/sensors/tc74.html
b/content/docs/latest/os/drivers/special/sensors/shtc3.html
similarity index 74%
copy from content/docs/latest/os/drivers/special/sensors/tc74.html
copy to content/docs/latest/os/drivers/special/sensors/shtc3.html
index 599df15f77..e5191af820 100644
--- a/content/docs/latest/os/drivers/special/sensors/tc74.html
+++ b/content/docs/latest/os/drivers/special/sensors/shtc3.html
@@ -25,7 +25,7 @@
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19:
https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>TC74 — NuttX latest documentation</title>
+ <title>Sensirion SHTC3 Sensor Driver — NuttX latest
documentation</title>
<link rel="stylesheet" type="text/css"
href="../../../../_static/pygments.css" />
<link rel="stylesheet" type="text/css"
href="../../../../_static/css/theme.css" />
<link rel="stylesheet" type="text/css"
href="../../../../_static/copybutton.css" />
@@ -46,7 +46,7 @@
<script src="../../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../../genindex.html" />
<link rel="search" title="Search" href="../../../../search.html" />
- <link rel="next" title="TMP112" href="tmp112.html" />
+ <link rel="next" title="TC74" href="tc74.html" />
<link rel="prev" title="SHT4X" href="sht4x.html" />
</head>
@@ -196,9 +196,9 @@
<li class="breadcrumb-item"><a href="../../index.html">Device
Drivers</a></li>
<li class="breadcrumb-item"><a href="../index.html">Specialized
Device Drivers</a></li>
<li class="breadcrumb-item"><a href="../sensors.html">Sensor
Drivers</a></li>
- <li class="breadcrumb-item active">TC74</li>
+ <li class="breadcrumb-item active">Sensirion SHTC3 Sensor Driver</li>
<li class="wy-breadcrumbs-aside">
- <a
href="https://github.com/apache/nuttx/blob/master/Documentation/os/drivers/special/sensors/tc74.rst"
class="fa fa-github"> Edit on GitHub</a>
+ <a
href="https://github.com/apache/nuttx/blob/master/Documentation/os/drivers/special/sensors/shtc3.rst"
class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
@@ -206,40 +206,17 @@
<div role="main" class="document" itemscope="itemscope"
itemtype="http://schema.org/Article">
<div itemprop="articleBody">
- <section id="tc74">
-<h1>TC74<a class="headerlink" href="#tc74" title="Permalink to this
heading"></a></h1>
-<p>The TC74 is a Microchip serial digital thermal sensor, specified from
--40°C to +125°C, with an eight-bit reading of 1°C a count. Factory-programmed
-I2C addresses range from 0x48 through 0x4f (suffixes A0 through A7), allowing
-up to eight parts on the same bus.</p>
-<p>This driver uses the <a class="reference internal"
href="sensors_uorb.html"><span class="doc">uorb</span></a> interface, so the
reading
-appears as a topic the common sensor tools can read.</p>
-<section id="application-programming-interface">
-<h2>Application Programming Interface<a class="headerlink"
href="#application-programming-interface" title="Permalink to this
heading"></a></h2>
-<p>The header file for the TC74 driver interface can be included using:</p>
-<div class="highlight-c notranslate"><div
class="highlight"><pre><span></span><span class="cp">#include</span><span
class="w"> </span><span class="cpf"><nuttx/sensors/tc74.h></span>
-</pre></div>
-</div>
-<p>Registering the driver creates one topic, <code class="docutils literal
notranslate"><span class="pre">sensor_temp<n></span></code>, where <code
class="docutils literal notranslate"><span class="pre">n</span></code> is
-the <code class="docutils literal notranslate"><span
class="pre">devno</span></code> passed in:</p>
-<div class="highlight-c notranslate"><div
class="highlight"><pre><span></span><span class="kt">int</span><span class="w">
</span><span class="nf">tc74_register</span><span class="p">(</span><span
class="kt">int</span><span class="w"> </span><span class="n">devno</span><span
class="p">,</span><span class="w"> </span><span class="n">FAR</span><span
class="w"> </span><span class="k">struct</span><span class="w"> </span><span
class="nc">i2c_master_s</span><span class="w"> </span><span class= [...]
-</pre></div>
-</div>
-<p>For example, a part with address 0x4d (TC74A5) on I2C bus 0, published as
-<code class="docutils literal notranslate"><span
class="pre">sensor_temp0</span></code>:</p>
-<div class="highlight-c notranslate"><div
class="highlight"><pre><span></span><span class="n">FAR</span><span class="w">
</span><span class="k">struct</span><span class="w"> </span><span
class="nc">i2c_master_s</span><span class="w"> </span><span
class="o">*</span><span class="n">i2c</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span
class="n">board_i2cbus_initialize</span><span class="p">(</span><span
class="mi">0</span><span class="p">);</span>
-
-<span class="n">tc74_register</span><span class="p">(</span><span
class="mi">0</span><span class="p">,</span><span class="w"> </span><span
class="n">i2c</span><span class="p">,</span><span class="w"> </span><span
class="n">TC74_ADDR_A5</span><span class="p">);</span>
-</pre></div>
-</div>
-</section>
-<section id="reading">
-<h2>Reading<a class="headerlink" href="#reading" title="Permalink to this
heading"></a></h2>
-<p>The driver polls on the low priority work queue at whatever interval a
-consumer asks for. When activated (for example when an application subscribes
-to the sensor topic), the driver wakes the part up from standby mode. When
-deactivated (when all subscribers close the topic), it places the part back
-into low-power standby mode to save energy.</p>
+ <section id="sensirion-shtc3-sensor-driver">
+<h1>Sensirion SHTC3 Sensor Driver<a class="headerlink"
href="#sensirion-shtc3-sensor-driver" title="Permalink to this
heading"></a></h1>
+<p>This driver provides support for the Sensirion SHTC3 temperature and
humidity sensor
+using the uORB sensor framework.</p>
+<p>It provides two uORB topics:
+- <code class="docutils literal notranslate"><span
class="pre">SENSOR_TYPE_AMBIENT_TEMPERATURE</span></code>
+- <code class="docutils literal notranslate"><span
class="pre">SENSOR_TYPE_RELATIVE_HUMIDITY</span></code></p>
+<section id="configuration">
+<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink
to this heading"></a></h2>
+<p>To enable the driver, select <code class="docutils literal
notranslate"><span class="pre">CONFIG_SENSORS_SHTC3=y</span></code> in your
board configuration.
+You can configure the I2C frequency via <code class="docutils literal
notranslate"><span class="pre">CONFIG_SHTC3_I2C_FREQUENCY</span></code>
(default is 400kHz).</p>
</section>
</section>
@@ -248,7 +225,7 @@ into low-power standby mode to save energy.</p>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
<a href="sht4x.html" class="btn btn-neutral float-left" title="SHT4X"
accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"
aria-hidden="true"></span> Previous</a>
- <a href="tmp112.html" class="btn btn-neutral float-right"
title="TMP112" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
+ <a href="tc74.html" class="btn btn-neutral float-right" title="TC74"
accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"
aria-hidden="true"></span></a>
</div>
<hr/>
diff --git a/content/docs/latest/os/drivers/special/sensors/tc74.html
b/content/docs/latest/os/drivers/special/sensors/tc74.html
index 599df15f77..abc6e8b64e 100644
--- a/content/docs/latest/os/drivers/special/sensors/tc74.html
+++ b/content/docs/latest/os/drivers/special/sensors/tc74.html
@@ -47,7 +47,7 @@
<link rel="index" title="Index" href="../../../../genindex.html" />
<link rel="search" title="Search" href="../../../../search.html" />
<link rel="next" title="TMP112" href="tmp112.html" />
- <link rel="prev" title="SHT4X" href="sht4x.html" />
+ <link rel="prev" title="Sensirion SHTC3 Sensor Driver" href="shtc3.html"
/>
</head>
<body class="wy-body-for-nav">
@@ -247,7 +247,7 @@ into low-power standby mode to save energy.</p>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation"
aria-label="Footer">
- <a href="sht4x.html" class="btn btn-neutral float-left" title="SHT4X"
accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"
aria-hidden="true"></span> Previous</a>
+ <a href="shtc3.html" class="btn btn-neutral float-left"
title="Sensirion SHTC3 Sensor Driver" accesskey="p" rel="prev"><span class="fa
fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="tmp112.html" class="btn btn-neutral float-right"
title="TMP112" accesskey="n" rel="next">Next <span class="fa
fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
diff --git a/content/docs/latest/os/scheduling/user_identity.html
b/content/docs/latest/os/scheduling/user_identity.html
index 900537ffb2..6a2d0e24d2 100644
--- a/content/docs/latest/os/scheduling/user_identity.html
+++ b/content/docs/latest/os/scheduling/user_identity.html
@@ -292,10 +292,10 @@ the saved ID. Otherwise the function returns <code
class="docutils literal notra
<p>These functions set the real and/or effective IDs in a single call. When the
effective ID is zero, any requested real and effective values may be assigned
and the saved set-ID is updated accordingly. When the effective ID is
-non-zero, each requested value must equal the current effective ID, saved
-set-ID, or (for the effective argument only) the real ID; otherwise the call
-returns <code class="docutils literal notranslate"><span
class="pre">-1</span></code> with <code class="docutils literal
notranslate"><span class="pre">errno</span></code> set to <code class="docutils
literal notranslate"><span class="pre">EPERM</span></code>. When the real ID is
changed,
-or the effective ID is changed to a value not equal to the real ID, the saved
+non-zero, each requested value must equal the current real, effective, or saved
+set-ID; otherwise the call returns <code class="docutils literal
notranslate"><span class="pre">-1</span></code> with <code class="docutils
literal notranslate"><span class="pre">errno</span></code> set to <code
class="docutils literal notranslate"><span class="pre">EPERM</span></code>.
+When the real ID is explicitly specified (its argument is not <code
class="docutils literal notranslate"><span class="pre">-1</span></code>), or the
+effective ID is explicitly set to a value not equal to the real ID, the saved
set-ID is set to the new effective ID.</p>
</section>
<section id="getresuid-and-getresgid">
diff --git
a/content/docs/latest/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.html
b/content/docs/latest/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.html
index 8bf91479ba..0524b0adce 100644
---
a/content/docs/latest/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.html
+++
b/content/docs/latest/platforms/arm/gd32w51x/boards/gd-xd-w515-eval/index.html
@@ -361,7 +361,7 @@ GigaDevice, 2023-05).</p>
</tr>
<tr class="row-even"><td><p>GD-Link VBUS</p></td>
<td><p>PC0 (mini-USB VBUS / 2)</p></td>
-<td><p>ADC channel 4 (unused)</p></td>
+<td><p>ADC channel 4 (*)</p></td>
</tr>
<tr class="row-odd"><td><p>Microphone</p></td>
<td><p>PA15 (MIC_OUT)</p></td>
@@ -381,8 +381,10 @@ GigaDevice, 2023-05).</p>
of the battery (PA2) and of the USB connector (PA3), each a 10 kOhm NTC
with a 10 kOhm pull-up to 3.3 V, and the battery current (PC2): an
INA181A1 (gain 20) on a 20 mOhm shunt with a 1.8 V offset, so
-<code class="docutils literal notranslate"><span class="pre">I</span> <span
class="pre">=</span> <span class="pre">(V</span> <span class="pre">-</span>
<span class="pre">1.8)</span> <span class="pre">/</span> <span
class="pre">0.4</span></code> A, negative while the battery charges. The battery
-voltage is only measured by the charger. PB2 is <code class="docutils literal
notranslate"><span class="pre">/dev/gpio3</span></code> when the
+<code class="docutils literal notranslate"><span class="pre">I</span> <span
class="pre">=</span> <span class="pre">(V</span> <span class="pre">-</span>
<span class="pre">1.8)</span> <span class="pre">/</span> <span
class="pre">0.4</span></code> A, negative while the battery charges. PC0 is the
+GD-Link USB supply through a 10 kOhm / 10 kOhm divider: about 2.5 V with
+the GD-Link cable plugged in, near 0 V without it. The battery voltage is
+only measured by the charger. PB2 is <code class="docutils literal
notranslate"><span class="pre">/dev/gpio3</span></code> when the
charger driver is disabled.</p>
</section>
<section id="fingerprint-sensor">
@@ -555,7 +557,8 @@ reboot:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span
class="pre">/data</span></code>: the last 128 KB of the internal flash (<code
class="docutils literal notranslate"><span
class="pre">/dev/gd32flash</span></code>).</p></li>
<li><p><code class="docutils literal notranslate"><span
class="pre">/flash</span></code>: the 16 MB QSPI NOR flash (<code
class="docutils literal notranslate"><span
class="pre">/dev/qspiflash</span></code>, GD25 driver in
-QSPI mode).</p></li>
+QSPI mode). Reads of 64 bytes or more go through DMA1 channel 0
+(<code class="docutils literal notranslate"><span
class="pre">CONFIG_GD32W51X_QSPI_DMA</span></code>): 256 KB in 60 ms instead of
80 ms.</p></li>
</ul>
<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> mount
/data type littlefs
@@ -566,6 +569,59 @@ nsh> cat /flash/hello.txt
hello
</pre></div>
</div>
+<p>With <code class="docutils literal notranslate"><span
class="pre">CONFIG_GD_XD_W515_EVAL_QSPI_MEMMAP</span></code> the QSPI flash is
not registered:
+it is mapped read-only at 0x90000000 (memory-mapped mode,
+<code class="docutils literal notranslate"><span
class="pre">gd32_qspi_enter_memorymapped()</span></code>), so that constant
data stored in it can
+be read in place.</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> xd 0x90000000 16
+Hex dump:
+0000: cc 00 00 00 f0 0f ff f7 6c 69 74 74 6c 65 66 73 ........littlefs
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span
class="pre">CONFIG_GD_XD_W515_EVAL_QSPI_XIP</span></code> adds code and
constant data run in place
+from the last MiB of the QSPI flash: functions and data marked
+<code class="docutils literal notranslate"><span
class="pre">locate_code(".qspixip")</span></code> and <code
class="docutils literal notranslate"><span
class="pre">locate_data(".qspixip")</span></code> go to the
+<code class="docutils literal notranslate"><span
class="pre">.qspixip</span></code> section. It is linked at 0x10f00000, which
the instruction
+cache remaps to the window (0x90f00000), and stored after the image in the
+internal flash: the board programs it to the QSPI flash at boot when it
+differs, so <code class="docutils literal notranslate"><span
class="pre">nuttx.bin</span></code> is still programmed as usual. A self-test
runs a
+CRC-32 function from the QSPI flash over a string read in place:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>QSPI XIP section programmed (176 bytes)
+QSPI XIP: code at 0x10f00001, data at 0x10f0002c: crc 21821ab6 OK
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>Code run from the window at 0x90000000 itself hangs the bus as soon as
+it also reads the window (its literal pool, its data); through the
+instruction cache remap both work. Nothing may access the window
+directly while code runs from the QSPI flash. After such a hang the
+debugger only connects under reset
+(<code class="docutils literal notranslate"><span
class="pre">reset_config</span> <span class="pre">srst_only</span> <span
class="pre">srst_nogate</span> <span
class="pre">connect_assert_srst</span></code>).</p>
+</div>
+</section>
+<section id="pm">
+<h3>pm<a class="headerlink" href="#pm" title="Permalink to this
heading"></a></h3>
+<p>NSH with the power management (<code class="docutils literal
notranslate"><span class="pre">CONFIG_PM</span></code>, activity governor) and
the
+RTC. After a few seconds without activity the governor selects
+<code class="docutils literal notranslate"><span
class="pre">PM_STANDBY</span></code>, which is the deep-sleep mode of the
GD32W51x: the core and
+bus clocks stop, the SRAM and the registers keep their contents. The chip
+wakes up on any EXTI interrupt and on the RTC wake-up timer every
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_GD32W51X_PM_WAKEUP_MS</span></code> (1 s), sets the PLL up
again and corrects
+the system time with the time spent asleep, read from the RTC with its
+sub-second counter. Timers may run late by up to that period while the
+board sleeps, and a character received while the board sleeps is lost:
+press Enter until NSH answers, then the console activity keeps the board
+awake. The debugger connection is kept in deep-sleep, so a sleeping board
+can still be programmed.</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> cat /proc/pm/state0
+DOMAIN0 WAKE SLEEP TOTAL
+normal 20s 17% 1s 0% 21s 18%
+idle 15s 13% 0s 0% 15s 13%
+standby 76s 67% 0s 0% 76s 67%
+sleep 0s 0% 0s 0% 0s 0%
+</pre></div>
+</div>
</section>
</section>
</section>
diff --git
a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
index 5fd76993ea..00df653238 100644
--- a/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
+++ b/content/docs/latest/platforms/arm/stm32c0/boards/nucleo-c071rb/index.html
@@ -162,28 +162,48 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
index 67698fd326..fae71de45b 100644
---
a/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
+++
b/content/docs/latest/platforms/arm/stm32f0/boards/stm32f051-discovery/index.html
@@ -162,28 +162,48 @@
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a><ul
class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#unknown">(unknown)</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm">arm</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#arm64">arm64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#avr">avr</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#hc">hc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#mips">mips</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#misoc">misoc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#or1k">or1k</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#renesas">renesas</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#risc-v">risc-v</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sim">sim</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#sparc">sparc</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tricore">tricore</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86">x86</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#x86-64">x86_64</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#xtensa">xtensa</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z16">z16</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#z80">z80</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
+<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
</ul>
</li>
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
index 16a9a4c7e6..0f01538df8 100644
--- a/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
+++ b/content/docs/latest/platforms/arm64/fvp-v8r/boards/fvp-armv8r/index.html
@@ -160,52 +160,57 @@
<li class="toctree-l2"><a class="reference internal"
href="../../../../z80/index.html">Z80</a></li>
<li class="toctree-l2 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html">Tags</a><ul class="current">
<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#architecture">Architecture</a></li>
-<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a></li>
-<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#families">Families</a></li>
-<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#parts">Parts</a><ul class="current">
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#atmega">atmega</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#cxd56xx">cxd56xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#esp32">esp32</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#fvp-v8r">fvp-v8r</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#ht32f491x3">ht32f491x3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imx9">imx9</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#imxrt">imxrt</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#n32h7">n32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf52">nrf52</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf53">nrf53</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#nrf91">nrf91</a></li>
-<li class="toctree-l5 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#qemu">qemu</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx">rp23xx</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#rp23xx-rv">rp23xx-rv</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c0">stm32c0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32c5">stm32c5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f0">stm32f0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f1">stm32f1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f2">stm32f2</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f3">stm32f3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f4">stm32f4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32f7">stm32f7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g0">stm32g0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32g4">stm32g4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h5">stm32h5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32h7">stm32h7</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l0">stm32l0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l1">stm32l1</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l4">stm32l4</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32l5">stm32l5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32n6">stm32n6</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u0">stm32u0</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u3">stm32u3</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32u5">stm32u5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wb">stm32wb</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#stm32wl5">stm32wl5</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#tiva">tiva</a></li>
-<li class="toctree-l5"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#zynq-mpsoc">zynq-mpsoc</a></li>
+<li class="toctree-l3 current"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#vendor">Vendor</a><ul class="current">
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-aifoundry.html">vendor:aifoundry (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-allwinner.html">vendor:allwinner (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-amd.html">vendor:amd (1)</a></li>
+<li class="toctree-l4 current"><a class="reference internal"
href="../../../../../_tags/vendor-arm.html">vendor:arm (5)</a><ul
class="current">
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/fvp-v8r-aarch32/boards/fvp-armv8r-aarch32/index.html">ARM
Armv8-R AEM FVP</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an500/index.html">MPS2 AN500
Board</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps2-an521/index.html">MPS2 AN521
Board</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="../../../../arm/mps/boards/mps3-an547/index.html">MPS3 AN547
Board</a></li>
+<li class="toctree-l5 current"><a class="current reference internal"
href="#">FVP ARMv8-r</a></li>
</ul>
</li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-artery.html">vendor:artery (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-bluetrum.html">vendor:bluetrum (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-bouffalolab.html">vendor:bouffalolab
(2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-broadcom.html">vendor:broadcom (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-canaan.html">vendor:canaan (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-espressif.html">vendor:espressif (35)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-eswin.html">vendor:eswin (3)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-example.html">vendor:example (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-gigadevice.html">vendor:gigadevice
(8)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-holtek.html">vendor:holtek (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-hpmicro.html">vendor:hpmicro (2)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-infineon.html">vendor:infineon (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ingenic.html">vendor:ingenic (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-maxim.html">vendor:maxim (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-microchip.html">vendor:microchip (46)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-moxa.html">vendor:moxa (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nations.html">vendor:nations (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nordic.html">vendor:nordic (17)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nuvoton.html">vendor:nuvoton (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-nxp.html">vendor:nxp (58)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-onsemi.html">vendor:onsemi (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-phyplus.html">vendor:phyplus (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-quicklogic.html">vendor:quicklogic
(1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-raspberry-pi.html">vendor:raspberry-pi
(18)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-realtek.html">vendor:realtek (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-renesas.html">vendor:renesas (7)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-rockchip.html">vendor:rockchip (4)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sifive.html">vendor:sifive (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-silabs.html">vendor:silabs (3)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sony.html">vendor:sony (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-sophgo.html">vendor:sophgo (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-st.html">vendor:st (114)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-starfive.html">vendor:starfive (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-thead.html">vendor:thead (1)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-ti.html">vendor:ti (10)</a></li>
+<li class="toctree-l4"><a class="reference internal"
href="../../../../../_tags/vendor-zilog.html">vendor:zilog (9)</a></li>
</ul>
</li>
+<li class="toctree-l3"><a class="reference internal"
href="../../../../../_tags/tagsindex.html#chip">Chip</a></li>
</ul>
</li>
</ul>
diff --git
a/content/docs/latest/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.html
b/content/docs/latest/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.html
index 3779d05552..2d66681f86 100644
---
a/content/docs/latest/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.html
+++
b/content/docs/latest/platforms/risc-v/gd32vw55x/boards/gd32vw553k-start/index.html
@@ -778,6 +778,37 @@ the next boot format it again:</p>
0x083fb000, and holds the BLE bonding data.</p>
</div>
</section>
+<section id="pm">
+<h3>pm<a class="headerlink" href="#pm" title="Permalink to this
heading"></a></h3>
+<p>NSH with the power management (<code class="docutils literal
notranslate"><span class="pre">CONFIG_PM</span></code>, activity governor) and
the
+RTC. After a few seconds without activity the governor selects
+<code class="docutils literal notranslate"><span
class="pre">PM_STANDBY</span></code>, which is the deep-sleep mode of the
GD32VW55x: the core and
+bus clocks stop, the SRAM and the registers keep their contents. The RTC
+wake-up timer ends the deep-sleep at the next system timer event, at most
+<code class="docutils literal notranslate"><span
class="pre">CONFIG_GD32VW55X_PM_WAKEUP_MS</span></code> (1 s) later, and so
does any EXTI
+interrupt. On the way out the PLL is set up again and the system timer is
+advanced by the time spent asleep, measured on the RTC calendar. The
+system time then follows the IRC32K while the board sleeps (within about
+0.1 percent here, the board has no 32.768 kHz crystal), and the timers keep
+their time. A character received while the board sleeps is lost: press
+Enter until NSH answers, then the console activity keeps the board awake.
+The radios are not supported in deep-sleep.</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> cat /proc/pm/state0
+DOMAIN0 WAKE SLEEP TOTAL
+normal 18s 10% 9s 5% 27s 15%
+idle 9s 5% 0s 0% 9s 5%
+standby 134s 78% 0s 0% 134s 78%
+sleep 0s 0% 0s 0% 0s 0%
+</pre></div>
+</div>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>The debug module does not answer while the core is in deep-sleep, so
+OpenOCD fails to examine a sleeping board. Keep the board awake by
+pressing Enter on the console (or by sending characters in a loop) while
+it is programmed, or press RESET right before.</p>
+</div>
+</section>
<section id="sta-softap">
<h3>sta_softap<a class="headerlink" href="#sta-softap" title="Permalink to
this heading"></a></h3>
<p>NSH plus the Wi-Fi softAP: the board becomes an access point and a DHCP
server.
diff --git
a/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
b/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
index 38fc6e1bf6..971b72bc96 100644
--- a/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
+++ b/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
@@ -337,10 +337,7 @@ testing on CI of 32-bit RISC-V using QEMU.</p>
-bios none -kernel nuttx -nographic
</pre></div>
</div>
-<p>To run the CI scripts, use the following command:</p>
-<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>$
./nuttx/boards/risc-v/qemu-rv/rv-virt/configs/citest/run
-</pre></div>
-</div>
+<p>To run the CI tests of this configuration locally, see <a class="reference
internal" href="../../../../../testing/ntfc.html"><span
class="doc">NTFC</span></a>.</p>
</section>
<section id="citest64">
<h3>citest64<a class="headerlink" href="#citest64" title="Permalink to this
heading"></a></h3>
diff --git a/content/docs/latest/platforms/sim/sim/boards/sim/index.html
b/content/docs/latest/platforms/sim/sim/boards/sim/index.html
index 2311b03c4c..3a58a27c31 100644
--- a/content/docs/latest/platforms/sim/sim/boards/sim/index.html
+++ b/content/docs/latest/platforms/sim/sim/boards/sim/index.html
@@ -1823,6 +1823,18 @@ since there are some compatibility issues. By default
SIM will be blocked at
startup to wait client connection, if a client connected, then the fb example
will launch.</p>
</section>
+<section id="watchdog">
+<h2>watchdog<a class="headerlink" href="#watchdog" title="Permalink to this
heading"></a></h2>
+<p>This configuration enables <code class="docutils literal notranslate"><span
class="pre">CONFIG_WATCHDOG_WDOG</span></code>, a watchdog timer
+registered at <code class="docutils literal notranslate"><span
class="pre">CONFIG_WATCHDOG_DEVPATH</span></code>. The simulator cannot reset
itself,
+so the watchdog powers it off when it expires, with status 77
+(<code class="docutils literal notranslate"><span
class="pre">CONFIG_WATCHDOG_WDOG_STATUS</span></code>). It enables the <code
class="docutils literal notranslate"><span class="pre">wdog</span></code>
example: it feeds
+the watchdog for a while, stops, and the simulator exits with that status when
+the timeout expires:</p>
+<div class="highlight-none notranslate"><div
class="highlight"><pre><span></span>nsh> wdog
+</pre></div>
+</div>
+</section>
<section id="vpnkit">
<h2>vpnkit<a class="headerlink" href="#vpnkit" title="Permalink to this
heading"></a></h2>
<p>This is a configuration with VPNKit support. See NETWORK-VPNKIT.txt.</p>
diff --git a/content/docs/latest/reference/user/10_filesystem.html
b/content/docs/latest/reference/user/10_filesystem.html
index 096fd9ec00..8a877824f4 100644
--- a/content/docs/latest/reference/user/10_filesystem.html
+++ b/content/docs/latest/reference/user/10_filesystem.html
@@ -165,6 +165,7 @@
<li class="toctree-l5"><a class="reference internal"
href="#unix-standard-operations-unistd-h">UNIX Standard Operations (<code
class="docutils literal notranslate"><span
class="pre">unistd.h</span></code>)</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#standard-i-o">Standard I/O</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#standard-library-stdlib-h">Standard Library (<code class="docutils
literal notranslate"><span class="pre">stdlib.h</span></code>)</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="#pathname-pattern-matching-glob-h">Pathname Pattern Matching (<code
class="docutils literal notranslate"><span
class="pre">glob.h</span></code>)</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#asynchronous-i-o">Asynchronous I/O</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#standard-string-operations">Standard String Operations</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#pipes-and-fifos">Pipes and FIFOs</a></li>
@@ -649,6 +650,30 @@ However, the following may also be considered as file
system interfaces:</p>
<span class="kt"><span class="pre">int</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">mkstemp</span></span></span><span class="sig-paren">(</span><span
class="pre">FAR</span><span class="w"> </span><span class="kt"><span
class="pre">char</span></span><span class="w"> </span><span class="p"><span
class="pre">*</span></span><span class="n"><span
class="pre">template</span></span><span class="sig-paren">)</span><span
class="p"><span cl [...]
<dd></dd></dl>
+</section>
+<section id="pathname-pattern-matching-glob-h">
+<h3>Pathname Pattern Matching (<code class="docutils literal
notranslate"><span class="pre">glob.h</span></code>)<a class="headerlink"
href="#pathname-pattern-matching-glob-h" title="Permalink to this
heading"></a></h3>
+<div class="highlight-c notranslate"><div
class="highlight"><pre><span></span><span class="cp">#include</span><span
class="w"> </span><span class="cpf"><glob.h></span>
+
+<span class="kt">int</span><span class="w"> </span><span
class="nf">glob</span><span class="p">(</span><span class="n">FAR</span><span
class="w"> </span><span class="k">const</span><span class="w"> </span><span
class="kt">char</span><span class="w"> </span><span class="o">*</span><span
class="n">pattern</span><span class="p">,</span><span class="w"> </span><span
class="kt">int</span><span class="w"> </span><span class="n">flags</span><span
class="p">,</span>
+<span class="w"> </span><span class="n">CODE</span><span class="w">
</span><span class="kt">int</span><span class="w"> </span><span
class="p">(</span><span class="o">*</span><span class="n">errfunc</span><span
class="p">)(</span><span class="n">FAR</span><span class="w"> </span><span
class="k">const</span><span class="w"> </span><span class="kt">char</span><span
class="w"> </span><span class="o">*</span><span class="n">epath</span><span
class="p">,</span><span class="w"> </span> [...]
+<span class="w"> </span><span class="n">FAR</span><span class="w">
</span><span class="n">glob_t</span><span class="w"> </span><span
class="o">*</span><span class="n">pglob</span><span class="p">);</span>
+<span class="kt">void</span><span class="w"> </span><span
class="nf">globfree</span><span class="p">(</span><span
class="n">FAR</span><span class="w"> </span><span class="n">glob_t</span><span
class="w"> </span><span class="o">*</span><span class="n">pglob</span><span
class="p">);</span>
+</pre></div>
+</div>
+<p><code class="docutils literal notranslate"><span
class="pre">glob()</span></code> finds the pathnames that match <code
class="docutils literal notranslate"><span class="pre">pattern</span></code>
(the rules of
+<code class="docutils literal notranslate"><span
class="pre">fnmatch()</span></code>) and puts them in <code class="docutils
literal notranslate"><span class="pre">pglob->gl_pathv</span></code>. The
POSIX flags are
+<code class="docutils literal notranslate"><span
class="pre">GLOB_APPEND</span></code>, <code class="docutils literal
notranslate"><span class="pre">GLOB_DOOFFS</span></code>, <code class="docutils
literal notranslate"><span class="pre">GLOB_ERR</span></code>, <code
class="docutils literal notranslate"><span class="pre">GLOB_MARK</span></code>,
+<code class="docutils literal notranslate"><span
class="pre">GLOB_NOCHECK</span></code>, <code class="docutils literal
notranslate"><span class="pre">GLOB_NOESCAPE</span></code> and <code
class="docutils literal notranslate"><span
class="pre">GLOB_NOSORT</span></code>. Two extensions of
+other C libraries are also available:</p>
+<ul class="simple">
+<li><p><code class="docutils literal notranslate"><span
class="pre">GLOB_TILDE</span></code>: a <code class="docutils literal
notranslate"><span class="pre">~</span></code> at the start of the pattern is
the home directory
+(<code class="docutils literal notranslate"><span
class="pre">HOME</span></code>, else the home directory of the user in the
password database),
+and <code class="docutils literal notranslate"><span
class="pre">~name</span></code> is the home directory of the user <code
class="docutils literal notranslate"><span class="pre">name</span></code>. When
the home
+directory is not known, the pattern is used as it is.</p></li>
+<li><p><code class="docutils literal notranslate"><span
class="pre">GLOB_TILDE_CHECK</span></code>: the same, but <code class="docutils
literal notranslate"><span class="pre">glob()</span></code> returns <code
class="docutils literal notranslate"><span
class="pre">GLOB_NOMATCH</span></code> when
+the home directory is not known.</p></li>
+</ul>
</section>
<section id="asynchronous-i-o">
<h3>Asynchronous I/O<a class="headerlink" href="#asynchronous-i-o"
title="Permalink to this heading"></a></h3>
diff --git a/content/docs/latest/reference/user/11_network.html
b/content/docs/latest/reference/user/11_network.html
index 1889f154c6..567fe9f6e0 100644
--- a/content/docs/latest/reference/user/11_network.html
+++ b/content/docs/latest/reference/user/11_network.html
@@ -160,6 +160,7 @@
<li class="toctree-l5"><a class="reference internal"
href="#socket-functions-sys-socket-h">Socket Functions (<code class="docutils
literal notranslate"><span class="pre">sys/socket.h</span></code>)</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#dns-functions-net-dns-h">DNS Functions (<code class="docutils literal
notranslate"><span class="pre">net/dns.h</span></code>)</a></li>
<li class="toctree-l5"><a class="reference internal"
href="#dns-query-functions-resolv-h">DNS Query Functions (<code class="docutils
literal notranslate"><span class="pre">resolv.h</span></code>)</a></li>
+<li class="toctree-l5"><a class="reference internal"
href="#resolver-error-messages-netdb-h">Resolver Error Messages (<code
class="docutils literal notranslate"><span
class="pre">netdb.h</span></code>)</a></li>
</ul>
</li>
</ul>
@@ -936,6 +937,38 @@ valid or does not end before <code class="docutils literal
notranslate"><span cl
</dl>
</dd></dl>
+</section>
+<section id="resolver-error-messages-netdb-h">
+<h3>Resolver Error Messages (<code class="docutils literal notranslate"><span
class="pre">netdb.h</span></code>)<a class="headerlink"
href="#resolver-error-messages-netdb-h" title="Permalink to this
heading"></a></h3>
+<p><code class="docutils literal notranslate"><span
class="pre">gethostbyname()</span></code>, <code class="docutils literal
notranslate"><span class="pre">gethostbyaddr()</span></code> and <a
class="reference internal" href="#c.res_query" title="res_query"><code
class="xref c c-func docutils literal notranslate"><span
class="pre">res_query()</span></code></a> give their
+errors in <code class="docutils literal notranslate"><span
class="pre">h_errno</span></code>. These functions give the message for an
<code class="docutils literal notranslate"><span
class="pre">h_errno</span></code>
+value. They are available with <code class="docutils literal
notranslate"><span class="pre">CONFIG_LIBC_NETDB</span></code>.</p>
+<blockquote>
+<div><ul class="simple">
+<li><p><a class="reference internal" href="#c.hstrerror"
title="hstrerror"><code class="xref c c-func docutils literal
notranslate"><span class="pre">hstrerror()</span></code></a></p></li>
+<li><p><a class="reference internal" href="#c.herror" title="herror"><code
class="xref c c-func docutils literal notranslate"><span
class="pre">herror()</span></code></a></p></li>
+</ul>
+</div></blockquote>
+<dl class="c function">
+<dt class="sig sig-object c" id="c.hstrerror">
+<span class="k"><span class="pre">const</span></span><span class="w">
</span><span class="kt"><span class="pre">char</span></span><span class="w">
</span><span class="p"><span class="pre">*</span></span><span class="sig-name
descname"><span class="n"><span class="pre">hstrerror</span></span></span><span
class="sig-paren">(</span><span class="kt"><span
class="pre">int</span></span><span class="w"> </span><span class="n"><span
class="pre">errnum</span></span><span class="sig-paren">)</span [...]
+<dd><p>Give the message for <code class="docutils literal notranslate"><span
class="pre">errnum</span></code>: <code class="docutils literal
notranslate"><span class="pre">HOST_NOT_FOUND</span></code>, <code
class="docutils literal notranslate"><span class="pre">NO_DATA</span></code>,
+<code class="docutils literal notranslate"><span
class="pre">NO_RECOVERY</span></code> or <code class="docutils literal
notranslate"><span class="pre">TRY_AGAIN</span></code>. Other values give
“Unknown resolver
+error”.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>A constant string, never <code class="docutils
literal notranslate"><span class="pre">NULL</span></code>.</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="c function">
+<dt class="sig sig-object c" id="c.herror">
+<span class="kt"><span class="pre">void</span></span><span class="w">
</span><span class="sig-name descname"><span class="n"><span
class="pre">herror</span></span></span><span class="sig-paren">(</span><span
class="k"><span class="pre">const</span></span><span class="w"> </span><span
class="kt"><span class="pre">char</span></span><span class="w"> </span><span
class="p"><span class="pre">*</span></span><span class="n"><span
class="pre">s</span></span><span class="sig-paren">)</span><span [...]
+<dd><p>Write the message for the current <code class="docutils literal
notranslate"><span class="pre">h_errno</span></code> to <code class="docutils
literal notranslate"><span class="pre">stderr</span></code>. When <code
class="docutils literal notranslate"><span class="pre">s</span></code> is
+not <code class="docutils literal notranslate"><span
class="pre">NULL</span></code> and not empty, the line starts with <code
class="docutils literal notranslate"><span class="pre">s</span></code> and
<code class="docutils literal notranslate"><span class="pre">":</span>
<span class="pre">"</span></code>.</p>
+</dd></dl>
+
</section>
</section>
</section>
diff --git a/content/docs/latest/searchindex.js
b/content/docs/latest/searchindex.js
index d295da41fe..50088e0a65 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["ReleaseNotes/NuttX-0.1.0",
"ReleaseNotes/NuttX-0.1.1", "ReleaseNotes/NuttX-0.1.2",
"ReleaseNotes/NuttX-0.2.1", "ReleaseNotes/NuttX-0.2.2",
"ReleaseNotes/NuttX-0.2.3", "ReleaseNotes/NuttX-0.2.4",
"ReleaseNotes/NuttX-0.2.5", "ReleaseNotes/NuttX-0.2.6",
"ReleaseNotes/NuttX-0.2.7", "ReleaseNotes/NuttX-0.2.8",
"ReleaseNotes/NuttX-0.2.9", "ReleaseNotes/NuttX-0.3.0",
"ReleaseNotes/NuttX-0.3.1", "ReleaseNotes/NuttX-0.3.10",
"ReleaseNotes/NuttX-0.3.11", "ReleaseNote [...]
\ No newline at end of file
diff --git a/content/docs/latest/testing/ntfc.html
b/content/docs/latest/testing/ntfc.html
index 9e2291a548..c2960675ad 100644
--- a/content/docs/latest/testing/ntfc.html
+++ b/content/docs/latest/testing/ntfc.html
@@ -219,7 +219,7 @@ and any emulator or hardware required by the target must
already be available.</
case versions currently used by NuttX CI:</p>
<div class="highlight-console notranslate"><div
class="highlight"><pre><span></span><span class="gp">$ </span>python3<span
class="w"> </span>-m<span class="w"> </span>venv<span class="w">
</span>../ntfc-venv
<span class="gp">$ </span>.<span class="w"> </span>../ntfc-venv/bin/activate
-<span class="gp">$ </span>python<span class="w"> </span>-m<span class="w">
</span>pip<span class="w"> </span>install<span class="w"> </span><span
class="nv">ntfc</span><span class="o">==</span><span class="m">0</span>.0.1
+<span class="gp">$ </span>python<span class="w"> </span>-m<span class="w">
</span>pip<span class="w"> </span>install<span class="w"> </span><span
class="nv">ntfc</span><span class="o">==</span><span class="m">0</span>.0.3
<span class="gp">$ </span>git<span class="w"> </span>clone<span class="w">
</span>--branch<span class="w"> </span>release-0.0.2<span class="w">
</span>--depth<span class="w"> </span><span class="m">1</span><span class="w">
</span><span class="se">\</span>
<span class="w"> </span>https://github.com/apache/nuttx-ntfc-testing<span
class="w"> </span>../nuttx-ntfc-testing
</pre></div>