iT邦幫忙

risc-v相關文章
共有 131 則文章
鐵人賽 Software Development DAY 2

技術 予焦啦!準備工具鏈

本節是以 Golang 上游 1a708bcf1d17171056a42ec1597ca8848c854d2a 為基準做的實驗。 予焦啦!不管是什麼樣的系統...

鐵人賽 Software Development DAY 1

技術 予焦啦!目錄、快速上手與前言

目錄 第零章:基本開發工具 0.0 目錄、快速上手與前言 0.1 準備工具鏈 0.2 產出可執行檔 0.3 檢驗核心映像檔:開機流程、OpenSBI...

技術 RISC-V on Rust 從零開始(10) - 實作ELF loader

在實際的硬體上,開機後執行的第一道指令已經燒錄在ROM上面,對於CPU來說程式在開機時就已經位於位址空間的某處,但對於我們的模擬器來說,開機後的記憶體是一片空白...

技術 RISC-V on Rust 從零開始(9) - 實作memory model

CPU指令可以分成兩大類,一是操作CPU內部暫存器的算術邏輯指令,一是存取記憶體,也就是所謂的load/store指令。要模擬算術邏輯指令,用先前所定義的Cor...

技術 RISC-V on Rust 從零開始(8) - 實作instruction decoder

這次要來實作指令decoder,負責pipeline中的decode stage。計組教科書上常見的pipeline架構依序為:fetch、decode、exe...

技術 RISC-V on Rust 從零開始(6) - 使用Spike模擬器

其實RISC-V官方也有開發了一個instruction accurate等級的模擬器Spike,只是主要以C++撰寫。從提交紀錄看起來,這個模擬器已經開發超過...

技術 RISC-V on Rust 從零開始(7) - 實作指令基本框架

使用Spike執行RISC-V gnu toolchain編譯出來的ELF檔,就可以得到完整執行此EFL檔需要用到哪些指令。利用script統計後可以得到如下結...

技術 RISC-V on Rust 從零開始(5) - RISC-V 指令集分析

有了基本檔案架構後,開始動工指令的部分。RISC-V將指令分成數個子集,其中包括RV32I、RV32E、RV64I、RV128I四套整數指令集,以及約14套擴充...

技術 RISC-V on Rust 從零開始(4) - Rust 測試工具

這次要來談的是Rust的測試框架,並且重新調整目錄架構。 撰寫測試 Rust本身就自帶測試框架,無須安裝額外library,這邊直接把上次所寫的main改寫成t...

技術 RISC-V on Rust 從零開始(3) - RISC-V 核心基本資料結構

這次要實作的是 RISC-V 的核心基本架構。RISC-V提供了32個integer register用作基本的算術邏輯運算,如下圖: 以 Rust 的stru...

技術 RISC-V on Rust 從零開始(2) - 建立檔案架構

基本的安裝以及相關資源已經整理在上篇文章: RISC-V on Rust 從零開始(1) - 安裝 Rust 環境 材料已經備齊,該是動工的時候,Rust許多語...