This readme is about the OpenAMP linux_rpc_demo.
The linux_rpc_demo is about remote procedure calls between linux host and linux remote using rpmsg to perform
File operations such as open, read, write and close
I/O operation such as printf, scanf
Install libsysfs devel and libhugetlbfs devel packages on your Linux.
build libmetal library:
$ mkdir -p build-libmetal $ cd build-libmetal $ cmake <libmetal_source> $ make VERBOSE=1 DESTDIR=<libmetal_install> install
build OpenAMP library:
$ mkdir -p build-openamp $ cd build-openamp $ cmake <openamp_source> -DCMAKE_INCLUDE_PATH=<libmetal_built_include_dir> \ -DCMAKE_LIBRARY_PATH=<libmetal_built_lib_dir> -DWITH_APPS=ON -DWITH_PROXY=ON $ make VERBOSE=1 DESTDIR=$(pwd) install
The OpenAMP library will be generated to
build/usr/local/lib directory, headers will be
build/usr/local/include directory, and the applications executable will be
-DWITH_APPS=ONis to build the demonstration applications.
-DWITH_PROXY=ONto build the linux rpc app.
Run the Demo
Start rpc demo server on one console
$ sudo LD_LIBRARY_PATH=<openamp_built>/usr/local/lib:<libmetal_built>/usr/local/lib \ build-openamp/usr/local/bin/linux_rpc_demod-shared
Run rpc demo client on another console to perform file and I/O operations on the server
$ sudo LD_LIBRARY_PATH=<openamp_built>/usr/local/lib:<libmetal_built>/usr/local/lib \ build-openamp/usr/local/bin/linux_rpc_demo-shared 1
Enter the inputs on the host side the same gets printed on the remote side. You will see communication between the host and remote process using rpmsg calls.
sudo is required to run the OpenAMP demos between Linux processes, as it doesn’t work on
some systems if you are normal users.