Создание приложений RISC-V
Запуск приложений на эмуляторе
Запуск приложения RISC-V на эмуляторе обеспечивает большую гибкость, чем на симуляторе, но этапы установки требуют больше усилий. Чтобы запустить приложение RISC-V на эмуляторе, необходимо иметь следующие зависимости:
- Linux-машина - создание образа Linux на других машинах нетривиально, поэтому для начала рекомендуется использовать Linux-машину.
- тулчейн RISC-V: https://github.com/riscv-software-src
- QEMU: git clone --depth 1 --branch v5.0.0 https://github.com/qemu/qemu
- Linux: git clone --depth 1 --branch v5.4 https://github.com/torvalds/linux
- 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, как описано в документации здесь.
Справочные материалы
- Tech: Toolchain & Runtime Subcommittee mailing list (tech-toolchain-runtime@lists.riscv.org)
- кросс-компилятор GCC
- 64-битовые модели данных
- архив linux-riscv
- Running 64- and 32-bit RISC-V Linux on QEMU
- Qemu: Документация/Платформы/RISCV
- Debian - RISC-V Wiki
Платы RISC-V
Страница RISC-V Exchange представляет собой коллекцию доступного физического оборудования в экосистеме RISC-V. Этот список курируется сообществом.
Ядра RISC-V
Страница RISC-V Exchange: Cores & SoCs представляет собой коллекцию доступных IP-ядер систем на кристалле (СнК) в экосистеме RISC-V.
Поставщики тулчейнов и другого аппаратного и программного обеспечения: