RISCV仿真环境搭建:riscv-tools

目录

1、安装软件包

2、设置环境变量

3、下载并编译riscv-fesvr

4、下载riscv-tools

5、测试环境

5.1、创建hello.c文件

5.2、编译执行

5.3、执行结果


在centos7系统上安装riscv-tools仿真工具(在装过riscv-gnu-toolchain交叉编译器情况下安装此仿真工具)。

两者的关系:riscv-gnu-toolchain是编译环境,利用这个工具链对C/C++文件进行编译,生成一个输出文件(file.o或者file.ELF类型),riscv-tools是仿真工具(模拟目标机器),对前面输出的可执行文件(.o类型)进行仿真。

1、安装软件包

对于Ubuntu :

$ sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev libusb-1.0-0-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev device-tree-compiler pkg-config libexpat-dev

对于Fedora :

$ sudo dnf install autoconf automake @development-tools curl dtc libmpc-devel mpfr-devel gmp-devel libusb-devel gawk gcc-c++ bison flex texinfo gperf libtool patchutils bc zlib-devel expat-devel

具体细节见:https://github.com/riscv-software-src/riscv-tools

但是我的Linux系统是centos7,对于centos在装过riscv-gnu-toolchain交叉编译器情况下,主要查看device-tree-compiler(即dtc工具)是否拥有。

2、设置环境变量

vim ~/.bashrc
export RISCV="/opt/riscv64" ///opt/riscv是工具的安装链接路径(与之前riscv-gnu-toolchain路径一致)
export PATH=$PATH:$RISCV/bin //$RISCV/bin链接工具的位置
:wq   #保存退出
source ~/.bashrc //使此设置永久有效,不然每次打开终端都需要重新设置

3、下载并编译riscv-fesvr

git clone https://github.com/riscv/riscv-fesvr.git
cd riscv-fesvr  #克隆完成进入克隆下来的目录
mkdir build && cd build   #创建并进入build文件夹
../configure --prefix=$RISCV --target=riscv64-unknown-elf  #检查环境并生成当前环境使用的Makefile,如果需要指定编译链的输出目录,就可以把R I S C V 改 为 相 应 目 录 或 者 配 置 RISCV改为相应目录或者配置RISCV改为相应目录或者配置RISCV环境变量为相应的目录。如果没有配置就默认为/bin --target=为你的编译链的路径
[sudo] make install  #编译安装,[sudo]代表sudo可选,安装输出目录的读写全写的实际情况选择

具体细节见:https://github.com/riscv/riscv-fesvr.git

4、下载riscv-tools

git clone --recursive https://github.com/riscv/riscv-tools.git

会下载下面的几个模块

  • Spike, the ISA simulator
  • riscv-tests, a battery of ISA-level tests
  • riscv-opcodes, the enumeration of all RISC-V opcodes executable by the simulator
  • riscv-pk, which contains bbl, a boot loader for Linux and similar OS kernels, and pk, a proxy kernel that services system calls for a target-machine application by forwarding them to the host machine

具体源码查看:https://github.com/riscv-software-src/riscv-tools

如果网络环境不好,可以使用下面命令一个模块一个模块单独下载:

git clone --recursive https://github.com/riscv/riscv-openocd.git
git clone --recursive https://github.com/riscv/riscv-isa-sim.git
git clone --recursive https://github.com/riscv/riscv-opcodes.git
git clone --recursive https://github.com/riscv/riscv-pk.git
git clone --recursive https://github.com/riscv/riscv-tests.git

下载完成后编译riscv-tools(注意:先编译riscv gun toolchain和riscv-fesvr,最后编译riscv tools,否则pk模块会编译出错)

 编译指令:

./build.sh
或者是其他可执行文件的命令:./build-spike-pk.sh

5、测试环境

5.1、创建hello.c文件

#include <stdio.h>

int main(void)
{
        printf("Hello Word!\n");
        return 0;
}

5.2、编译执行

/opt/riscv64/bin/riscv64-unknown-elf-gcc hello.c -o hello.o
/opt/riscv64/bin/spike pk hello.o

5.3、执行结果

bbl loader
hello, word

如图:

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
riscv-tools的安装可以按照以下步骤进行: 1. 首先,根据需要选择合适的编译器类型。根据引用,riscv-tools的编译器分为裸机和嵌入式Linux两大类。其中,裸机编译器为riscv32-unknown-elf-gcc和riscv64-unknown-elf-gcc,嵌入式Linux编译器为riscv32-unknown-linux-gnu-gcc和riscv64-unknown-linux-gnu-gcc。 2. 在命令行中执行以下步骤来编译相应的编译器: a. 编译裸机编译器riscv32-unknown-elf-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数 - 运行make命令进行编译 b. 编译裸机编译器riscv64-unknown-elf-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数 - 运行make命令进行编译 c. 编译嵌入式Linux编译器riscv32-unknown-linux-gnu-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数,包括启用Linux支持 - 运行make linux命令进行编译 d. 编译嵌入式Linux编译器riscv64-unknown-linux-gnu-gcc: - 进入riscv-gnu-toolchain目录 - 创建一个build目录并进入 - 运行configure命令,设置安装路径和相关参数,包括启用Linux支持和禁用multilib选项 - 运行make linux命令进行编译 3. 另外,根据引用,为了模拟RISC-V二进制文件,还需要构建riscv-fesvr和riscv-isa-sim两个组件。可以按照以下步骤进行: - 获取riscv-tools源码 - 进入riscv-tools目录 - 运行build.sh脚本进行构建 4. 创建安装目录并设置环境变量: - 创建安装目录,例如sudo mkdir /opt/RISCV/riscv64 - 设置目录权限,例如sudo chmod -R 777 /opt/RISCV/riscv64 - 编辑.bashrc文件,添加环境变量设置,例如export RISCV="/opt/RISCV/riscv64"和export PATH=$PATH:$RISCV/bin - 运行source ~/.bashrc命令使环境变量生效 综上所述,以上是安装riscv-tools的一般步骤。根据具体需求选择编译器类型,并根据引用、中提供的命令和参数进行操作即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Ubuntu安装riscv-gnu-toolchain和riscv-tools](https://blog.csdn.net/weixin_43283275/article/details/125365614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [RISC-V Tools编译安装三部曲之一](https://blog.csdn.net/l919898756/article/details/80987091)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Like_ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值