DE-Core Using printf On DE-Core + RISC-V

From Terasic Wiki

Jump to: navigation, search

printf 功能需要借助 Uart 硬體來實現,DE-Core 開發板預留的 TMD 介面,可用於外接 Uart-to-USB Board.

Contents

1.下載Project Code

使用者先需前往下列的網址下載 demo code.

http://mail.terasic.com.tw/~johnny/release/DE_CORE/DE-CORE-RISCV.tar.gz

此 demo code包含了Quartus project 以及 RISC-V的相關資源, 包含工具链(Toolchains)、SDK.

De-core riscv 08.png

2.連接設定

本實驗需要下面三樣物件來組合成帶有UART功能的 DE-Core硬體.

De-core riscv 02.png

將上圖的三樣物件連接如下圖.

De-core riscv 01a.png


3. 硬體部分

這節將介紹如何修改 quartus porject內的 I/O以符合實際的 USB to UART硬體連接情況, 以及介紹如何燒錄 .pof入 DE-Core FPGA.

Quartus Project 中,DE-Core 上的TMD connector 連接 pin assignment 如下圖所示:

De-core riscv 06.png

本例中使用的 TMD_D[7], TMD[6] 分別用作 UART_TX, UART_RX,若使用其他 TMD 引腳或 TMD 與 Uart 硬體連接方式與上圖不同,則需要修改 Quartus Project,重新編譯,生成 pof。

操作步驟 :

  1. 設置 SW2.1=0, SW2.2=1,如下圖所示, 以用於透過JTAG配置FPGA;
    De-core riscv 04.png
  2. 使用 USB Cable 連接 DE-Core 開發板(J2)和 PC;
  3. 開啟 Terminal,並進入目錄:DE-CORE-RISCV/Quartus_Project/DECORE_RISCV/demo_batch
    cd DE-CORE-RISCV/Quartus_Project/DECORE_RISCV/demo_batch
  4. 執行以下命令配置 FPGA
    sh programming_pof.sh
  5. 使用者也可以在 windows下使用 Quartus programmer 將 .pof 燒錄入DE-Core版內
  6. 要確認code是否正確燒錄入MAX10 FPGA內,使用者可以設置 SW2.1=1, SW2.2=0,如下圖所示.將JTAG切換至RISC-V.
    De-core riscv 03.png
  7. 使用Quartus programmer偵測device, 可以看到如下圖的Unkown device. 代表FPGA code有正確燒錄.
    De-core riscv 07.png

4. SDK 部分

本節將介紹在 Ubuntu下, 透過 USB to UART硬體連接到DE-Core內的RISC-V, 並且運行UART demo,在Ubuntu的 terminal列印字串.

使用 printf 列印資訊的示例位於以下目錄:DE-CORE-RISCV/RISC-V/Freedom-E-SDK/software/demo_uart。

操作步驟:

  1. 移除 USB Cable,以關閉 DE-Core 開發板的電源;
  2. 設置 SW2.1=1, SW2.2=0,如下圖所示;
    De-core riscv 03.png
  3. 使用 USB Cable 連接 DE-Core 開發板(J2)和 PC;
  4. 將 Uart-to-USB Board 接入 DE-Core 開發板的 TMD 介面(JP6),並使用 USB Cable 連接 Uart-to-USB Board 和 PC;
  5. 開啟 Terminal 執行 sudo apt install libftdi1-dev 安装 openocd 所需要的库文件
  6. 開啟 Terminal,執行 sudo screen /dev/ttyUSB0 115200 ,Terminal 被鎖定,用於顯示字元;(可使用 ls /dev/ttyUSB* 命令查看 USB 被識別為 /dev/ttyUSB0 還是 /dev/ttyUSB1,若是被識別為 /dev/ttyUSB1,則應使用命令 sudo screen /dev/ttyUSB1 115200 ).
    Note : 若是linux內還未安裝 screen, 可以執行 sudo apt-get install screen
  7. 另外開啟一個 Terminal,並進入以下目錄:DE-CORE-RISCV/RISC-V/Freedom-E-SDK;
  8. 清除之前編譯的可執行檔和設定檔:
    make clean PROGRAM=demo_uart
  9. 編譯:
    make software PROGRAM=demo_uart
  10. 燒錄二進位檔案:
    make upload PROGRAM=demo_uart
  11. 燒錄完成後,可在第 5 步中開啟的 Terminal 中觀察到列印的資訊,下圖是 demo_uart 的列印資訊;
    De-core riscv 05.png
Personal tools