mirror of
https://github.com/apache/nuttx.git
synced 2026-08-27 04:10:40 +00:00
Add generic support for link-time registration of struct instances, modeled after the Zephyr STRUCT_SECTION_* mechanism: - include/nuttx/iterable_sections.h: STRUCT_SECTION_ITERABLE/DECLARE/ FOREACH/GET/COUNT macros placing instances in name-sorted linker sections delimited by _<type>_list_start/_end symbols (attributes through the nuttx/compiler.h macros; FOREACH takes a caller-declared iterator, like list_for_every_entry). - include/nuttx/linker/iterable_sections.ld: ITERABLE_SECTION() macro emitting the KEEP + SORT_BY_NAME collection statements (linker scripts in ARCHSCRIPT are CPP-preprocessed). - include/nuttx/linker/common-rom.ld / common-ram.ld: central aggregators meant to be included by board linker scripts (inside .text and .data respectively); subsystems register their sections here guarded by their Kconfig options, so the fragments expand to nothing on configurations that do not use them. - CONFIG_ITERABLE_SECTIONS_LINKER_INSERT + include/nuttx/linker/ common-insert.ld (added before the board script by tools/Config.mk and by the top-level CMakeLists.txt): optional zero-touch mode that supplements the board script through GNU ld INSERT AFTER, collecting the subsystems' ITERABLE_SECTION blocks in one output section; the common-rom.ld/common-ram.ld fragments expand to nothing in that mode. See the option help for the constraints. - Documentation/components/iterable_sections.rst. First user: the Zephyr zbus message bus port (apps/system/zbus in nuttx-apps); its board integration comes in a companion PR. Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
34 lines
771 B
ReStructuredText
34 lines
771 B
ReStructuredText
=============
|
|
OS Components
|
|
=============
|
|
|
|
NuttX is very feature-rich RTOS and is thus composed of various different
|
|
subsystems. The following sections explain how each of these main RTOS components
|
|
work and can be used. For detailed documentation on the specific API used in this
|
|
case, you can head to the :doc:`reference <../reference/index>`.
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
:caption: Contents:
|
|
|
|
binfmt.rst
|
|
concurrency/index.rst
|
|
iterable_sections.rst
|
|
drivers/index.rst
|
|
nxflat.rst
|
|
nxgraphics/index.rst
|
|
paging.rst
|
|
audio/index.rst
|
|
filesystem/index.rst
|
|
libs/index.rst
|
|
net/index.rst
|
|
mm/index.rst
|
|
syscall.rst
|
|
tools/index.rst
|
|
arch/index.rst
|
|
boards.rst
|
|
cmake.rst
|
|
openamp.rst
|
|
video.rst
|
|
crypto.rst
|
|
wireless.rst
|