如何搭建RISC-V编译环境与运行环境

  介绍

如何搭建RISC-V编译环境与运行环境,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们现在芯片被美国卡脖子,所以RISC-V是大势所趋。华为鸿蒙提供的编译器(https://repo.huaweicloud.com/harmonyos/compiler/)里也有RISC-V。虽然现在硬件资源比较少,但是通过软件模拟环境,可以提早做好准备。

RISC-V GNU工具链

源码获取

要体验RISC-V,首先需要安装交叉编译器。然而国内的网络很差,想要在GitHub上拿到源码(https://github.com/riscv/riscv-gnu-toolchain)编译非常困难。比较庆幸的是Gitee上有镜像(https://gitee.com/mirrors/riscv-gnu-toolchain),每天同步一次。

获取源码:

 git  clone  https://gitee.com/mirrors/riscv-gnu-toolchain.git
  cd  riscv-gnu-toolchain
  git  submodule  update ——init ——递归

然而在我通过Gitee拿代码的时候,子模块下载速度依然非常慢,特别是QEMU里的一个子模块。于是我把QEMU从同步中删除了,因为不影响编译:

 git  rm ——cached  QEMU
  git  submodule  update ——init ——递归

考虑到下载速度,我把拿到的所有代码放到Gitee上(https://gitee.com/yushulx/riscv-gnu-toolchain)。这个代码库不做更新,只提供给网络差,又需要体验RISC-V的人。需要拿最新代码就去GitHub或者Gitee镜像。

编译安装

接下来就按照官方教程编译。

依赖工具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 外籍OS X

<>之前,美元brew  install  python3  gawk  gnu-sed  gmp  mpfr  libmpc  isl  zlib 外籍
编译GCC

编译<代码> riscv64-unknown-elf-gcc :

。/configure ——prefix=/opt/riscv
  sudo 使

编译64位<代码> riscv64-unknown-linux-gnu-gcc :

。/configure ——prefix=/opt/riscv
  sudo  make  linux 

编译32位:

。/configure ——prefix=/opt/riscv ——与其主要=rv32gc  with-abi=ilp32d
  sudo  make  linux 

编译32位和64位:

。/configure ——prefix=/opt/riscv ——enable-multilib
  sudo  make  linux 

这两个gcc的区别在于,elf-gcc是静态链接,linux-gnu-gcc是动态链接。

RISC-V运行环境

模拟器和仿真器的不同之处在于模拟器提供的是一个完整的模拟环境模拟器。

首先编译安装pk: https://github.com/riscv/riscv-pk。

然后编译安装钉:https://github.com/riscv/riscv-isa-sim

编译程序

 riscv64-unknown-elf-gcc  -o  hello “

运行

 spike 美元(which  pk),你好

<强>注意强,如果用<代码> riscv64-unknown-linux-gnu-gcc>

 bbl 加载程序
  not  a  statically  linked  ELF 项目

模拟器下载安装QEMU https://www.qemu.org/download/

源参考教程运行模拟环境: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/

如何搭建RISC-V编译环境与运行环境

解压镜像:

 unxz  Fedora-Minimal-Rawhide - * -sda.raw.xz 

启动模拟器:

<>之前,qemu-system-riscv64  \   ,,-nographic  \   ,,-machine  virt  \   ,,-smp  4, \   ,,-m  2 g  \   ,,-kernel  Fedora-Minimal-Rawhide - * -fw_payload-uboot-qemu-virt-smode.elf  \   ,,-bios  none  \   ,,-object  rng-random文件名=/dev/urandom id=rng0  \   ,,-device  virtio-rng-device rng=rng0  \   ,,-device  virtio-blk-device,驱动=hd0  \   ,,-drive 文件=fedora -最小生皮- 20200108. - n.0 sda.raw格式=生,id=hd0  \   ,,-device  virtio-net-device netdev=usernet  \   ,才能-netdev 用户id=usernet hostfwd=tcp:: 10000: 22

如何搭建RISC-V编译环境与运行环境