The latest development version of this page may be more current than this released 3.3.0 version.

OpenAMP Sample Application using resource table

Overview

This application demonstrates how to use OpenAMP with Zephyr based on a resource table. It is designed to respond to the:

This sample implementation is compatible with platforms that embed a Linux kernel OS on the main processor and a Zephyr application on the co-processor.

Building the application

Zephyr

# From the root of the zephyr repository
west build -b None samples/subsys/ipc/openamp_rsc_table
west build -t test

Linux

Enable SAMPLE_RPMSG_CLIENT configuration to build and install the rpmsg_client_sample.ko module on the target.

Running the sample

Zephyr console

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.

Linux console

Open a Linux shell (minicom, ssh, etc.) and insert a module into the Linux Kernel

root@linuxshell: insmod rpmsg_client_sample.ko

Result on Zephyr console on boot

The following message will appear on the corresponding Zephyr console:

***** Booting Zephyr OS v#.##.#-####-g########## *****
Starting application thread!

OpenAMP demo started
Remote core received message 1: hello world!
Remote core received message 2: hello world!
Remote core received message 3: hello world!
...
Remote core received message 100: hello world!
OpenAMP demo ended.

rpmsg TTY demo on Linux console

On the Linux console send a message to Zephyr which answers with the “TTY <add>” prefix. <addr> corresponds to the Zephyr rpmsg-tty endpoint address:

$> cat /dev/ttyRPMSG0 &
$> echo "Hello Zephyr" >/dev/ttyRPMSG0
TTY 0x0401: Hello Zephyr