FMP3+TECS/Rust is a framework that combines FMP+TECS — a componentized framework applying TECS to TOPPERS/FMP3 — with TECS/Rust, which adapts TECS for Rust.
The evaluation directory contains the samples used in the paper. Instructions for running each sample are provided in each respective directory.
-
Vitis and Vivado
-
You can download Vitis and Vivado from here.
-
The sample programs can run with a minimal configuration that does not use the PL part.
-
The project used was the contents extracted from
fmp3_workspace.zip.
-
-
-
Target Board
-
Zybo Z7_10 Zynq-7010 ARM development board
- A dual-core development board equipped with an ARM Cortex-A9.
-
-
Toolchains
-
Rust
-
Rust is required to compile the code.
-
Install Rust from here.
-
Verified to work with
rustc 1.89.0-nightly (bf64d66bd 2025-05-21).
-
-
bindgen
-
Installing bindgen is required for builds.
-
Install bindgen from here.
-
Verified to work with
bindgen-cli v0.69.0.
-
-
Ruby
-
Ruby is required to use the TECS generator and the kernel configurator.
-
Verified to work with
ruby 2.7.8p225; versions 3.0 or later may not work properly.
-
-
All of the following operations are performed on XSDK.
-
Build
-
Move to a directory under the
evaluationdirectory that contains aMakefile. -
To enable optimization of mutual exclusion, set
ENABLE_TECS_RUST_OPTto1in theMakefile. -
Run the
makecommand. -
This builds the Rust code and links it with the FMP3 kernel to produce
fmp.elf.
-
-
Run
-
Unzip
fmp3_workspace.zip. -
Open the extracted
fmp3_workspacein Vitis. -
In Vitis, write
fmp.elfto core0 usinglaunch.jsonto run it.
-
It is released under TOPPERS license. The copyright holder is TOPPERS Project TECS Working Group. Please refer to LICENSE.md for details.