资讯动态

30 分钟快速上手:Spike RISC-V 模拟器从源码编译到跑通第一个程序

发布时间:2026/8/24 3:02:56 来源:尧图企业网站定制
30 分钟快速上手Spike RISC-V 模拟器从源码编译到跑通第一个程序【免费下载链接】riscv-isa-simSpike, a RISC-V ISA Simulator项目地址: https://gitcode.com/GitHub_Trending/ri/riscv-isa-sim验证自研 RISC-V 核、排查某条指令的行为你都需要一个可信的参考模型。Spike 就是这样一个 RISC-V ISA 模拟器它在软件里直接运行 RISC-V 程序还原真实 CPU 的行为。本文把源码编译、验证、跑通第一个程序这几步走一遍顺带把常用参数和常见坑整理成表照着做就能上手。 30 秒认识 Spike RISC-V 模拟器是什么功能级 RISC-V ISA 模拟器功能模型只模拟指令算出什么结果不建模时序可模拟 1 个或多个 RISC-V 核hart。能干什么覆盖 RV32/RV64 基线到 M/A/F/D/C、向量 V、加密 Zk*、特权级 M/S/U、虚拟化 H 等一大批扩展还能接 OpenOCD gdb 做调试。适合谁RISC-V 核设计者拿它当行为对照、操作系统/内核开发者、指令集学习者。源码按模块划分想深入时好定位riscv/insns/放每条指令的实现spike_main/是主程序入口fesvr/负责系统调用和 I/O。要加自定义指令主要看第一个目录。 安装路线二选一二进制直装或源码编译二进制直装部分发行版或 riscv 工具链包里有预编译的 spike拿到就能用适合只想跑程序的人。源码编译能拿到最新主线特性也方便改代码、加指令耗时几分钟。选择建议只跑现成测试程序二进制就够要验证新扩展或加自定义指令走源码编译——本文就是这条路线。⚙️ 源码编译三步走三条命令搞定先装系统依赖设备树编译器 Boost 库Debian/Ubuntu 一条命令sudo apt install device-tree-compiler libboost-regex-dev libboost-system-dev然后依次执行三步# 1) 拉源码 git clone https://gitcode.com/GitHub_Trending/ri/riscv-isa-sim cd riscv-isa-sim # 2) 配置装到 $HOME/riscv ./configure --prefix$HOME/riscv # 3) 编译并安装 make -j$(nproc) make install装完把 bin 目录加进 PATHexport PATH$PATH:$HOME/riscv/bin。用 yum 的系统把依赖那步换成yum install dtc libboost-devel即可。✅ 验证 RISC-V 模拟器安装成功$ spike --help Spike RISC-V ISA Simulator 1.1.1-dev usage: spike [host options] target program [target options]终端第一行打印出Spike RISC-V ISA Simulator 1.1.1-dev就装好了。--help同时列出全部可用参数等于一份参数速查后面跑错了可以先回来对一遍。 spike 第一次运行跑一个 hello 程序写个最短的hello.c#include stdio.h int main() { printf(Hello, RISC-V!\n); return 0; }编译成 RISC-V ELF再用pk运行。pk是代理内核给标准输入输出这类系统调用提供一个最小运行环境没有它 printf 无处落地riscv64-unknown-elf-gcc -o hello hello.c spike pk hello # 预期输出Hello, RISC-V!默认跑 1 个核想试多核加-p比如spike -p2 pk hello就是双核。 spike 常用参数速查参数作用示例-pn模拟核数hart 数量spike -p2 pk hello-mn目标内存大小MiB默认 2048spike -m1024 pk hello-d进入交互式调试模式spike -d pk hello-l输出逐条指令执行日志spike -l --logrun.txt pk hello--isa串指定 ISA 串默认 rv64imafdc_zicntr_zihpmspike --isarv64imafdc ...--instructionsn执行 n 条指令后自动停spike --instructions1000 ...-g记录 PC 命中直方图找热点代码spike -g pk hello️ 排坑手册Spike RISC-V 模拟器常见问题问题一现象装完后终端敲spike报command not found原因安装前缀的 bin 目录没进 PATH解法export PATH$PATH:$HOME/riscv/bin并写进 shell 启动文件持久化问题二现象configure 阶段报device-tree-compiler not found原因缺 dtc设备树编译器解法Debian/Ubuntu 用sudo apt install device-tree-compilerCentOS 用yum install dtc问题三现象编译阶段报 boost 相关的 undefined reference 或找不到头文件原因Boostregex/system开发库没装解法sudo apt install libboost-regex-dev libboost-system-dev问题四现象spike pk hello报执行失败或找不到 pk原因riscv-pk代理内核没装或没和 spike 放在同一路径解法装好 riscv-pk把pk可执行文件放进 spike 同目录或 PATH 接下来去哪README.md支持的扩展清单和完整构建说明configure.ac构建系统配置入口ci-tests/hello.cCI 自检用的最小示例【免费下载链接】riscv-isa-simSpike, a RISC-V ISA Simulator项目地址: https://gitcode.com/GitHub_Trending/ri/riscv-isa-sim创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价