mirror of
https://github.com/apache/nuttx.git
synced 2026-09-10 19:06:35 +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> |
||
|---|---|---|
| .. | ||
| ameba | ||
| bcm2711 | ||
| bl602 | ||
| ci | ||
| codeowners | ||
| cxd56 | ||
| esp32 | ||
| esp32c3 | ||
| esp32s2 | ||
| esp32s3 | ||
| espressif | ||
| imx9 | ||
| licensing | ||
| lwl | ||
| mpfs | ||
| nix | ||
| nxflat | ||
| pic32 | ||
| pynuttx | ||
| rp23xx | ||
| rp2040 | ||
| simwifi | ||
| zds | ||
| .gitignore | ||
| aarch64-unknown-nuttx-macho.json | ||
| aarch64-unknown-nuttx.json | ||
| abi_check.py | ||
| b16.c | ||
| bdf-converter.c | ||
| board_romfs_mkpasswd.sh | ||
| btdecode.sh | ||
| build-globals.sh | ||
| callstack.py | ||
| cfgdefine.c | ||
| cfgdefine.h | ||
| cfgparser.c | ||
| cfgparser.h | ||
| check_passwd_keys.sh | ||
| checkkconfig.py | ||
| checkpatch.sh | ||
| checkrelease.sh | ||
| CMakeLists.txt | ||
| cmpconfig.c | ||
| cnvwindeps.c | ||
| Config.mk | ||
| configure.bat | ||
| configure.c | ||
| configure.sh | ||
| configure_completion.bash | ||
| convert-comments.c | ||
| copydir.bat | ||
| copydir.sh | ||
| coredump.py | ||
| csvparser.c | ||
| csvparser.h | ||
| D.defs | ||
| define.bat | ||
| define.sh | ||
| detab.c | ||
| Directories.mk | ||
| discover.py | ||
| doreleasenotes.py | ||
| Export.mk | ||
| find_symbol_callers.sh | ||
| flash_writer.py | ||
| FlatLibs.mk | ||
| gcov.py | ||
| gdbserver.py | ||
| gen_passwd_keys.sh | ||
| gencromfs.c | ||
| host_info_dump.py | ||
| host_info_parse.py | ||
| i486-unknown-nuttx.json | ||
| ide_exporter.py | ||
| incdir.bat | ||
| incdir.c | ||
| incdir.sh | ||
| indent.sh | ||
| initialconfig.c | ||
| jlink-nuttx.c | ||
| kasan_global.py | ||
| kconfig.bat | ||
| kconfig2html.c | ||
| KernelLibs.mk | ||
| LibTargets.mk | ||
| link.bat | ||
| link.sh | ||
| lowhex.c | ||
| macar-qcs.sh | ||
| Make.defs | ||
| Makefile.host | ||
| merge_config.py | ||
| mkallsyms.py | ||
| mkallsyms.sh | ||
| mkconfig.c | ||
| mkconfigvars.sh | ||
| mkctags.sh | ||
| mkdeps.c | ||
| mkexport.sh | ||
| mkfsdata.pl | ||
| mkfsdata.py | ||
| mknulldeps.sh | ||
| mkpasswd.c | ||
| mkromfsimg.sh | ||
| mksymtab.c | ||
| mksyscall.c | ||
| mkversion.c | ||
| mkwindeps.sh | ||
| netusb.sh | ||
| noteinfo.c | ||
| nxstyle.c | ||
| nxstyle_sweep.sh | ||
| nxtagspkgsfetch.sh | ||
| parsecallstack.py | ||
| parsememdump.py | ||
| parsetrace.py | ||
| passwd_keys.mk | ||
| pre-commit | ||
| process_config.py | ||
| process_config.sh | ||
| promptpasswd.sh | ||
| ProtectedLibs.mk | ||
| refresh.sh | ||
| rmcr.c | ||
| Rust.defs | ||
| sethost.sh | ||
| showsize.sh | ||
| simbridge.sh | ||
| simhostroute.sh | ||
| simlaunch.sh | ||
| size_report.py | ||
| splashscreen_converter.py | ||
| stackusage.py | ||
| stm32_pinmap_tool.py | ||
| Swift.defs | ||
| testbuild.ps1 | ||
| testbuild.sh | ||
| toolchain.cmake.export | ||
| uncrustify.cfg | ||
| Unix.mk | ||
| unlink.bat | ||
| unlink.sh | ||
| update_romfs_password.sh | ||
| version.sh | ||
| Win.mk | ||
| x86_64-unknown-nuttx-macho.json | ||
| x86_64-unknown-nuttx.json | ||
| xmlrpc_test.py | ||
| Zig.defs | ||
| zipme.sh | ||