一、简介
XEMU 是一款轻量级的 RISC-V 解释型模拟器,基于 C 语言实现,支持 RV32IM 指令集,支持简单外设模拟
解释型模拟器:取指、译指、执行、更新 PC,例如 Spick、XEMU
翻译型模拟器:取值、译指、生成本机指令序列、更新 PC,例如 QEMU
二、功能介绍
实际使用的空间大小详见 link.lds 文件。
三、使用说明
执行 ./autotest.bat 或者 ./autotest.sh,自动测试所有指令
模拟器退出条件:x26=1,x27=0/1
在根目录下执行 make build && make run
模拟器退出条件:
通过 UART1 发送字节序列 0x1b 0x04
键盘输入 Ctrl + b
四、示例
运行 rt-thread-nano 3.15
修改 Makefile,路径 ./sim/config.mk
ifeq ($(shell uname), Linux)
EMBTOOLPATH = /home/crazy/Tools/compiler/xuantie/v8.4.0/riscv64-elf-x86_64-20210307
EMBTOOLPREFIX = ${EMBTOOLPATH}/bin/riscv64-unknown-elf
CC = ${EMBTOOLPREFIX}-gcc
OBJDUMP = ${EMBTOOLPREFIX}-objdump
OBJCOPY = ${EMBTOOLPREFIX}-objcopy
else
EMBTOOLPATH = C:/riscv-none-embed
EMBTOOLPREFIX = ${EMBTOOLPATH}/bin/riscv-none-embed
CC = ${EMBTOOLPREFIX}-gcc.exe
OBJDUMP = ${EMBTOOLPREFIX}-objdump.exe
OBJCOPY = ${EMBTOOLPREFIX}-objcopy.exe
endif
进入测试用例目录,编译目标程序
cd sim/rtthread-nano
make build
编译模拟器并运行
make build && make run
运行结果
退出运行,Ctrl + b
五、写在最后
可以在 vcs 上直接仿真,环境都配置好了,直接用 dve/verdi 看波形和 log,在 Makefile 中修改 risc-v gcc 编译器路径即可
提供了 fpga 的实现,可以一键生成 xilinx 工程,提供了 coe 文件生成,可以一起下载到 fpga 中。工程中提供了 bootloader 的 demo,可以通过串口烧写程序(烧写到 bram 中,掉电丢失)
国产的 gowin fpga 也做了适配,使用 sispeed 的 Tang 9K 开发板。和 xilinx 的 fpga 操作类似
最后就是这几天写的 xemu,只适配了 rt-thread nano 3.1.5,完整的 rt-thread 没有去移植.
全部0条评论
快来发表一下你的评论吧 !