本帖最后由 jf_1137202360 于 2023-4-3 16:55 编辑
本文转自公众号,欢迎关注
https://mp.weixin.qq.com/s/tcG7yCYMsDzUIQmwL-e6BQ
文章链接
前言 在学习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,可以看到代码,以及寄存器值 可以按如下图标单步运行,进行仿真调试
配置
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_WIDTHxLED_MATRIX_0_HEIGHT是刚才的矩阵大小
编译
运行 可以看到LED显示如下
还有开关和按键的模块可以使用
总结 使用ripes可以快速进行验证。在学习risc-v汇编时比较方便,可以对照c和汇编进行调试;有LED和按键,开关等基本模块进行可视化仿真,是risc-v学习的一个不错的工具。
|