RISC-V 模拟器 Spike 安装使用:3 步完成编译并跑通第一个程序

发布时间:2026/10/20 2:04:46
RISC-V 模拟器 Spike 安装使用:3 步完成编译并跑通第一个程序 RISC-V 模拟器 Spike 安装使用3 步完成编译并跑通第一个程序【免费下载链接】riscv-isa-simSpike, a RISC-V ISA Simulator项目地址: https://gitcode.com/GitHub_Trending/ri/riscv-isa-simSpike 是 RISC-V 模拟器 Spikeriscv-isa-sim它是 RISC-V 指令集的软件功能模型支持 RV32/RV64 基线指令以及 A、M、F、D、V 等多个扩展覆盖 M、S、U 三级特权。对没有硬件就要验证指令行为、或想读源码学习 RISC-V 架构的开发者来说它当天就能装好、跑起来后续排查指令语义问题时也很有用。Spike 安装前环境自检⚠️ 安装时最容易卡住的两个依赖是 dtc 和 Boost动手前先对照下表自检项目要求说明操作系统Linux / macOSWindows 建议走 WSL编译器GCC 或 Clang现代版本均可构建工具GNU Makeconfigure 脚本已随仓库提供无需重新生成设备树工具device-tree-compilerdtcconfigure 会检查此项缺失直接报错退出Boost 库regex、system 头文件供交互调试的命令 I/O 模块使用磁盘500 MB 以上含源码与编译产物网络稳定拉取源码与依赖包准备命令# Ubuntu sudo apt-get install build-essential device-tree-compiler libboost-regex-dev libboost-system-dev # macOS brew install gcc dtc boostSpike 安装主线源码、编译、安装一气呵成整条主线只有三步每步做完都能当场确认结果git clone https://gitcode.com/GitHub_Trending/ri/riscv-isa-sim cd riscv-isa-sim mkdir build cd build ../configure --prefix$HOME/riscv make -j4 sudo make installclone获取完整源码ls能看到 configure 文件即说明仓库内容齐全。configure检查 dtc、Boost 等依赖并生成 Makefile输出末尾没有not found字样就算通过。make编译全部模块结束后spike_main/下会出现可执行的 spike 文件。make install安装到--prefix指定的$HOME/riscv该目录的 bin/ 下出现 spike 即成功。Spike PATH 配置与版本验证export PATH$HOME/riscv/bin:$PATH spike --version看到版本号打印出来说明工具已就位。把这行 export 写进~/.bashrc一次配置、长期受益以后在任何目录都能直接调用 spike不用记安装路径。Spike 源码目录速览目录职责riscv/模拟核心处理器、MMU各条指令实现在 riscv/insns/fesvr/前端服务器负责系统调用与设备 I/Ofdt/设备树解析与生成debug_rom/调试模式运行所依赖的 ROM 代码spike_main/spike 主程序入口spike_dasm/spike-dasm 反汇编工具customext/RoCC 自定义指令扩展示例Spike 运行第一个程序最小系统调用示例写一段 4 行汇编存为 hello.s用系统调用退出程序.section .text .globl _start _start: li a0, 0 li a7, 93 ecall这里 a0 放退出码a7 放系统调用号93 即 exitecall 是触发系统调用的指令。编译并运行riscv64-unknown-elf-gcc -nostdlib -o hello hello.s spike hello裸机模式下系统调用由 Spike 直接接管所以这个例子不需要额外部署操作系统或 pk。Spike 排错速查现象原因处理configure 报 device-tree-compiler not found未安装 dtcUbuntusudo apt-get install device-tree-compilermacOSbrew install dtcmake 报 boost 头文件缺失未装 Boost 开发库apt-get install libboost-regex-dev libboost-system-devspike: command not found安装目录不在 PATHexport PATH$HOME/riscv/bin:$PATHPermission denied文件缺执行权限chmod x hello想逐条指令单步未开交互调试加-dspike -d hello按回车执行一条指令想看执行过程未开日志spike -l hello或用--log名称写入文件Spike 进阶特性与常用参数 定制指令分三步在riscv/insns/指令名.h中描述行为把操作码加入 riscv/opcodes.h再在 riscv/riscv.mk.in 注册后重新编译customext/ 里有可直接参考的 RoCC 示例。常用运行参数-m调整内存大小MiB-p指定 hart 数量-l输出执行日志-d进交互调试想顺带观察缓存行为再加--ic/--dc/--l2即可搭出简单的缓存模型。延伸资料README.md支持的扩展清单与完整构建说明选型时先看这里configure.acconfigure 脚本来源依赖检查与构建开关都在里面ChangeLog.md各版本变更历史升级前用来判断兼容性装好之后建议先用-d和-l把上面的小程序单步过一遍再对照 riscv/ 下的源码看每条指令的实现细节。【免费下载链接】riscv-isa-simSpike, a RISC-V ISA Simulator项目地址: https://gitcode.com/GitHub_Trending/ri/riscv-isa-sim创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询