boards/linum-stm32h753bi: Add zbus board integration and configuration - #19916
boards/linum-stm32h753bi: Add zbus board integration and configuration#19916JorgeGzm wants to merge 2 commits into
Conversation
|
@JorgeGzm could you split iterator section from zbus to new pr? |
🔗 Cross-repo PR dependenciesThe read-only Build run reported the following dependent PR(s) and fetched head SHA(s): CI run: https://github.com/apache/nuttx/actions/runs/32439921078 |
|
Do not list "new files". This is visible in the diff already. Please review the AI-generated PR descriptions and revise them for correctness and simplicity. |
🔗 Cross-repo PR dependenciesThe read-only Build run reported the following dependent PR(s) and fetched head SHA(s): CI run: https://github.com/apache/nuttx/actions/runs/32515058484 |
🔗 Cross-repo PR dependenciesThe read-only Build run reported the following dependent PR(s) and fetched head SHA(s):
CI run: https://github.com/apache/nuttx/actions/runs/32531266071 |
NuttX-side support for the zbus message bus port (apps/system/zbus in nuttx-apps), built on the link-time iterable sections infrastructure added in a companion PR: - include/nuttx/linker/zbus.ld + tools/Config.mk hook (CONFIG_ZBUS_LINKER_INSERT): optional zero-touch mode using GNU ld INSERT AFTER through ARCHSCRIPT, for boards that do not include the iterable sections common fragments (see the in-file comments for the command-line ordering and MEMORY-region constraints). - Documentation/applications/system/zbus: Sphinx documentation for the zbus application, with the upstream Zephyr diagrams (Apache-2.0). - .codespellrc: skip the reused zbus SVG diagrams (embedded base64 raster data trips the spell checker). Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
Adopt the zbus message bus on the linum-stm32h753bi (first adopter board): - scripts/flash.ld: include the iterable sections common fragments (2 lines: common-rom.ld inside .text, common-ram.ld inside .data). - configs/zbus/defconfig: board configuration enabling zbus with all observer types, the zbus example and its cmocka test suite (./tools/configure.sh linum-stm32h753bi:zbus). - Board documentation: describe the new configuration. Validated on hardware: the 16-test cmocka suite passes twice in the same boot and the zbus example produces the expected output. Signed-off-by: Jorge Guzman <jorge.gzm@gmail.com>
🔗 Cross-repo PR dependenciesThe read-only Build run reported the following dependent PR(s) and fetched head SHA(s):
CI run: https://github.com/apache/nuttx/actions/runs/32757958806 |
Summary
Integration of the zbus message bus port (apache/nuttx-apps#3743) on
top of the iterable sections infrastructure (#19927), in two commits:
include/nuttx/linker/zbus.ld+ atools/Config.mkhook (CONFIG_ZBUS_LINKER_INSERT), an optionalzero-touch mode using GNU ld
INSERT AFTERfor boards that do notinclude the common fragments (constraints documented in the file);
plus the zbus Sphinx documentation.
#includelines in
flash.ldand azbusboard configuration enabling thezbus example and its cmocka test suite, reproducible with
./tools/configure.sh linum-stm32h753bi:zbus.Impact
linum-stm32h753bi through the new
:zbusconfiguration; any otherboard can adopt it the same way (two linker-script lines, or the
INSERT mode with no board edit).
nothing unless
CONFIG_ZBUSis enabled (verified: the stock:nshmap has zero zbus sections), and the
Config.mkhook is inert unlessCONFIG_ZBUS_LINKER_INSERT=y.board linker script, so the
#includelines work on either).zbusentry in theboard configuration list.
.codespellrcskip list (their embedded base64 raster data trips thespell checker with false positives).
Testing
Target: linum-stm32h753bi (STM32H753BI),
:zbusbuild (Make and CMake): OK, the three_zbus_*_listsectionscollected name-sorted in flash as required by the zbus VDED algorithm.
in the same boot and the
zbusexample produces the expected output,with the fourth message correctly masked for the listener and the
listener notified before the subscriber:
no overlap).
tools/checkpatch.sh -c -u -m -gon both commits (nxstyle +codespell, same flags as CI): all checks pass.
sphinx-build -W:clean.
Depends-On: apache/nuttx-apps#3743
Depends-On: #19927