T-Core Using printf with HummingBird E203

From Terasic Wiki

Jump to: navigation, search

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

Contents

1.下載Project Code

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

http://mail.terasic.com.tw/~johnny/release/T_CORE/TCORE-RISCV-E203.tar.gz

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

T-core riscv package.png

2.連接設定

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

De-core riscv 02.png

其中, 本文所使用的UART to USB轉接板的購買link 為: https://item.taobao.com/item.htm?spm=a230r.1.14.204.2a9b54dbxcMwSd&id=525121670126&ns=1&abbucket=10#detail

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

De-core riscv 01a.png


3. 硬體部分

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

Quartus Project 中,T-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 連接 T-Core 開發板(J2)和 PC;
  3. 開啟 Terminal,並進入目錄:T-CORE-RISCV/Quartus_Project/TCORE_E203/demo_batch
    cd T-CORE-RISCV/Quartus_Project/TCORE_E203/demo_batch
  4. 執行以下命令配置 FPGA
    sh programming_pof.sh
  5. 使用者也可以在 windows下使用 Quartus programmer 將 .pof 燒錄入T-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硬體連接到T-Core內的RISC-V, 並且運行UART demo,在Ubuntu的 terminal列印字串.

使用 printf 列印資訊的示例位於以下目錄:T-CORE-RISCV/sirv_e_sdk/software/demo_uart。

操作步驟:

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