開箱 NORA-B2 開發板 -- 核心是低功耗 nRF54L15 藍芽晶片

NORA-B2開發板上面有一小塊由 u-blox 公司所製造的低功耗藍芽模組,該模組已經取得無線的認證,可提供給第三方整合使用。目前開發板上的模組型號為NORA-B206,其內部核心為Nordic半導體的nRF54L15晶片,內建256kB記憶體,1.5MB NVRAM。此外,這個型號自帶有PCB的天線,無須外接天線。開發板的電路圖連結如下:https://github.com/u-blox/evk_designs_sho_altium/tree/main/EVK-NORA-B20/EVK-NORA-B2-C.3/Deliverables

開發軟體
VS CodeNordic Semi透過這套IDE進行開發
SEGGER J-Link/J-Trace Software:開發板上面已經自建debugger,但需要安裝這套軟體。
        
       韌體開發的環境推薦在VS Code,然後再安裝nRF Connect套件,透過套件才能安裝SDKtoolchains。安裝最新的SDK 3.1.1之後,這塊開發板尚未列入SDK裡面(板子太新還來不及支援),不過我們可以暫時選用nrf54l15dk開發板的資料來編譯系統程式碼。所有支援的板卡資訊都存放在這個目錄底下,C:\ncs\v3.1.1\zephyr\boards,能找到對應的板卡。此外,採用手動的方式來新增這塊開發板,先到GitHub網站,如下鏈結https://github.com/u-blox/u-blox-sho-OpenCPU/tree/master/zephyr/boards/u-blox。下載ubx_evknorab2的資料,放到上述的目錄底下,這樣在VS Code環境裡便能列出這開發板了。

需安裝VS Code的套件,如下:
        nRF Connect for VS Code Extension Pack:這套件會自動安裝其他六個相關套件。
        nRF Connect for VS Code:這套件負責安裝SDKtoolchains,包含範例程式。
        nRF DeviceTree:這套件類似STM32Cube軟體,用來定義硬體腳位的對應。
        nRF KConfig:這套件提供視覺化的編譯參數之配置。
        nRF Termial:這套件類似終端機的功能,方便我們查看UARTRTT的輸出內容。
 
建立範例
為了驗證上述的IDEnRF Connect套件運作有無問題,我們先建立一個基本的範例程式,依序步驟來編譯,同時下載到開發板,檢視整個過程是否正常。第一步,在nRF圖示之下,創建一個新的應用程式,從範例中選取Blinky Sample,點選後一個範例就被創建並複製到新目錄底下。
第二步,我們要新增一個build configuration,目的是建立一個編譯的參數檔。過程中,幾個比較重要的參數如下圖所示。設定目標開發板,NORA-B206模組的核心是nRF54L15,所以我們選擇nrf54l15/cpuapp/ns,這裡ns代表韌體開啟CMSE (Cortex-M Security Extensions)功能,編譯過程會載入Trusted Zone相關的函數庫。當然,我們在初期開發階段,也可以選擇nrf54l15/cpuapp,代表沒有開啟CMSE功能,只是頁面上會出現小小的告警符號,無需理會。
為了方便未來debug之用,編譯的參數必須改為-Og,如下圖所示。編譯才會產生出debug infosymbol…等資料。此外,我們可以再創建一個build configuration,如下圖黃框和橘框所示,兩種編譯的配置,一個有Trusted Firmware-M,一個沒有。

最後按下Generate and Build按鈕,VS Code會生成編譯的配置檔,同時將相關的SDK程式碼都連結進來,開始進行編譯,一段時間後便完成(沒有編譯錯誤的話)
第三步,燒錄與除錯。前面創建了兩種編譯參數,因此要留意燒錄是哪一種編譯韌體,如下圖,先點選(Applications)編譯參數欄位的目標後,底下的程式碼項目也會隨著更換。此時,當我們按下(Actions)Flash後,VS Code會進行燒錄該項目的韌體。

 
最底下的欄位(Connected Devices)顯示目前連接的板子,上面出現三個虛擬的COM埠,其中一個埠是程式碼的printf函數所輸出之訊息。我們點選COM7插頭圖示後,在右下的視窗會出現連接並輸出訊息,這方便我們進行除錯。

        前面提到編譯參數已經改用-Og,所以我們可以對這個範例程式進行斷點與步進的debug。當我們按下(Actions)Debug後,VS Code先燒錄再將程式碼停在main函數的起點,等待我們運行。另外,如果程式已經在運行了,在(Actions)Debug的右邊小圖示選單中,我們也可以點選Attach Debugger to Target的方式進入除錯模式。

留言

此網誌的熱門文章

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 環境品質監控系統

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

初學 ESP32-S3 攝像模組的開發

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] 整理控制器 STM32 與無線晶片 ESP32 資料