---
# System prepended metadata

title: How to Run sifive_e Simulator
tags: [qemu, riscv]

---

# How to Run sifive_e Simulator

## 建置專案

1. [下載並安裝Freedom Studio開發工具](https://www.sifive.com/boards)。您可以直接點擊https://static.dev.sifive.com/dev-tools/FreedomStudio/2019.08/FreedomStudio-2019-08-2-win64.zip下載。

   - 下載後將該zip檔解壓縮到`D:\FreedomStudio\FreedomStudio-2019-08`。

     ![](https://i.imgur.com/EcjKPgt.png)


2. 下載[FreeRTOS](https://www.freertos.org/a00104.html)。您可以直接點擊https://github.com/FreeRTOS/FreeRTOS/releases/download/V10.3.1/FreeRTOSv10.3.1.zip下載。

   - 下載後將該zip檔解壓縮到`D:\FreedomStudio\FreeRTOSv10.3.1`。

     ![](https://i.imgur.com/aBZ7SnF.png)


3. 啟動Freedom Studio，並在出現提示時選擇現有的或建立新的workspace。

4. 從Freedom Studio的“File”選單中選擇“Import…”。將打開Import對話框。

5. 在“Import ”對話框中，選擇“General->Existing Project into Workspace”。將開啟匯入專案對話框。

   ![](https://i.imgur.com/27ua5Rx.png)


6. 在“Import Projects”對話框中，點擊並選擇 `D:\FreedomStudio\FreeRTOSv10.3.1\FreeRTOS\Demo\RISC-V-Qemu-sifive_e-Eclipse-GCC` 目錄，並確保未勾選“copy projects into workspace”複選框。

   ![](https://i.imgur.com/8qFJFos.jpg)


7. 在Import Project對話框的“Projects”視窗中，選擇RTOSDemo專案，然後單擊“finish”。

8. 在"Project Explorer"的"RTOSDemo"專案上按右鍵，點擊Properties -> C/C++ Build -> Environment -> PATH。點擊Edit。在最前面加上`D:\FreedomStudio\FreedomStudio-2019-08\SiFive\riscv64-unknown-elf-gcc-8.3.0-2019.08.0\bin;D:\FreedomStudio\FreedomStudio-2019-08\SiFive\msys64-1.0.0-2019.05.2\usr\bin;`

   ![](https://i.imgur.com/uZU0Dae.png)


9.  點擊Window -> Preferences -> Freedom Studio -> Global Scope -> Target Architecture，選擇riscv:rv32。
10. 從Freedom Studio的“Project”選單中選擇“Build all”。該專案應在沒有任何錯誤或警告的情況下進行建置，並建立一個名為`RTOSDemo.elf`的檔案。

## 在QEMU運行專案

1. 開啟一個Console視窗，切換到`D:\FreedomStudio\FreedomStudio-2019-08\SiFive\riscv-qemu-4.1.0-2019.08.0\bin`。執行以下命令

   ```
   qemu-system-riscv32 -kernel D:\FreedomStudio\FreeRTOSv10.3.1\FreeRTOS\Demo\RISC-V-Qemu-sifive_e-Eclipse-GCC\Debug\RTOSDemo.elf -S -s -machine sifive_e
   ```

2. 最後，右鍵單擊Eclipse專案瀏覽器中的`Hardware_QEMU.launch`檔案，然後從彈出選單中選擇“Debug As -> Hardware_QEMU”。除錯器應啟動並連接到QEMU(假設上一步使QEMU運行)。

## 進一步閱讀

1. RISC-V架構與嵌入式開發快速入門 https://www.books.com.tw/products/CN11603152

   建議先將這本書整本看過，包含附錄。

2. 模擬平台的相關文件 https://www.sifive.com/boards/hifive1 

###### tags: `riscv`, `qemu`