If you need urgent consulting help click here

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