此仓库的源码已经包含了riscv-gnu-toolchain源码中除了QEMU之外的子模块代码,方便网络不佳,又需要体验RISC-V的开发者。 如果GitHub访问速度好的,去https://github.com/riscv/riscv-gnu-toolchain 拿最新代码。 如果网速不好,又需要全部源码的,去https://gitee.com/mirrors/riscv-gnu-toolchain 拿每天同步的代码。
接下来就按照官方教程编译。
Ubuntu
$ 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
Fedora/CentOS/RHEL OS
$ sudo yum install autoconf automake python3 libmpc-devel mpfr-devel gmp-devel gawk bison flex texinfo patchutils gcc gcc-c++ zlib-devel expat-devel
Arch Linux
$ pacman -Syyu autoconf automake curl python3 mpc mpfr gmp gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib expat
OS X
$ brew install python3 gawk gnu-sed gmp mpfr libmpc isl zlib expat
编译riscv64-unknown-elf-gcc
:
./configure --prefix=/opt/riscv
sudo make
编译64-bitriscv64-unknown-linux-gnu-gcc
:
./configure --prefix=/opt/riscv
sudo make linux
编译32-bit:
./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32d
sudo make linux
编译32-bit和64-bit:
./configure --prefix=/opt/riscv --enable-multilib
sudo make linux
这两个gcc的区别在于,elf-gcc是静态链接,linux-gnu-gcc是动态链接。
首先编译安装pk: https://github.com/riscv/riscv-pk。
然后编译安装spike:https://github.com/riscv/riscv-isa-sim
编译程序
riscv64-unknown-elf-gcc -o hello hello.c
运行
spike $(which pk) hello
下载安装QEMU https://www.qemu.org/download/#source
参考教程运行模拟环境:https://wiki.qemu.org/Documentation/Platforms/RISCV
另外也可以使用tinyemu: https://bellard.org/tinyemu/
Fedora镜像获取:https://dl.fedoraproject.org/pub/alt/risc-v/repo/virt-builder-images/images/
Fedora-Minimal-Rawhide-20200108.n.0-sda.raw.xz
Fedora-Minimal-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf
解压镜像:
unxz Fedora-Minimal-Rawhide-*-sda.raw.xz
启动模拟器:
qemu-system-riscv64 \
-nographic \
-machine virt \
-smp 4 \
-m 2G \
-kernel Fedora-Minimal-Rawhide-*-fw_payload-uboot-qemu-virt-smode.elf \
-bios none \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-device,rng=rng0 \
-device virtio-blk-device,drive=hd0 \
-drive file=Fedora-Minimal-Rawhide-20200108.n.0-sda.raw,format=raw,id=hd0 \
-device virtio-net-device,netdev=usernet \
-netdev user,id=usernet,hostfwd=tcp::10000-:22
登录用户名riscv
,密码fedora_rocks!
拷贝程序到模拟器中:
scp <user-name>@<ip address>:/<file path> ./
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。