zephyr/samples/subsys/ipc/ipc_service/multi_endpoint
Dominik Kilian 23254f2a16 samples: ipc: Modify icmsg_me sample allowing any multiendpoint backend
There are more ipc_service backends that supports multiple endpoint.
This sample can be used for any of those backends, so this commits
makes the sample more generic. The default backend it still icmsg_me,
but now, the sample has files and instructions for icmsg_with_buf
backend.

Signed-off-by: Dominik Kilian <Dominik.Kilian@nordicsemi.no>
2023-11-13 11:11:43 +01:00
..
boards
remote
src
CMakeLists.txt
Kconfig.sysbuild
prj.conf
README.rst
sample.yaml
sysbuild.cmake

.. _ipc_multi_endpoint_sample:

IPC Service - Multi-endpoint Sample Application
###############################################

This application demonstrates how to use IPC Service with multiple endpoints.
By default, it uses the ``icmsg_me`` backend.
You can also configure it to use the ``icbmsg`` backend.

Building the application for nrf5340dk_nrf5340_cpuapp
*****************************************************

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/ipc/ipc_service/multi_endpoint
   :board: nrf5340dk_nrf5340_cpuapp
   :goals: debug

Open a serial terminal (for example Minicom or PuTTY) and connect the board with the following settings:

* Speed: 115200
* Data: 8 bits
* Parity: None
* Stop bits: 1

After resetting the board, the following message will appear on the corresponding
serial port:

.. code-block:: console

   *** Booting Zephyr OS build v3.4.0-rc1-108-gccfbac8b0721 ***
   IPC-service HOST [INST 0 - ENDP A] demo started
   IPC-service HOST [INST 0 - ENDP B] demo started
   IPC-service HOST [INST 1] demo started
   HOST [0A]: 1
   HOST [0A]: 3
   HOST [0B]: 1
   HOST [1]: 1
   ...
   HOST [0A]: 99
   IPC-service HOST [INST 0 - ENDP A] demo ended.
   HOST [0B]: 99
   IPC-service HOST [INST 0 - ENDP B] demo ended.
   HOST [1]: 99
   IPC-service HOST [INST 1] demo ended.

.. code-block:: console

   *** Booting Zephyr OS build v3.4.0-rc1-108-gccfbac8b0721 ***
   IPC-service REMOTE [INST 0 - ENDP A] demo started
   IPC-service REMOTE [INST 0 - ENDP B] demo started
   IPC-service REMOTE [INST 1] demo started
   REMOTE [0A]: 0
   REMOTE [0A]: 2
   ...
   REMOTE [0A]: 98
   IPC-service REMOTE [INST 0 - ENDP A] demo ended.
   REMOTE [0B]: 98
   IPC-service REMOTE [INST 0 - ENDP B] demo ended.
   REMOTE [1]: 98
   IPC-service REMOTE [INST 1] demo ended.


Changing the backend
********************

To change the backend to ``icbmsg``, switch the devicetree
overlay files as follows:

.. code-block:: console

   west build -b nrf5340dk_nrf5340_cpuapp --sysbuild -- \
   -DDTC_OVERLAY_FILE=boards/nrf5340dk_nrf5340_cpuapp_icbmsg.overlay \
   -Dremote_DTC_OVERLAY_FILE=boards/nrf5340dk_nrf5340_cpunet_icbmsg.overlay