zephyr/samples/subsys/ipc/openamp
Kumar Gala 12ca04b31f ipc: openamp: Expose config options for MASTER/SLAVE builds
We can build the openamp library configured with VirtIO master
support, VirtIO slave support, or both.  By default both master
and slave code is enabled.  We can reduce code footprint by only
build master or slave as needed.

Expose Kconfig options for Master & Slave and set them accordingly in
the sample.

Here's the code reduction we see:

For the total image we see as 1260 byte reduction:
Memory region         Used Size  Region Size  %age Used
 FLASH [Master & Slave]:       30308 B       256 KB     11.56%
 FLASH [Master only]   :       29048 B       256 KB     11.08%

On the remote side we see a 828 byte reduction:

Memory region         Used Size  Region Size  %age Used
 FLASH [Master & Slave]:       11564 B        64 KB     17.65%
 FLASH [Slave only]    :       10736 B        64 KB     16.38%

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-03-27 15:20:25 -05:00
..
boards
remote ipc: openamp: Expose config options for MASTER/SLAVE builds 2020-03-27 15:20:25 -05:00
src samples: openamp: Add support for Musca B1 2020-03-26 06:10:07 -05:00
CMakeLists.txt cmake: use find_package to locate Zephyr 2020-03-27 16:23:46 +01:00
common.h
Kconfig
lpcxpresso54114_m4.overlay
mps2_an521.overlay samples: openamp: Add support for mps2_an521 2020-03-26 06:10:07 -05:00
prj.conf ipc: openamp: Expose config options for MASTER/SLAVE builds 2020-03-27 15:20:25 -05:00
README.rst samples: openamp: Add support for Musca B1 2020-03-26 06:10:07 -05:00
sample.yaml samples: openamp: Add support for Musca B1 2020-03-26 06:10:07 -05:00
v2m_musca_b1.overlay samples: openamp: Add support for Musca B1 2020-03-26 06:10:07 -05:00
v2m_musca.overlay samples: openamp: Add support for Musca A 2020-03-26 06:10:07 -05:00

.. _openAMP_sample:

OpenAMP Sample Application
##########################

Overview
********

This application demonstrates how to use OpenAMP with Zephyr. It is designed to
demonstrate how to integrate OpenAMP with Zephyr both from a build perspective
and code.

Building the application for lpcxpresso54114_m4
***********************************************

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/ipc/openamp
   :board: lpcxpresso54114_m4
   :goals: debug

Building the application for mps2_an521
***************************************

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/ipc/openamp
   :board: mps2_an521
   :goals: debug

Building the application for v2m_musca
**************************************

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/ipc/openamp
   :board: v2m_musca
   :goals: debug

Building the application for v2m_musca_b1
*****************************************

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/ipc/openamp
   :board: v2m_musca_b1
   :goals: debug

Open a serial terminal (minicom, putty, etc.) and connect the board with the
following settings:

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

Reset the board and the following message will appear on the corresponding
serial port, one is master another is remote:

.. code-block:: console

   **** Booting Zephyr OS build zephyr-v1.14.0-2064-g888fc98fddaa ****
   Starting application thread!

   OpenAMP[master] demo started
   Master core received a message: 1
   Master core received a message: 3
   Master core received a message: 5
   ...
   Master core received a message: 99
   OpenAMP demo ended.


.. code-block:: console

   **** Booting Zephyr OS build zephyr-v1.14.0-2064-g888fc98fddaa ****
   Starting application thread!

   OpenAMP[remote] demo started
   Remote core received a message: 0
   Remote core received a message: 2
   Remote core received a message: 4
   ...
   Remote core received a message: 98
   OpenAMP demo ended.