2.7 KiB
Requirements:
Known Issues
Ubuntu 22.04 has some version issues with the compile toolchain, consider using a newer version or other distribution or docker. Or solve the issue and add it here.
Steps
Install
-
cmake
-
arm-none-eabi-gcc arm-none-eabi-gcc arm-none-eabi-binutils arm-none-eabi-gdb arm-none-eabi-newlib
-
doxygen
-
graphviz
-
rustup
|| Install using your packet manager or alternatively use the rust install script:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
(confirm default toolchain | nightly | complete | modify path variable: yes) -
At last: Satisfy Rust requirements
cd ../mission_rust
cargo update
rustup toolchain install nightly
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
rustup override set nightly
cargo build -Z build-std
Build the FSBL
FSBL is the First Stage Boot Loader and prepares the CPU and FPGA configuration for booting up the Second Stage Bootloader and finally the flight software.
Before building, the correct ps7_init.[c;h]
and some other configuration files need to be copied into the misc folder of the FSBL. The FSBL will run without this step, but some interfaces might not work as expected.
These files are specific to the actual hardware used and located in the bsp_z7/ps7_init
folder. The following examples assume the zedboard.
cd lib/sw_apps/zynq_fsbl/src
cp romeo-obsw/bsp_z7/ps7_init/zedboard/* ../misc/zed/
make BOARD=zed SHELL=/bin/bash
If you want, copy the fsbl.elf to the docker/compile_fsbl directory for easier access:
cp embeddedsw/lib/sw_apps/zynq_fsbl/src/fsbl.elf .
Steps
mission_rust
obsw
Clone the submodules (FreeRTOS and lwIP):
git submodule update --init --recursive
To build the obsw, run the following command
Configure and generate using cmake:
mkdir build_z7
cd build_z7
cmake -DCMAKE_TOOLCHAIN_FILE=../bsp_z7/cmake/arm-none-eabi.toolchain ..
Compile (-j
count your discretion):
make -j 8
The romeo-obsw binary can now be found in the build_z7
directory. The next step to deploy it is here: DEBUG_ON_ZEDBOARD.md.
Linux
The obsw can also be compiled and run on linux using the gcc-posix port of FreeRTOS.
build
Configure and generate using cmake:
mkdir build_linux
cd build_linux
cmake ..
Compile (-j
count your discretion):
make -j 8"
run
Run the binary:
./romeo-obsw
The linux binary is supposed to be run against a simulator listening on UDP Ports. Command line options configure this connection (./romeo-obsw --help
). A lightweight test simulator is at https://egit.irs.uni-stuttgart.de/ROMEO/obsw_dev_sim.