痞子衡嵌入式:超級下載演算法RT-UFL v1.0在Segger Ozone下的使用


  痞子衡主導的"學術"項目 《RT-UFL - 一個適用全平台i.MXRT的超級下載演算法設計》 v1.0 版發布近 4 個月了,部分客戶已經在實際項目開發調試中用上了這個超級下載演算法,目前回饋還可以,但這個超級下載演算法遠未到成熟狀態,痞子衡正在策劃 v2.0 版本。

  超級下載演算法 RT-UFL v1.0 版本主要針對 Segger J-Link 調試器,開發測試也都是在 J-Link Commander 和 J-Flash 軟體下進行的,但其實它也適用各大常用 IDE,前面痞子衡分別介紹了超級下載演算法在 MCUXpresso IDE / IAR / MDK 下的使用,但如果我們只有一個程式可執行文件或鏡像文件,沒有對應完整源程式碼工程,還能不能愉快地在線調試?當然可以!今天我們來聊聊它在一個類 IDE 神器軟體 Segger Ozone 下的使用:

一、Segger Ozone簡介

  Ozone 是 Segger 公司出品的一款配套 J-Link 模擬器使用的應用程式調試與性能分析軟體,其介面風格跟一般的 IDE 很像,能夠提供 IDE 下所支援的全部調試功能(單步,斷點,看反彙編,查暫存器,查變數,查記憶體等),並且還提供更高級的性能分析功能(函數調用追蹤,變數值實時取樣,功耗測量等)。

  Ozone 僅以常見 IDE 生成的可執行文件(.elf、.axf、.out) 或鏡像文件(.hex、.srec、.bin)為輸入源,支援的工具鏈 /IDE 包含 GCC、Clang、Keil MDK、IAR 等,簡單說 Ozone 相比 IDE 除了不能編譯鏈接源程式碼外,其他方面跟 IDE 一樣。

二、準備測試環境

  現在需要準備好測試環境,包含必要的軟體和硬體,痞子衡的環境如下:

  • 開發調試環境: Segger Ozone v3.24g,點此下載
  • 軟體開發包: SDK_2.10.0_EVKB-IMXRT1050,點此下載
  • 軟體驅動: J-Link driver v6.86f,點此下載
  • 硬體工具: J-Link Plus調試器
  • 硬體開發板: MIMXRT1050-EVKB (Rev.A1)

  上述軟體環境里,J-Link 軟體驅動、Ozone 版本、SDK 軟體包版本之間沒有明確依賴關係。J-Link 軟體驅動也不是一定限制在 v6.86f,只是超級下載演算法 v1.0 是在這個版本下詳細測試的,其他 J-Link 版本也可能適合,具體需要進一步測試。

三、在Segger Ozone下使用步驟

3.1 將超級下載演算法包打進J-Link驅動

  第一步其實跟 Ozone 無關,因為是基於 J-Link 的超級下載演算法,所以要給 J-Link 軟體驅動先打個更新包,具體參照 《超級下載演算法RT-UFL v1.0發布,附J-Link下安裝教程》 一文。

  • Note:痞子衡將 J-Link 軟體驅動安裝在了 C:\tools_mcu\SEGGER\JLink_V686f。

3.2 為Ozone指定包含超級下載演算法的J-Link驅動

  然後我們需要指定 Ozone 去使用包含超級下載演算法的 J-Link 驅動,在 \SEGGER\JLink_V686f 目錄下,有一個名為 JLinkDLLUpdater.exe 的小工具,雙擊這個工具,便可看到其搜索到了當前 PC 環境下安裝的 IDE 列表,有我們正在使用的 Ozone,勾選上 Ozone 便能完成 J-Link 驅動的指定。

3.3 準備一個SDK工程可執行文件/鏡像文件

  現在我們需要一個 IDE 工程,這裡我們直接打開 \SDK_2.10.0_EVKB-IMXRT1050\boards\evkbimxrt1050\demo_apps\led_blinky 工程,注意將工程切換到 flexspi_nor build,即程式碼 XIP 執行版本,編譯鏈接 led_blinky 工程得到可執行文件或者鏡像文件。

  • Note: 檢查一下 IDE 工程里的 Flash 啟動頭(evkbimxrt1050_flexspi_nor_config.c)是否與板卡上的實際 Flash 型號相匹配。

  如果給 Ozone 提供的是鏡像文件(.hex、.srec、.bin),僅能從彙編程式碼以及記憶體、暫存器窗口去調試;如果給 Ozone 提供的是可執行文件(.elf、.axf、.out),則調試體驗更豐富,可以查看源 C 程式碼以及變數,推薦使用可執行文件在 Ozone 下去調試。注意在 IDE 里生成可執行文件時,需要勾選生成調試資訊,不同 IDE 下設置不同:

  IAR 工程選項里 Linker / Output 設置里勾選 Include debug information in output:

  Keil 工程選項里 Output 設置里勾選 Debug Information:

3.4 打開Ozone選擇合適的超級下載演算法

  首次打開 Ozone 會彈出工程嚮導,需要設置 Device,這裡就是設置超級下載演算法代號(工程嚮導里不設置的話,後面在菜單欄 Tools / J-Link Settings 里隨時可更改),本次測試我們需要的是 MIMXRT1050_UFL_L1 演算法。選定下載演算法後,再選擇可執行文件便進入 Ozone 主介面。

  • Note: 超級下載演算法具體代號詳見 C:\tools_mcu\SEGGER\JLink_V686f\JLinkDevices.xml 文件,代號後綴 _L0 適用 QSPI 和 Octal Flash,代號後綴 _L1/L2 適用 Hyper Flash。

3.5 確保板卡處於Flash啟動模式,開始下載調試

  將板卡供上電,確保板卡處於 NOR Flash 啟動模式(Boot Mode 以及 Boot Cfg 要設置正確)。再將 J-Link 模擬器連接上板卡,點擊 Ozone 菜單欄 Start Debug Session / Download & Reset Program 進行下載調試就可以了。

歡迎訂閱

文章會同時發布到我的 部落格園主頁、CSDN主頁、知乎主頁、微信公眾號 平台上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。