基于Qemu的RISC-V实验平台
现在越来越多的公司开始关注和使用RISC-V,或者已经有一些公司开始把RISC-V集成到自己的芯片中,但是市面上还是缺乏一款优秀的RISC-V开发板,既能满足软件开发验证使用,又能提供丰富的学习例程。
在无RISC-V开发板的情况下,为了能够学习验证RISC-V相关的代码,通过Qemu模拟器搭建RISC-V运行环境,这样也能完全达到实验学习的目的。
下载编译工具
1 | wget https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2023.10.18/riscv32-glibc-ubuntu-20.04-gcc-nightly-2023.10.18-nightly.tar.gz |
打开~/.bashrc
后在文件末尾添加如下命令:
1 | export PATH=$PATH:/path/to/riscv32/bin |
保存之后,同步修改:
1 | source ~/.bashrc |
Qemu构建
1 | git clone -b qemu-v7.2.0 https://github.com/chasinglulu/qemu.git |
OpenSBI构建
1 | git clone https://github.com/chasinglulu/opensbi.git |
更多关于OpenSBI的构建说明,参考OpenSBI README
U-Boot构建
首先要将/path/to/opensbi/build/platform/generic/firmware
目录下fw_dynamic.bin
文件复制到u-boot源代码目录下,在编译时binman会使用这个bin文件打包出一个u-boot.itb。
1 | git clone -b hobot-uboot https://github.com/chasinglulu/u-boot.git |
运行调试
启动顺序
启动案例
1 | qemu-system-riscv32 -M virt -smp 4 -m 2G -display none -serial stdio -bios /path/to/u-boot/spl/u-boot-spl.bin -device loader,file=/path/to/u-boot/u-boot.itb,addr=0x80200000 |
运行输出日志如下: