用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控件用于表示一个可以选中或取消选中的复选框。
1229 0
|
网络协议 安全 Unix
深入剖析进程间通信:Unix 套接字、共享内存与IP协议栈的性能比较
深入剖析进程间通信:Unix 套接字、共享内存与IP协议栈的性能比较
498 2
|
10月前
|
存储 缓存 安全
【原理】【Java并发】【volatile】适合初学者体质的volatile原理
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是写出高端的CRUD应用。2025年,我正在沉淀自己,博客更新速度也在加快。在这里,我会分享关于Java并发编程的深入理解,尤其是volatile关键字的底层原理。 本文将带你深入了解Java内存模型(JMM),解释volatile如何通过内存屏障和缓存一致性协议确保可见性和有序性,同时探讨其局限性及优化方案。欢迎订阅专栏《在2B工作中寻求并发是否搞错了什么》,一起探索并发编程的奥秘! 关注我,点赞、收藏、评论,跟上更新节奏,让我们共同进步!
416 8
【原理】【Java并发】【volatile】适合初学者体质的volatile原理
|
6月前
|
人工智能 自然语言处理 IDE
如何让 AI 成为你的编程搭档?一次真实重构告诉你答案
Cursor是一款面向开发者的智能代码编辑器,基于VS Code深度集成AI模型,支持自然语言编写代码、解释逻辑、重构和Bug查找。它提供Agent、Ask、Manual三种模式,具备模块级开发能力,能跨文件操作并主动学习代码库。但其效果依赖模型能力,对复杂跨应用任务仍有限。
如何让 AI 成为你的编程搭档?一次真实重构告诉你答案
|
Windows
Windows——如何在文件资源管理器地址栏快速打开Vscode
Windows——如何在文件资源管理器地址栏快速打开Vscode
442 4
|
Rust 安全 JavaScript
Rust 和 WebAssembly 搞大事啦!代码在浏览器中运行,这波操作简直逆天!
【8月更文挑战第31天】《Rust 与 WebAssembly:将 Rust 代码运行在浏览器中》介绍了 Rust 和 WebAssembly 的强大结合。Rust 是一门安全高效的编程语言,而 WebAssembly 则是新兴的网页技术标准,两者结合使得 Rust 代码能在浏览器中运行,带来更高的性能和安全性。文章通过示例代码展示了如何将 Rust 函数编译为 WebAssembly 格式并在网页中调用,从而实现复杂高效的应用程序,同时确保了内存安全性和跨平台兼容性,为开发者提供了全新的可能性。
564 0
|
机器学习/深度学习 人工智能 API
在人工智能和机器学习的领域中,语音识别(Speech Recognition,SR)是一个重要的研究方向。它旨在将人类的语音转换为计算机可读的文本。
在人工智能和机器学习的领域中,语音识别(Speech Recognition,SR)是一个重要的研究方向。它旨在将人类的语音转换为计算机可读的文本。
|
存储 运维 KVM
QEMU的QCOW2磁盘镜像文件查看
QEMU的QCOW2磁盘镜像文件查看
2031 0
|
Linux 编译器 C语言
解决 glibc 版本冲突:实用指南与策略分析
解决 glibc 版本冲突:实用指南与策略分析
1861 2