學習riscv(1)安裝tinyriscv的工具鏈

来源:https://www.cnblogs.com/liwilling/archive/2023/12/09/17889506.html
-Advertisement-
Play Games

因為畢設是CPU的低功耗設計,所以開始看cpu,打算還是先從這個tinyriscv學起,昨天把環境下好了,第一步是用git去clone代碼,這個首先要下載git,然後在目標文件夾滑鼠右鍵,選擇“open git bush here”,再輸入項目的url,就可以了。方法不難。b站有詳細教程 接下來是安 ...


  因為畢設是CPU的低功耗設計,所以開始看cpu,打算還是先從這個tinyriscv學起,昨天把環境下好了,第一步是用git去clone代碼,這個首先要下載git,然後在目標文件夾滑鼠右鍵,選擇“open git bush here”,再輸入項目的url,就可以了。方法不難。b站有詳細教程

  接下來是安裝工具,我用的是windows,就按照以下步驟,唯一有一個地方有出入的是,安裝GNU工具鏈的時候,工具路徑不是他這樣的,是散開的,為了考慮周全,我自己又建了一個“gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-0004-win64”的文件夾,然後又在這個文件夾里解壓了(後面測試指令的時候也沒有報錯)

  make和python比較特殊,需要加入環境變數,具體操作是“右鍵電腦——屬性——高級系統設計——環境變數”,在用戶變數里雙擊“path”,會發現裡面有很多路徑,直接新建一個路徑然後加進去就行了(我是這樣做的,後面測試也沒有問題)

 

   安裝好之後就開始測試了,這裡懶得放截圖了,然後就是運行c程式,就是這一步,具體來說也就是在cmd裡面輸入指令,我的運行是沒有錯誤的,關於如何在cmd中更換路徑,這個可以看我這篇文章:如何在cmd中轉入其他文件夾

 

   關於這個測試c程式,我昨天問了師兄,師兄說這個“python .\sim_new_nowave.py ..\tests\example\simple\simple.bin inst.data”就是一個python腳本,原因是機器肯定是不能直接理解c語言的,需要轉換成機器所能理解的指令,因此先轉成bin文件,但是bin文件又不能說是直接打開,所以又轉換成了一個inst.data文件(所以在走完這個步驟之後,會發現sim文件夾里多出來了一個名字叫inst.data的文件,如下圖所示)

   關於這個inst.data,打開之後發現是一堆16進位的數字,這裡面的每一行實際上就對應的是一條指令。




  以上就是,配置環境和測試的內容,還有一些問題,師兄做瞭解答:

  1.為什麼裝了很多東西,比如iverilog、GNU、make,結果在測試的時候看起來沒用到?實際上雖然這裡只是說執行了一條指令,但實際上他們內部是相互調用的,c程式之所以能夠翻譯成機器所理解的,原因還是因為上面的工具起作用,例如GNU裡面的gcc(也不能說是程式,只能是一個類似“包工頭的玩意”)實現了c的編譯器,具體的可以參考這篇文章:編譯工具鏈

  2.這個c程式測試是做什麼的?實際上,他這個測試就是說,比如1+1=2,那麼在實際測試中,就是把運算結果,從寄存器取出來,然後人為的比對一下,如果一樣,就說明測試成功

  3.我能自己寫一個c嗎?好像不行。。原因記不太清了。。。

  4.接下來我應該做什麼:不要看那個tinyriscv的配套文檔,那個只是針對這個cpu寫的,直接去看計組的書或者網課


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在學習 SpringBoot 之前,建議先具備 SpringMVC(控制層)、Spring(業務層)和 Mybatis(持久層)的相關知識 1.1、概述 1.1.1、Spring的缺點 Spring 框架雖然很出色,但是有一個明顯的缺點:配置文件過於繁瑣和複雜; 在單體項目中,因為配置文件只需要編寫 ...
  • C-05.排序和分頁 1.排序 1.1 排序規則 使用ORDER BY子句排序。 ASC(ascend):升序,從低到高。 DESC(descend):降序,從高到低。 ORDER BY子句在SELECT語句的末尾,但不是最後,最後是分頁子句。 1.2 單列排序 mysql> SELECT last ...
  • 以系統里的出金交易為例, 與銀行對賬不外乎做兩件事:①T+1日拉取銀行賬單,保存銀行賬單交易流水;②銀行賬單交易流水與本系統里的通道交易流水比對並記錄差異。 數據表設計 數據表表名comment主要欄位 銀行賬單批次表 bank_bill_batch 銀行賬單表,每銀行每天一條記錄 batchNo- ...
  • 在Qt框架中,`QString` 是一個強大而靈活的字元串容器,專為處理 `Unicode` 字元而設計。它提供了許多方便的方法來操作和處理字元串,使得在跨平臺開發中能夠輕鬆地進行文本操作。QString 是 Qt 開發中不可或缺的一部分,它的靈活性和強大的功能使其成為處理文本和字元串操作的理想選擇... ...
  • 介紹瞭如何集成JSP模板到Spring Boot項目中。通過引入JSP依賴、配置JSP視圖解析器以及指定JSP訪問目錄,實現了JSP的集成和訪問。以及展示了整合MyBatis框架的步驟。首先介紹了引入MyBatis相關依賴的過程,然後講解了@MapperScan註解的使用,用於掃描DAO介面所在包並... ...
  • 在此之前,先來回顧元編程當中的一個重要概念。 template<typename _Tp, _Tp __v> struct integral_constant { static constexpr _Tp value = __v; typedef _Tp value_type; typedef in ...
  • Qt是一種C++編程框架,用於構建圖形用戶界面(GUI)應用程式和嵌入式系統。Qt由Qt公司(前身為Nokia)開發,提供了一套跨平臺的工具和類庫,使開發者能夠輕鬆地創建高效、美觀、可擴展的應用程式。其被廣泛用於開發桌面應用程式、嵌入式系統、移動應用程式等。無論是初學者還是經驗豐富的開發者,Qt都為... ...
  • 這是scikit-learn數據載入系列的最後一篇,本篇介紹如何載入外部的數據集。 外部數據集不像之前介紹的幾種類型的數據集那樣,針對每種數據提供對應的介面,每個介面載入的數據都是固定的。而外部數據集載入之後,數據的欄位和類型是不確定的。 簡單來說,我們在實際的數據分析工作中,用到的是外部數據集載入 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...