# XEMU **Repository Path**: testos/xemu ## Basic Information - **Project Name**: XEMU - **Description**: XEMU 是一款轻量级的 RISC-V 解释型模拟器,基于 C 语言实现,支持 RV32IM 指令集,支持简单外设模拟 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2023-08-11 - **Last Updated**: 2023-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 22:12 2023/6/24 ## 一、简介 XEMU 是一款轻量级的 RISC-V 解释型模拟器,基于 C 语言实现,支持 RV32IM 指令集,支持简单外设模拟 - 解释型模拟器:取指、译指、执行、更新 PC,例如 Spick、*XEMU* - 翻译型模拟器:取值、译指、生成本机指令序列、更新 PC,例如 QEMU ## 二、功能介绍 ### 1. 环境介绍 - 软件编译器:`GNU MCU Eclipse RISC-V Embedded GCC, 64-bit (gcc version 8.2.0)` ### 2. 地址分配 |起始地址 |结束地址 |大小|外设 |支持| |:-: |:-: |:-: |:-: |:-: | |0x0000_0000|0x0fff_ffff|512K|ROM |√ | |0x1000_0000|0x1fff_ffff|512K|RAM |√ | |0x2000_0000|0x2fff_ffff|4K |TIMER1|× | |0x3000_0000|0x3fff_ffff|4K |UART1 |√ | *实际使用的空间大小详见 link.lds 文件。* ## 三、使用说明 ### 1. 指令集测试 1. 在源代码中关闭宏 `ENABLE_UART` 2. 执行 `gcc -DDEBUG_ISA xemu.c -o xemu.exe` 3. 执行 `xemu.exe ./rv32im/rv32ui-p-add.bin`,观察打印的结果 4. 执行 `./autotest.bat`,自动测试所有指令 *模拟器退出条件:x26=1,x27=0/1* ### 2. 处理器功能模拟 1. 进入 `./sim` 文件夹下,选择测试用例并进入,执行 `make build` 2. 在根目录下执行 `make build && make run` *模拟器退出条件:1. 通过 UART1 发送字节序列 0x1b 0x04* *模拟器退出条件:2. 键盘输入 Ctrl+b/B* ## 四、修改日志 - v3.0 - 修复 bug(23:36 2023/7/6) - v2.3 - 重构代码,减少适配对 rt-thread 源码的修改(22:12 2023/07/04) - v2.2 - 适配 rt-thread(16:59 2023/6/27) - v2.1 - 支持在 Linux 平台运行(00:31 2023/6/27) - v2.0 - 添加键盘输入线程(14:17 2023/6/26) - v1.1 - 添加 UART RX 功能(05:27 2023/6/26) - v1.0 - 创建项目并集成测试(22:12 2023/6/24) ## 五、维护 如果有任何疑问或者建议,欢迎在下方评论,或者通过邮件联系(E-mail:ytesliang@163.com),我会尽可能在 24 小时内进行回复。 ATONEMAN 2023.06.24