在上一篇文章中,我們已成功完成 hello 範例的 GCC 編譯。本篇將透過 Nuvoton 官方工具 NuWriter 將程式下載至開發板,並透過 UART 確認程式是否正常執行。
NuWriter
準備下載檔案
NuWriter 燒錄步驟
NUC970_NuWriter-master\NuWriter\NuWriter\Release\NuWriter.exe
為什麼使用 DDR/SPRAM 模式?
在上一篇文章中,我們已成功完成 hello 範例的 GCC 編譯。本篇將透過 Nuvoton 官方工具 NuWriter 將程式下載至開發板,並透過 UART 確認程式是否正常執行。
NuWriter
準備下載檔案
NuWriter 燒錄步驟
為什麼使用 DDR/SPRAM 模式?
在上一篇文章中,我們完成了 Eclipse IDE 的安裝與 Workspace 初始化。本篇將設定 Arm GNU Toolchain(arm-none-eabi)與 xPack Windows Build Tools 的路徑,使 Eclipse 能正確呼叫編譯器與 make 工具,完成 N9H31(ARM926EJ-S)專案的建置流程。
資料夾建立
ARM GNU Toolchain 安裝與配置
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
因使用 Windows 10 環境,所以選擇 Windows (mingw-w64-i686) zip 版本,如下圖。
下載完成後,將壓縮檔解壓縮至 C:\n9h_tools\gcc-arm 資料夾。
| 圖片來源:Arm Developer 官方下載頁面 |
開啟 Window → Preferences
找到 MCU 的項目,選擇 Global Arm Toolchains Paths 將 Toolchain folder 指向解壓縮後的 Arm GNU Toolchain bin 目錄(該目錄內應包含 arm-none-eabi-gcc.exe)。
詳細路徑 C:\n9h_tools\gcc-arm\arm-gnu-toolchain-15.2.rel1-mingw-w64-i686-arm-none-eabi\bin(這部分可以依照個人習慣進行替換)設定完成後,點選 Apply and Close 套用設定。
xPack Windows Build Tools 安裝與配置
xPack Windows Build Tools 主要提供 make、sh 等 GNU 建置工具,使 Windows 環境能正常執行 Makefile 編譯流程。
找到 MCU 的項目,選擇 Global Build Tools Path 將 Build tools folder 指向 xPack 的 bin 目錄,Build tools folder 請指定到 xPack 的 bin 目錄(該目錄內應包含 make.exe)。詳細路徑 C:\n9h_tools\build-tools\xpack-windows-build-tools-4.4.1-3\bin
修改完之後記得按下 Apply and Close
1. 開源工具鏈完整
Eclipse 為開源 IDE,可搭配 GNU Toolchain,對於裸機或嵌入式 Linux 開發都適用。
2. Keil MDK 對 ARM9 並非主流支援架構
N9H31 採用 ARM926EJ-S(ARM9 / ARMv5TE)核心。雖然 Nuvoton 提供 Keil 範例專案,但該專案使用的是早期 ARM-ADS 工具鏈(屬於舊版 ARM9 開發環境)。目前 Keil MDK 官方產品定位主要聚焦於 Cortex-M / Cortex-R 架構,並以 Arm Compiler 6 為主流編譯器。ARM9 屬於較舊架構,需搭配舊版工具鏈使用,因此本次環境建置改採 GNU Toolchain + Eclipse。
3. 官方已提供 Eclipse 專案範例
Nuvoton Technology Corporation 官方已提供 Eclipse 範例專案,可直接導入。減少手動建立 linker script、已配置好 startup code、Makefile / build 設定完整,可直接編譯測試。ARM9 與 Cortex-M 不同,需要自行處理 DDR 初始化、MMU 設定、Cache 控制、向量表重定位,若從零開始配置會耗費大量時間。
Eclipse 安裝說明
有硬體之後就是要準備開發軟體環境,但在正式開始開發前需要先將需要的軟體驅動安裝完備,這篇會說明必要驅動安裝,由於都是一路點擊下一步,這裡提供驅動的網址,就不逐步說明。
開發環境
本文使用系統為 windows 11,不同作業系統可能略有差異
驅動程式
下面三個為主要安裝的驅動連結
Nuvoton CDC Driver
https://www.nuvoton.com/resource-download.jsp?tp_GUID=SW1020160914071736
Nuvoton Virtual COM Driver
https://github.com/OpenNuvoton/NUC970_NuWriter/tree/master/Driver
Nu-Link driver
https://www.nuvoton.com/tool-and-software/ide-and-compiler/
功能說明
CDC driver 功用
Communications Device Class 是 USB 協會制定的一種跨裝置類別,定義 USB 裝置如何模擬成傳統的通訊裝置,有以下三個主要特色。
Virtual COM driver 功用
主要功能就是在電腦作業系統中,模擬出一個傳統的序列埠,有些晶片商,在自己的燒錄器上也會有這功能,像是你插上去之後就會有兩個裝置出現,但這功能的好處有以下兩點
Nu-Link driver 功用
讓電腦可以支援 keil MDK 或是 IAR 的開發軟體,包含 NuMicro 系列的晶片
安裝完成結果
在電腦裝置管理員中可以看到 NuVCOMDeviceClass 及 COM5(這個可能每個人的不一樣)
Note: 若沒有看到 NuVCOMDeviceClass 檢查板子上的 SW1 開關 PA0 PA1 有沒有調整到 ON
參考資料
https://www.nuvoton.com.cn/export/resource-files/en-us--UM_NuMaker_HMI_N9H31_A1_A2_EN_Rev1.00.pdf
https://www.nuvoton.com/export/resource-files/en-us--RH_Nu-Link_Driver_for_Keil_MDK_EN_V3.21.pdf
https://www.nuvoton.com/tool-and-software/ide-and-compiler/