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

From Terasic Wiki

(Difference between revisions)
Jump to: navigation, search
m (操作步驟 :)
(操作步驟:)
 
(17 intermediate revisions not shown)
Line 1: Line 1:
printf 功能需要借助 Uart 硬體來實現,DE-Core 開發板預留的 TMD 介面,可用於外接 Uart-to-USB Board.
printf 功能需要借助 Uart 硬體來實現,DE-Core 開發板預留的 TMD 介面,可用於外接 Uart-to-USB Board.
-
== 1.連接設定 ==
+
== 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.
 +
 
 +
<div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 08.png|550px]]</div>
 +
 
 +
== 2.連接設定 ==
本實驗需要下面三樣物件來組合成帶有UART功能的 DE-Core硬體.  
本實驗需要下面三樣物件來組合成帶有UART功能的 DE-Core硬體.  
Line 9: Line 18:
將上圖的三樣物件連接如下圖.  
將上圖的三樣物件連接如下圖.  
-
<div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 01.png|350px]]</div>
+
<div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 01a.png|350px]]</div>
-
==2 硬體部分==
+
 
 +
*UART driver :  https://www.taiwaniot.com.tw/%E6%8A%80%E8%A1%93%E6%96%87%E4%BB%B6/arduino-%E6%8A%80%E8%A1%93%E6%96%87%E4%BB%B6/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%9Dch340%E6%99%B6%E7%89%87%E7%A8%8B%E5%BC%8F/
 +
 
 +
== 3. 硬體部分==
這節將介紹如何修改 quartus porject內的 I/O以符合實際的 USB to UART硬體連接情況, 以及介紹如何燒錄 .pof入 DE-Core FPGA.
這節將介紹如何修改 quartus porject內的 I/O以符合實際的 USB to UART硬體連接情況, 以及介紹如何燒錄 .pof入 DE-Core FPGA.
Line 30: Line 42:
#: <span style="color:#0000f0;"> '''sh programming_pof.sh''' </span>
#: <span style="color:#0000f0;"> '''sh programming_pof.sh''' </span>
#使用者也可以在 windows下使用 Quartus programmer 將 .pof 燒錄入DE-Core版內
#使用者也可以在 windows下使用 Quartus programmer 將 .pof 燒錄入DE-Core版內
-
#要確認code是否正確燒錄入MAX10 FPGA內,使用者可以設置 SW2.1=0, SW2.2=1,如下圖所示.將JTAG切換至RISC-V.
+
#要確認code是否正確燒錄入MAX10 FPGA內,使用者可以設置 SW2.1=1, SW2.2=0,如下圖所示.將JTAG切換至RISC-V.
#: <div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 03.png|450px]]</div>
#: <div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 03.png|450px]]</div>
#使用Quartus programmer偵測device, 可以看到如下圖的Unkown device. 代表FPGA code有正確燒錄.
#使用Quartus programmer偵測device, 可以看到如下圖的Unkown device. 代表FPGA code有正確燒錄.
#: <div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 07.png|1250px]]</div>
#: <div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 07.png|1250px]]</div>
 +
 +
== 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。
 +
 +
=== 操作步驟:===
 +
#移除 USB Cable,以關閉 DE-Core 開發板的電源;
 +
#設置 SW2.1=1, SW2.2=0,如下圖所示;
 +
#: <div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 03.png|450px]]</div>
 +
#使用 USB Cable 連接 DE-Core 開發板(J2)和 PC;
 +
#將 Uart-to-USB Board 接入 DE-Core 開發板的 TMD 介面(JP6),並使用 USB Cable 連接 Uart-to-USB Board 和 PC;
 +
#開啟 Terminal 執行 <span style="color:#0000f0;"> '''sudo apt install libftdi1-dev''' </span> 安装 openocd 所需要的库文件
 +
#開啟 Terminal,執行 <span style="color:#0000f0;"> '''sudo screen /dev/ttyUSB0 115200''' </span>,Terminal 被鎖定,用於顯示字元;(可使用<span style="color:#0000f0;"> '''ls /dev/ttyUSB*''' </span> 命令查看 USB 被識別為 /dev/ttyUSB0 還是 /dev/ttyUSB1,若是被識別為 /dev/ttyUSB1,則應使用命令 <span style="color:#0000f0;"> '''sudo screen /dev/ttyUSB1 115200''' </span>). 
 +
#:Note : 若是linux內還未安裝 screen, 可以執行 <span style="color:#0000f0;"> '''sudo apt-get install screen''' </span>
 +
#另外開啟一個 Terminal,並進入以下目錄:DE-CORE-RISCV/RISC-V/Freedom-E-SDK;
 +
#清除之前編譯的可執行檔和設定檔:
 +
#: <span style="color:#0000f0;"> '''make clean PROGRAM=demo_uart'''</span>
 +
#編譯:
 +
#:<span style="color:#0000f0;"> '''make software PROGRAM=demo_uart'''</span>
 +
#燒錄二進位檔案:
 +
#:<span style="color:#0000f0;"> '''make upload PROGRAM=demo_uart'''</span>
 +
#燒錄完成後,可在第 5 步中開啟的 Terminal 中觀察到列印的資訊,下圖是 demo_uart 的列印資訊;
 +
#: <div style="text-align:left;color:#4a4a4a;">[[File:De-core riscv 05.png|450px]]</div>

Latest revision as of 11:04, 17 January 2020

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