Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions demos/echo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ OpenAMP Echo Test Sample
Echo Test Intro
***************

The echo test reference sample, as the name suggests, demonstrates OpenAMP :ref:`Interprocessor Communications (IPC)<ipc-work-label>` components by providing an echo application on a remote which simply returns (echoes) packets as they are received at an :ref:`RPmsg endpoint <rpmsg-endpoint>` from the host controller. The host controller then verifies the returned packet for integrity.
The echo test reference sample, as the name suggests, demonstrates OpenAMP :ref:`Interprocessor Communications (IPC)<ipc-work-label>` components by providing an echo application on a remote which simply returns (echoes) packets as they are received at an :ref:`RPMsg endpoint <rpmsg-endpoint>` from the host controller. The host controller then verifies the returned packet for integrity.

.. image:: ../images/demos/echo-test-intro.svg

Expand All @@ -19,7 +19,7 @@ Echo Test Components
********************

There are two applications involved in this demonstration.
The :ref:`remote application<echo-test-remote-app>` runs as an echo service, which returns packets it receives on an :ref:`RPmsg endpoint <rpmsg-endpoint>`.
The :ref:`remote application<echo-test-remote-app>` runs as an echo service, which returns packets it receives on an :ref:`RPMsg endpoint <rpmsg-endpoint>`.
The :ref:`host application<echo-test-host-app>` is the test application sending packets to the echo service and monitoring for their return.

The underlying OpenAMP architectural components used by these applications are
Expand All @@ -42,23 +42,23 @@ The top-level control flow is shown in the following message diagram.

.. _echo-test-remote-app:

RPmsg Echo Remote Application
RPMsg Echo Remote Application
=============================

The remote application, rpmsg-echo, is the core of the demonstration. It is a simple application serving a :ref:`RPmsg endpoint <rpmsg-endpoint>` running as the main task on the remote processor, once loaded and started using :ref:`Remoteproc<overview-remoteproc-work-label>`.
The remote application, rpmsg-echo, is the core of the demonstration. It is a simple application serving a :ref:`RPMsg endpoint <rpmsg-endpoint>` running as the main task on the remote processor, once loaded and started using :ref:`Remoteproc<overview-remoteproc-work-label>`.


.. _echo-test-host-app:

Echo Test Host Application
==========================

The echo_test application forms the host controller side of the demonstration. It repeatedly writes an increasing length payload of 0xA5's up to the maximum data size (packet size minus header) to the RPmsg endpoint. Following each packet send, it reads from the same endpoint and verifies the returned packet for correctness. The application will stop and report on the first corruption found.
The echo_test application forms the host controller side of the demonstration. It repeatedly writes an increasing length payload of 0xA5's up to the maximum data size (packet size minus header) to the RPMsg endpoint. Following each packet send, it reads from the same endpoint and verifies the returned packet for correctness. The application will stop and report on the first corruption found.

Echo Test Host Script
=====================

The host is also responsible for loading the firmware containing the :ref:`RPmsg Echo Remote Application<echo-test-remote-app>` and starting the remote processor using :ref:`Remoteproc<overview-remoteproc-work-label>`.
The host is also responsible for loading the firmware containing the :ref:`RPMsg Echo Remote Application<echo-test-remote-app>` and starting the remote processor using :ref:`Remoteproc<overview-remoteproc-work-label>`.

For host controllers, like Linux, a script can be used to pipe the firmware to the exposed remoteproc system, followed by the execution of the user space echo_test application. For controllers without scripting capability, like baremetal and RTOS (Real Time Operating systems), this would be achieved in the code.

Expand Down
16 changes: 8 additions & 8 deletions demos/matrix_multiply.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ OpenAMP Matrix Multiply Sample
Matrix Multiply Intro
*********************

The matrix multiply reference sample, as the name suggests, demonstrates OpenAMP :ref:`Interprocessor Communications (IPC)<ipc-work-label>` components through matrix multiplication. The demonstration uses a host client, which generates random matrixes. It sends them to a service/daemon on a remote which performs a matrix calculation and returns the result via a :ref:`RPmsg endpoint <rpmsg-endpoint>`. The host controller then writes the matrix result to console output.
The matrix multiply reference sample, as the name suggests, demonstrates OpenAMP :ref:`Interprocessor Communications (IPC)<ipc-work-label>` components through matrix multiplication. The demonstration uses a host client, which generates random matrixes. It sends them to a service/daemon on a remote which performs a matrix calculation and returns the result via a :ref:`RPMsg endpoint <rpmsg-endpoint>`. The host controller then writes the matrix result to console output.

.. image:: ../images/demos/matrix-multiply-intro.svg

Expand All @@ -19,7 +19,7 @@ Matrix Multiply Components
**************************

There are two applications involved in this demonstration.
The :ref:`remote application<matrix-multiply-remote-app>` runs as an daemon/service which performs a matrix calculation and returns the result on an :ref:`RPmsg endpoint <rpmsg-endpoint>`.
The :ref:`remote application<matrix-multiply-remote-app>` runs as an daemon/service which performs a matrix calculation and returns the result on an :ref:`RPMsg endpoint <rpmsg-endpoint>`.
The :ref:`host application<matrix-multiply-host-app>` is the client application sending two matrixes as a packet to the daemon/service and monitoring for the return result.

The underlying OpenAMP architectural components used by these applications are
Expand All @@ -40,10 +40,10 @@ The top-level control flow is shown in the following message diagram.

.. _matrix-multiply-remote-app:

RPmsg Matrix Multiply Remote Application
RPMsg Matrix Multiply Remote Application
========================================

The remote application, `matrix_multiplyd <https://github.com/OpenAMP/open-amp/blob/main/apps/examples/matrix_multiply/matrix_multiplyd.c>`_, is the core of the demonstration. It is a simple application serving a :ref:`RPmsg endpoint <rpmsg-endpoint>` running as the main task on the remote processor, once loaded and started using :ref:`Remoteproc<overview-remoteproc-work-label>`.
The remote application, `matrix_multiplyd <https://github.com/OpenAMP/open-amp/blob/main/apps/examples/matrix_multiply/matrix_multiplyd.c>`_, is the core of the demonstration. It is a simple application serving a :ref:`RPMsg endpoint <rpmsg-endpoint>` running as the main task on the remote processor, once loaded and started using :ref:`Remoteproc<overview-remoteproc-work-label>`.


.. _matrix-multiply-host-app:
Expand All @@ -59,22 +59,22 @@ There are two implementations. The `mat_mul_demo <https://github.com/OpenAMP/ope
Matrix Multiply Host Script
===========================

The host is also responsible for loading the firmware containing the :ref:`RPmsg Matrix Multiply Remote Application<matrix-multiply-remote-app>` and starting the remote processor using :ref:`Remoteproc<overview-remoteproc-work-label>`.
The host is also responsible for loading the firmware containing the :ref:`RPMsg Matrix Multiply Remote Application<matrix-multiply-remote-app>` and starting the remote processor using :ref:`Remoteproc<overview-remoteproc-work-label>`.

For host controllers, like Linux, a script can be used to pipe the firmware to the exposed remoteproc system, followed by the execution of the user space mat_mul_demo application. For controllers without scripting capability, like baremetal and RTOS (Real Time Operating systems), this would be achieved in the code.

**********************
Matrix Multiply Source
**********************

RPmsg Matrix Multiply Baremetal Sources
RPMsg Matrix Multiply Baremetal Sources
=======================================

There are two baremetal applications, a daemon/service to run on the remote and a host/controller application which is the matrix multiply client requesting the calculations.

The RPmsg Matrix Multiply daemon/service application is available as a baremetal solution in the `OpenAMP Repository <https://github.com/OpenAMP/open-amp/blob/main/apps/examples/matrix_multiply/matrix_multiplyd.c>`_. Take note of the d for daemon at the end of the file.
The RPMsg Matrix Multiply daemon/service application is available as a baremetal solution in the `OpenAMP Repository <https://github.com/OpenAMP/open-amp/blob/main/apps/examples/matrix_multiply/matrix_multiplyd.c>`_. Take note of the d for daemon at the end of the file.

The RPmsg Matrix Multiple host client application is available as a baremetal solution in the `OpenAMP Repository <https://github.com/OpenAMP/open-amp/blob/main/apps/examples/matrix_multiply/matrix_multiply.c>`_
The RPMsg Matrix Multiple host client application is available as a baremetal solution in the `OpenAMP Repository <https://github.com/OpenAMP/open-amp/blob/main/apps/examples/matrix_multiply/matrix_multiply.c>`_

Both are CMake application and can be built for any remote as long as the relevant :ref:`OS/HW abstraction layer<porting-guide-work-label>` components like libmetal are ported for that platform.

Expand Down
4 changes: 2 additions & 2 deletions demos/rpmsg_multi_services.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ The top-level control flow is shown in the following message diagram. The remote

.. _rpmsg-client-sample-label:

RPmsg Client Sample
RPMsg Client Sample
===================

The Linux rpmsg_client_sample driver begins sending 'hello world!' messages on a rpmsg_driver probe, initiated by a name service announcement from the remote. This is repeated a predefined count times for each response from the remote. The response from the remote application is to return the same packet received at the :ref:`RPmsg endpoint <rpmsg-endpoint>` of the host controller.
The Linux rpmsg_client_sample driver begins sending 'hello world!' messages on a rpmsg_driver probe, initiated by a name service announcement from the remote. This is repeated a predefined count times for each response from the remote. The response from the remote application is to return the same packet received at the :ref:`RPMsg endpoint <rpmsg-endpoint>` of the host controller.

When the count (100) responses have been sent, the endpoint is destroyed by the remote.

Expand Down
8 changes: 4 additions & 4 deletions images/demos/echo-test-control-flow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading