顯示包含「開發環境建置」標籤的文章。顯示所有文章
顯示包含「開發環境建置」標籤的文章。顯示所有文章

2026年2月27日星期五

NK-N9H31A2 開發板:開發環境建置 (四) NuWriter 下載與 UART 執行驗證

 在上一篇文章中,我們已成功完成 hello 範例的 GCC 編譯。本篇將透過 Nuvoton 官方工具 NuWriter 將程式下載至開發板,並透過 UART 確認程式是否正常執行。

NuWriter

NuWriter 是 Nuvoton 提供的下載工具,支援 DDR、SPI、NAND、eMMC 等模式,可用於將映像檔暫時下載至 DDR 執行,或寫入各類儲存裝置,NuWriter 專案中包含 Driver、Firmware 及 PC Tool 原始碼,本篇僅使用已編譯完成之 PC Tool(Release 版本)。本篇僅使用 DDR/SPRAM 模式進行開發階段的功能驗證。
NuWriter 為 Nuvoton ARM9 MPU 系列(包含 NUC970 / N9H30 / N9H31)共用下載工具,可於官方 GitHub 專案取得:https://github.com/OpenNuvoton/NUC970_NuWriter/tree/master

準備下載檔案

本次使用 hello.bin 進行下載測試。

NuWriter 燒錄步驟

1. 啟動軟體
    下載並解壓縮 NuWriter 原始碼後,在以下路徑找到執行檔
     NUC970_NuWriter-master\NuWriter\NuWriter\Release\NuWriter.exe 

    選擇 N9H31 series 及 N9H31K51FC.ini
2. 設定參數及下載
    選擇DDR/SRAM, address 要設定 0x0,Execute address 使用範例專案預設值(0x0),若使用其他專案請依 linker script 設定為準。
    點擊 Re-Connect, 確認有顯示 Device Connected
    Download and run 點擊 Download

3. 燒錄完成畫面

4. 確認功能 
    這裡使用 Arduino 軟體的 comport 進行確認,可以看到有顯示程式碼的資訊
    UART 設定為 115200, 8N1。

    提醒: 當發生 Disconnect 時,記得重新按一下板子上的重置按鈕或重新上電

為什麼使用 DDR/SPRAM 模式?

DDR/SPRAM 模式會將程式暫時下載至 DDR 記憶體執行,不會寫入 SPI Flash,適合開發階段驗證使用,斷電後程式不會保留。

2026年2月22日星期日

NK-N9H31A2 開發板:開發環境建置 (二) ARM GNU Toolchain 與 xPack 設定

上一篇文章中,我們完成了 Eclipse IDE 的安裝與 Workspace 初始化。本篇將設定 Arm GNU Toolchain(arm-none-eabi)與 xPack Windows Build Tools 的路徑,使 Eclipse 能正確呼叫編譯器與 make 工具,完成 N9H31(ARM926EJ-S)專案的建置流程。

資料夾建立

在正式進入設定前,先於 C 槽建立 n9h_tools 資料夾,並在其中建立 gcc-arm 與 build-tools 兩個子資料夾,分別用來存放 Arm GNU Toolchain 與 xPack Windows Build Tools。


ARM GNU Toolchain 安裝與配置

1.下載 Arm GNU Toolchain(arm-none-eabi)
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
因使用 Windows 10 環境,所以選擇 Windows (mingw-w64-i686) zip 版本,如下圖。
下載完成後,將壓縮檔解壓縮至 C:\n9h_tools\gcc-arm 資料夾。

圖片來源:Arm Developer 官方下載頁面

2. 設定 Arm Toolchain 路徑
開啟 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 安裝與配置

1.下載 xPack
xPack Windows Build Tools 主要提供 make、sh 等 GNU 建置工具,使 Windows 環境能正常執行 Makefile 編譯流程。
找到下圖並選擇 zip ,下載完成後,將壓縮檔解壓縮至 C:\n9h_tools\build-tools 資料夾。

圖片來源:xPack GitHub Releases 頁面
 

2. 設定 xPack Build Tools 路徑
找到 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


完成以上兩項設定後,Eclipse 即可正確呼叫 ARM 編譯器與 make 工具,下一篇將示範如何導入範例專案並實際進行編譯測試。

2026年2月20日星期五

NK-N9H31A2 開發板:開發環境建置 (一) Eclipse 安裝

完成驅動程式安裝後,接下來正式進入開發環境建置階段,本篇使用作業系統為 Windows 10。
本系列將說明如何建立適用於 N9H31 (ARM926EJ-S 架構) 的開發環境,包含:
  1. Eclipse IDE 安裝(本篇)
  2. ARM GNU Toolchain 安裝與配置(下一篇)
  3. xPack Windows Build Tools 設定(下一篇)
  4. 範例專案導入與編譯測試(下下一篇)
為什麼選擇 Eclipse?
在 ARM9 架構下,其實工具選擇不像 Cortex-M 那麼多,這次選擇 Eclipse,原因如下:
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 安裝說明

接下來會逐步引導安裝過程

1.點擊 Eclipse 連結後,進入官方頁面,我們要找到下圖,這裡要強調是 Embedded C/C++ ,並選擇x86

2. 下載之後建議直接在 C 槽解壓縮,避免發生解壓縮失敗

解壓縮之後的樣子,為了讓路徑更單純,將資料夾整包提取直接放到 C 槽路徑底下,如下圖

3. 第一次開啟的樣子
要點這個圖示進行開啟
在這裡我們在 C 槽建立一個給 N9H31 專用的 workspace
過程中如果遇到下圖,點擊允許,主要避免 windows 一直掃描,降低編譯時間

開啟之後的樣子






2026年1月25日星期日

NK-N9H31A2 開發板:驅動程式

有硬體之後就是要準備開發軟體環境,但在正式開始開發前需要先將需要的軟體驅動安裝完備,這篇會說明必要驅動安裝,由於都是一路點擊下一步,這裡提供驅動的網址,就不逐步說明。


開發環境

本文使用系統為 windows 11,不同作業系統可能略有差異

驅動程式

下面三個為主要安裝的驅動連結
CDC driver 功用
Communications Device Class 是 USB 協會制定的一種跨裝置類別,定義 USB 裝置如何模擬成傳統的通訊裝置,有以下三個主要特色。
    1. 通訊協定標準化 規定 USB 傳輸線中,哪些裝置用於傳輸資料,哪些用於傳輸控制訊號
    2. 跨平台相容 因為是標準化規範,現今的作業系統,windows  Linux, macOS 通常有內建此類的驅動,可以直接插上電腦的 USB 孔,就可以偵測到裝置
    3. 硬體抽象化
      對於 MCU 使用者來說,只需要在韌體中實作功能,不用寫複雜的 use 通訊協定 (這功能我也蠻想嘗試看看的,未來在設計板子時就可以省略掉一顆 Usb 轉換 IC 而且通訊傳輸速度更快)
Virtual COM driver 功用
主要功能就是在電腦作業系統中,模擬出一個傳統的序列埠,有些晶片商,在自己的燒錄器上也會有這功能,像是你插上去之後就會有兩個裝置出現,但這功能的好處有以下兩點
    1. 模擬傳統介面(像是 RS232 或是 RS485 等)
    2. 簡化軟體開發,在還沒有準備好完整硬體的時候,可以先模擬指令開發
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/





打賞按讚