0. 概述

1 目标

用 Rust 编写一个 RISC-V 的功能精确 ISS,这个 ISS 要能够运行 FreeRTOS。

2 项目名称

RRV-ISS (Rust RISC-V Instruction Set Simulator)。

3 关键点

根据指令牵扯的 module 和对流程的影响,选择下面的关键指令:

  • add:Shifts, Arithmetic, Logical, Compare Set
  • beq: Branches, Jump & Link
  • lb, sb: Loads, Stores
  • ecall, csr: CSR, Environment
  • fence: Synch

4 实现步骤

在具备计算机体系结构和 RISC-V 指令集架构相关知识后,可以通过下面几个大的步骤来实现 RISC-V 的功能精确 ISS。

  1. 准备开发环境:Rust开发环境、RISC-V GNU toolchain
  2. 设计模拟器架构
  3. 执行一条 add 指令
  4. 执行 branch 和 jump & link 指令
  5. 执行 load/store 指令
  6. 执行 ecall/ebreak/csr 指令
  7. 执行一段程序,并正常退出
  8. 与 Spike 的 trace 文件对比
  9. 运行 RISC-V 官方的测试
  10. 添加 timer 并处理 timer 中断
  11. 添加 uart
  12. 运行 FreeRTOS

采用不严格的 TDD 来开发,开发过程中单元测试和集成测试要同步进行。

5 源码仓库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容