Опубликован: 24.11.2024 | Доступ: свободный | Студентов: 1 / 0 | Длительность: 02:06:00
Лекция 5:

Создание приложений RISC-V

< Лекция 4 || Лекция 5: 12 || Лекция 6 >

Запуск приложений на эмуляторе

Запуск приложения RISC-V на эмуляторе обеспечивает большую гибкость, чем на симуляторе, но этапы установки требуют больше усилий. Чтобы запустить приложение RISC-V на эмуляторе, необходимо иметь следующие зависимости:

  1. Linux-машина - создание образа Linux на других машинах нетривиально, поэтому для начала рекомендуется использовать Linux-машину.
  2. тулчейн RISC-V: https://github.com/riscv-software-src
  3. QEMU: git clone --depth 1 --branch v5.0.0 https://github.com/qemu/qemu
  4. Linux: git clone --depth 1 --branch v5.4 https://github.com/torvalds/linux
  5. Busybox: git clone --depth 1 git://git.busybox.net/busybox

Перечисленные выше ветки репозиториев являются предлагаемыми версиями, которые могут часто меняться. Вы можете выбрать и другие. Приведенная выше документация может устареть, если в какой-либо из зависимостей произойдут изменения. Проверьте страницу документации Запуск 64- и 32-битных RISC-V Linux на QEMU, чтобы узнать последние поддерживаемые версии. Если эта документация не работает, обязательно спросите в списке рассылки linux-riscv.

Сборка QEMU для RISC-V
cd qemu
./configure --target-list=riscv64-softmmu --prefix=/path/to/keep/qemu
make -j $(nproc)
make install
Сборка Linux для целевой системы RISC-V
cd linux
make ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- defconfig
make ARCH=riscv CROSS_COMPILE=riscv64-unknown-linux-gnu- -j $(nproc)

Убедитесь, что префикс кросс-компилятора совпадает с префиксом вашего тулчейна. В приведенном выше примере компилятор GCC - riscv64-unknown-linux-gnu-gcc, поэтому флаг CROSS_COMPILE --riscv64-unknown-linux-gnu-.

Сборка busybox
cd busybox
CROSS_COMPILE=riscv64-unknown-linux-gnu- make defconfig
CROSS_COMPILE=riscv64-unknown-linux-gnu- make -j $(nproc)
Запуск образа Linux в QEMU
sudo /path/to/keep/qemu/bin/qemu-system-riscv64 -nographic -machine
virt \
     -kernel /path/to/linux/image -append "root=/dev/vda ro
console=ttyS0" \
     -drive file=busybox,format=raw,id=hd0 \
     -device virtio-blk-device,drive=hd0
Запуск приложения на QEMU на "голом железе"
/path/to/keep/qemu/bin/qemu-system-riscv64 -nographic -machine virt
-kernel /path/to/binary -bios none

Дополнительные конфигурации QEMU для RISC-V можно найти в официальной документации. Помимо симуляторов и эмуляторов, приложения RISC-V можно запускать на виртуальных машинах, а также на имеющихся в продаже платах для разработки. Дополнительную документацию по отладке проблем с "голым железом" можно найти здесь. Вы можете установить виртуальную машину RISC-V, как описано в документации здесь.

Справочные материалы

Платы RISC-V

Страница RISC-V Exchange представляет собой коллекцию доступного физического оборудования в экосистеме RISC-V. Этот список курируется сообществом.

Ядра RISC-V

Страница RISC-V Exchange: Cores & SoCs представляет собой коллекцию доступных IP-ядер систем на кристалле (СнК) в экосистеме RISC-V.

Поставщики тулчейнов и другого аппаратного и программного обеспечения:

< Лекция 4 || Лекция 5: 12 || Лекция 6 >