Skip to content

Commit 50f2800

Browse files
aescolarnashif
authored andcommitted
boards nrfbsim docs: Explain relation between native sim and nrfbsim
Add a section to the docs ellaborating on the relationship between Zephyr, the native simulator, the nRF HW models and BabbleSim. Signed-off-by: Alberto Escolar Piedras <[email protected]>
1 parent fc007ee commit 50f2800

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

boards/native/doc/bsim_boards_design.rst

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ to these boards.
8585
- Integration tests on real HW: Allows testing with the real SW
8686
components that may be too dependent on the exact HW particularities, and
8787
possibly without any changes compared to the final solution.
88-
As such can provide better integration coverage than simulation ins ome cases,
88+
As such can provide better integration coverage than simulation in some cases,
8989
but at the expense of slower execution, needing the real HW setups,
9090
test in general not being reproducible, and in many cases failures
9191
not being easy to debug.
@@ -125,6 +125,29 @@ to these boards.
125125
Design
126126
******
127127

128+
Relationship between Zephyr, the native simulator, the nRF HW models and BabbleSim
129+
==================================================================================
130+
131+
As shown in the figure below, when you build your embedded application targeting one of Zephyr's
132+
nrf_bsim targets, you are using the `native simulator`_, which is being built together with and
133+
expanded by the nRF HW models for that target.
134+
Your application is first built and linked with the Zephyr kernel and any subsystems and network
135+
stacks you may have selected, including mostly the same drivers as for the real target.
136+
The native simulator runner is built together with the HW models which match your desired target.
137+
And then both the embedded SW and runner are linked together to produce a Linux executable.
138+
139+
.. figure:: components_bsim.svg
140+
:align: center
141+
:alt: nrf_bsim boards and the native simulator
142+
:figclass: align-center
143+
144+
Relationship between Zephyr, the native simulator, the nRF HW models and BabbleSim.
145+
146+
When you target a multi MCU SOC like the :ref:`nrf5340bsim<nrf5340bsim_multi_mcu_build>`, you can
147+
use :ref:`sysbuild<sysbuild>` to build an executable, where, for each MCU, its application, Zephyr
148+
kernel and subsystems are built and linked first, and finally assembled all together with the native
149+
simulator runner into a single executable.
150+
128151
Layering: Zephyr's arch, soc and board layers
129152
=============================================
130153

0 commit comments

Comments
 (0)