This repository contains an ARMv8 multicore virtual platform. It was built at the Institute for Communication Technologies and Embedded Systems at RTWH Aachen University. The following target software configurations were tested (see avp64-sw):
- CoreMark
- Dhrystone
- Whetstone
- STREAM
- Linux single-, dual-, quad-, octa-core
- Xen single- and dual-core
-
Clone git repository including submodules:
git clone --recursive https://github.com/aut0/avp64
-
Chose directories for building and deployment:
<source-dir> location of your repo copy, e.g. /home/lukas/avp64 <build-dir> location to store object files, e.g. /home/lukas/avp64/BUILD <install-dir> output directory for binaries, e.g. /opt/avp64
-
Configure and build the project using
cmake
. During configuration you must state whether or not to build the runner (vp executable) and the unit tests:-DAVP64_BUILD_RUNNER=[ON|OFF]
: build runner (default:ON
)-DAVP64_BUILD_TESTS=[ON|OFF]
: build unit tests (default:OFF
)
Release and debug build configurations are controlled via the regular cmake parameters:
mkdir -p <build-dir> cd <build-dir> cmake -DCMAKE_INSTALL_PREFIX=<install-dir> -DCMAKE_BUILD_TYPE=RELEASE <source-dir> make -j `nproc` sudo make install
If building with
-DAVP64_BUILD_TESTS=ON
you can run all unit tests usingmake test
within<build-dir>
. -
After installation, the following new files should be present:
<install-dir>/bin/avp64-runner # executable program <install-dir>/lib/libocx-qemu-arm.so
-
If the library
libocx-qemu-arm.so
cannot be found, add the lib folder toLD_LIBRARY_PATH
:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<install-dir>/lib/
Run the platform using a config file from the sw folder:
<install-dir>/bin/avp64-runner -f <install-dir>/sw/<config-file>
For more details on run parameters please look here.
To stop the platform, press Ctrl + a + x .
Debug builds (i.e. -DCMAKE_BUILD_TYPE=DEBUG
) are intended for developers
that like to make changes on avp64
and want to track down bugs.
Note that these builds operate significantly slower than optimized release
builds and should therefore not be used for VPs that are used productively,
e.g. for target software development.
To maintain both builds from a single source repository, try the following:
git clone --recurse-submodules https://github.com/aut0/avp64 && cd avp64
home=$PWD
for type in "DEBUG" "RELEASE"; do
install="$home/BUILD/$type"
build="$home/BUILD/$type/BUILD"
mkdir -p $build && cd $build
cmake -DCMAKE_BUILD_TYPE=$type -DCMAKE_INSTALL_PREFIX=$install $home
make install
done
Afterward, you can find the builds in:
<source-dir>/avp64/BUILD/DEBUG # for the debug build or
<source-dir>/avp64/BUILD/RELEASE # for the release build
A baisc tutorial that shows how to debug the executed target software using Visual Studio Code can be found in the vscode-tutorial folder. Run the vscode-tutorial/setup.bash script to download the Linux image and Linux Kernel Source files and setup Visual Studio Code. See the corresponding Readme for further details.
The VCML documentation can be found here.
This project is licensed under the MIT license - see the LICENSE file for details.