使用ripes进行risc-v可视化仿真调试
前言
在学习
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
学习的一个不错的工具。