# 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`。  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`。  3. 啟動Freedom Studio,並在出現提示時選擇現有的或建立新的workspace。 4. 從Freedom Studio的“File”選單中選擇“Import…”。將打開Import對話框。 5. 在“Import ”對話框中,選擇“General->Existing Project into Workspace”。將開啟匯入專案對話框。  6. 在“Import Projects”對話框中,點擊並選擇 `D:\FreedomStudio\FreeRTOSv10.3.1\FreeRTOS\Demo\RISC-V-Qemu-sifive_e-Eclipse-GCC` 目錄,並確保未勾選“copy projects into workspace”複選框。  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;`  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`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up