一、簡介
XEMU 是一款輕量級的 RISC-V 解釋型模擬器,基于 C 語言實現(xiàn),支持 RV32IM 指令集,支持簡單外設(shè)模擬
解釋型模擬器:取指、譯指、執(zhí)行、更新 PC,例如 Spick、XEMU
翻譯型模擬器:取值、譯指、生成本機指令序列、更新 PC,例如 QEMU
二、功能介紹
實際使用的空間大小詳見 link.lds 文件。
三、使用說明
- 指令集測試
在源代碼中關(guān)閉宏 ENABLE_UART
執(zhí)行 ./autotest.bat 或者 ./autotest.sh,自動測試所有指令
模擬器退出條件:x26=1,x27=0/1
在根目錄下執(zhí)行 make build && make run
模擬器退出條件:
通過 UART1 發(fā)送字節(jié)序列 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
運行結(jié)果
退出運行,Ctrl + b
五、寫在最后
可以在 vcs 上直接仿真,環(huán)境都配置好了,直接用 dve/verdi 看波形和 log,在 Makefile 中修改 risc-v gcc 編譯器路徑即可
提供了 fpga 的實現(xiàn),可以一鍵生成 xilinx 工程,提供了 coe 文件生成,可以一起下載到 fpga 中。工程中提供了 bootloader 的 demo,可以通過串口燒寫程序(燒寫到 bram 中,掉電丟失)
國產(chǎn)的 gowin fpga 也做了適配,使用 sispeed 的 Tang 9K 開發(fā)板。和 xilinx 的 fpga 操作類似
最后就是這幾天寫的 xemu,只適配了 rt-thread nano 3.1.5,完整的 rt-thread 沒有去移植.
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137720 -
模擬器
+關(guān)注
關(guān)注
2文章
881瀏覽量
43423 -
UART接口
+關(guān)注
關(guān)注
0文章
124瀏覽量
15363 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40386 -
RISC-V
+關(guān)注
關(guān)注
45文章
2323瀏覽量
46596
發(fā)布評論請先 登錄
相關(guān)推薦
評論