開箱 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 Code:Nordic
Semi透過這套IDE進行開發
SEGGER J-Link/J-Trace Software:開發板上面已經自建debugger,但需要安裝這套軟體。
韌體開發的環境推薦在VS Code,然後再安裝nRF Connect套件,透過套件才能安裝SDK與toolchains。安裝最新的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:這套件負責安裝SDK與toolchains,包含範例程式。
nRF DeviceTree:這套件類似STM32的Cube軟體,用來定義硬體腳位的對應。
nRF KConfig:這套件提供視覺化的編譯參數之配置。
nRF Termial:這套件類似終端機的功能,方便我們查看UART或RTT的輸出內容。
建立範例
為了驗證上述的IDE與nRF 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 info、symbol…等資料。此外,我們可以再創建一個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的方式進入除錯模式。
留言