Проект расчитан под работу в системе Linux (Ubuntu). Представленный проект использовал WSL (Ubuntu 22.04), поэтому имеются обращения к Windows компонентам. Это было сделано ввиду удобства работы в основной системе и наличия требуемого ПО. Для начала работы следует установить cross-compile risc-v, proxy kernel для симулятора spike и сам симулятор Spike, утилиту expect. Для запуска на FPGA потребуется соответствующая среда разработки.
Актуальные инструкции в соответствующих репозиториях!
Создаем папку и клонируем репозиторий:
mkdir RISCV
cd RISCV
git clone https://github.com/riscv/riscv-gnu-toolchain
Добавляем в ~/.bashrc:
export RISCV=/home/<user_name>/RISCV
export PATH=$PATH:$RISCV/bin
Собираем cross-compile с требуемыми параметрами
cd riscv-gnu-toolchain/
mkdir build
cd build
sudo apt-get update
sudo apt-get upgrade
# По необходимости доустанавливаем пакеты
sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev
../configure --prefix=$RISCV --with-arch=rv32im_zifencei_zicsr --with-sim=spike
make
cd RISCV/
git clone https://github.com/riscv-software-src/riscv-pk
cd riscv-pk/
sudo apt install device-tree-compiler
mkdir build
cd build/
../configure --prefix=$RISCV --host=riscv32-unknown-elf --with-arch=rv32im_zifencei_zicsr
make
make install
git clone https://github.com/riscv-software-src/riscv-isa-sim
cd riscv-isa-sim/
mkdir build
cd build/
../configure --prefix=$RISCV
make
sudo make install