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

Overview

This readme is about the OpenAMP echo demonstration. The echo test is about one processor sending a message to the other one, and the other one echoing back the message. The processor that sends the message will verify the echoed message.

Compilation

System Reference Legacy Apps Build Overview

This page details how to setup and build the OpenAMP System Reference legacy apps and test examples found in the examples/legacy_apps directory. These applications were moved from the OpenAMP repository.

Initialization

The first step is to initialize the workspace folder (my-workspace) where the examples and all Zephyr modules will be cloned. You can do that by running:

# initialize my-workspace for the example-application (main branch)
west init -m https://github.com/OpenAMP/openamp-system-reference --mf examples/legacy_apps/west.yml --mr main my-workspace
# update modules
cd my-workspace
west update

Build

The following steps are to build legacy apps on a host machine.

export PROJECT_ROOT=$PWD

Build libmetal

cd $PROJECT_ROOT/libmetal
cmake . -Bbuild -DCMAKE_INSTALL_PREFIX=$PROJECT_ROOT/target
make -C build VERBOSE=1 install

Build open_amp

cd $PROJECT_ROOT/open-amp
cmake . -Bbuild -DCMAKE_INCLUDE_PATH=$PROJECT_ROOT/libmetal/build/lib/include/   -DCMAKE_LIBRARY_PATH=$PROJECT_ROOT/libmetal/build/lib/ -DCMAKE_INSTALL_PREFIX=$PROJECT_ROOT/target
make -C build VERBOSE=1 install

Build legacy Apps

cd $PROJECT_ROOT/openamp-system-reference/examples/legacy_apps
cmake -Bbuild \
-DCMAKE_INCLUDE_PATH="$PROJECT_ROOT/libmetal/build/lib/include/;$PROJECT_ROOT/open-amp/build/lib/include/" \
-DCMAKE_LIBRARY_PATH="$PROJECT_ROOT/libmetal/build/lib/;$PROJECT_ROOT/open-amp/build/lib/" \
-DCMAKE_INSTALL_PREFIX=$PROJECT_ROOT/target
make -C build VERBOSE=1 install

If you are perusing the github repository refer to the legacy_apps README.md for compilation information.

Run demonstration on a Linux PC

It is possible to run the application on a Linux PC to communicate between two Linux processes.

cd $PROJECT_ROOT/target
LD_LIBRARY_PATH=./lib ./bin/rpmsg-echo-static &
sleep 1
LD_LIBRARY_PATH=./lib ./bin/msg-test-rpmsg-ping-static 1