用Rust编写RISC-V的功能精确ISS

简介: RRV-ISS 是一个用 Rust 编写-V 指令集模拟器,目标是运行 FreeRTOS。

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 来开发,开发过程中单元测试和集成测试要同步进行。

相关文章
|
C# Windows 容器
WPF技术之CheckBox控件
WPF(Windows Presentation Foundation)的CheckBox控件用于表示一个可以选中或取消选中的复选框。
1448 0
|
6月前
|
人工智能 自然语言处理 算法
大模型赋能文献综述:研究生必备的技术化梳理指南原创
本文针对研究生文献综述三大痛点——筛选低效、逻辑混乱、格式繁琐,提出基于AI大模型(如PaperRed、ChatPDF)的技术化解决方案:语义检索精准筛选核心文献、知识图谱智能构建逻辑框架、规范库自动适配引用格式,并支持学科定制与文献计量分析,显著提升综述效率与深度。(239字)
|
3月前
|
存储 缓存 监控
【JVM虚拟机】堆内存分代模型:年轻代(Eden+Survivor)、老年代、元空间Metaspace(附《思维导图》+《面试高频考点清单》)
本文系统梳理JVM堆内存分代模型:基于弱分代假说,划分为年轻代(Eden+2×Survivor,8:1:1)和老年代(2:1),辅以元空间;详解Minor GC复制机制、对象年龄晋升、四大入老年代路径及Full GC触发条件,涵盖核心参数与调优要点。
|
6月前
|
安全 关系型数据库 jenkins
Acunetix v26.02.24 发布,新增功能简介
Acunetix v26.02.24 发布,新增功能简介
703 1
|
11月前
|
人工智能 自然语言处理 搜索推荐
拔俗AI政务智能体:让政务服务更聪明、更贴心
AI政务智能体是基于人工智能的“数字公务员”,可24小时在线解答政策疑问、智能引导办事、自动填表申报,让政务服务更高效便捷。它整合政策数据,实现“一问即答、一办到底”,提升群众满意度,助力政府治理现代化,推动“数据多跑路,群众少跑腿”真正落地。
570 0
|
前端开发 JavaScript API
使用 JavaScript 实现图片上传
使用 JavaScript 实现图片上传
595 1
|
Linux C语言
教你在QEMU上运行RISC-V Linux
教你在QEMU上运行RISC-V Linux
|
人工智能 智能设计 物联网
阿里云设计中心携手金鸡电影节青年创作人,用AI技术加速电影工业升级
阿里云设计中心携手金鸡电影节青年创作人,用AI技术加速电影工业升级
|
存储 缓存 算法
深入探究LRU缓存机制:优化内存利用与提升性能
深入探究LRU缓存机制:优化内存利用与提升性能
2000 1