sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build device-tree-compiler```
- Клонируем репозиторий с RISC-V toolchain:
git clone https://github.com/riscv/riscv-gnu-toolchain
- Далее осуществляем переход в склонированный репозиторий:
cd riscv-gnu-toolchain
- Осуществляем конфигурацию и сборку проекта:
./configure --prefix=/opt/riscv --with-arch=rv32i --with-multilib-generator="rv32i-ilp32--;rv32ima-ilp32-- rv32imafd-ilp32--"
make -j$(nproc)
- Добавляем собранный toolchain в PATH для запуска из терминала:
export PATH="/opt/riscv/bin:$PATH"
- Осуществляем проверку корректности установки RISC-V toolchain:
which riscv32-unknown-elf-as
riscv32-unknown-elf-as --version
riscv32-unknown-elf-gcc --version
- Получаем следующий вывод:
/opt/riscv/bin/riscv32-unknown-elf-as
GNU assembler (GNU Binutils) 2.43.1
Copyright (C) 2024 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `riscv32-unknown-elf'.
riscv32-unknown-elf-gcc (g04696df0963) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- Клонируем репозиторий с QEMU:
git clone https://gitlab.com/qemu-project/qemu.git
- Осуществляем конфигурацию и сборку проекта:
./configure --target-list=riscv32-softmmu --prefix=/opt/qemu32
make -j$(nproc)
make install
- Добавляем собранный toolchain в PATH для запуска из терминала:
export PATH="/opt/qemu32/bin:$PATH"
- Осуществляем проверку корректности установки эмулятора QEMU:
which qemu-system-riscv32
qemu-system-riscv32 --version
qemu-system-riscv32 -machine help
- Получаем следующий вывод:
/opt/qemu32/bin/qemu-system-riscv32
QEMU emulator version 9.1.50 (v9.1.0-1334-gdaaf51001a-dirty)
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers
Supported machines are:
none empty machine
opentitan RISC-V Board compatible with OpenTitan
sifive_e RISC-V Board compatible with SiFive E SDK
sifive_u RISC-V Board compatible with SiFive U SDK
spike RISC-V Spike board (default)
virt RISC-V VirtIO board
qemu-system-riscv32 -machine virt -m 128M -bios none -device loader,file=./prog -nographic -s
export PATH="/opt/riscv/bin:$PATH" export PATH="/opt/qemu32/bin:$PATH"