电子头条

使用ripes进行risc-v可视化仿真调试

2023-04-03
    阅读数:

前言

在学习 RISC-V 时往往需要有一些工具进行汇编级别的代码仿真调试 , 或者进行一些可视化的仿真 , 一般使用 qemu ,但是其对于新手来说稍微显得有点复杂。 ripes 则是一个非常不错的项目可以满足这种需求,并且其提供一些可视化的模块,可以进行仿真测试,很方便。

项目地址如下 :

https://github.com/mortbopet/Ripes

下载

https://github.com/mortbopet/Ripes/releases

下载最新版本 Ripes-v2.2.6-3-g605cb01-win-x86_64.zip

解压即可使用

使用

Processor

双击打开 Ripes.exe

点击如下图标即可运行,默认显示 Processor 界面

中间是处理器的框图 , 会显示状态

右边是寄存器值 ,

右下角是执行的指令序列

旁边是性能指标比如执行了多少个 Cycles ,图中是 95 ;执行了多少指令图中是 85 ;每个周期执行多少条指令 IPC 图中是 0.895 85/95, 每条指令的周期数 CPI 图中为 1.12 95/85 ;时钟频率。

Memory

点击左侧 Memory 图标可以查看内存信息 , 右边是存储布局 ,

下面的下拉框可以选择要查看的存储区块和地址。

Cache

点击左侧的 Cache 图标 , 可以看到 Cache 信息,可以切换查看 L1 Data L1 Instr Cache

代码

点击左侧 Editor, 可以看到代码 , 以及寄存器值

可以按如下图标单步运行 , 进行仿真调试

配置

菜单栏 Edit->Settings

UI 相关配置 , 一般不需要修改

仿真相关配置 , 一般不需要修改 , 记住 IO 的开始地址 , 自己编程需要使用

编译器设置 , 设置自己的编译的地址 , windows 下可使用 riscv

-none-embed-gcc ,编译参数按照实际修改 , 后面设置 text,data,bss 段的地址一般默认即可

编辑器设置 , 一般默认即可

使用例程

菜单栏 File->Load Program 可以加载程序

也可以使用样例程序 , C 程序 , 汇编程序和已经编译好的 elf 程序。

LED 样例

打开 leds.c 程序

按照如下点击 LED Matrix 添加 LED 矩阵

打开编辑器 , 看到 LED 矩阵的寄存器基地址 LED_MATRIX_0_BASE

和刚才生成的对应, LED_MATRIX_0_WIDTH x LED_MATRIX_0_HEIGHT 是刚才的矩阵大小

编译

运行

可以看到 LED 显示如下

还有开关和按键的模块可以使用

总结

使用 ripes 可以快速进行验证。在学习 risc-v 汇编时比较方便 , 可以对照 c 和汇编进行调试;有 LED 和按键,开关等基本模块进行可视化仿真,是 risc-v 学习的一个不错的工具。


展开↓