痞子衡主導的"學術"項目 《RT-UFL - 一個适用全平台i.MXRT的超級下載下傳算法設計》 v1.0 版釋出近 4 個月了,部分客戶已經在實際項目開發調試中用上了這個超級下載下傳算法,目前回報還可以,但這個超級下載下傳算法遠未到成熟狀态,痞子衡正在策劃 v2.0 版本。
RT-UFL v1.0下載下傳位址: https://github.com/JayHeng/RT-UFL/archive/refs/tags/v1.0.zip
超級下載下傳算法 RT-UFL v1.0 版本主要針對 Segger J-Link 調試器,開發測試也都是在 J-Link Commander 和 J-Flash 軟體下進行的,但其實它也适用各大常用 IDE,前面痞子衡分别介紹了超級下載下傳算法在 MCUXpresso IDE / IAR / MDK 下的使用,但如果我們隻有一個程式可執行檔案或鏡像檔案,沒有對應完整源代碼工程,還能不能愉快地線上調試?當然可以!今天我們來聊聊它在一個類 IDE 神器軟體 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 版本也可能适合,具體需要進一步測試。
第一步其實跟 Ozone 無關,因為是基于 J-Link 的超級下載下傳算法,是以要給 J-Link 軟體驅動先打個更新包,具體參照 《超級下載下傳算法RT-UFL v1.0釋出,附J-Link下安裝教程》 一文。
Note:痞子衡将 J-Link 軟體驅動安裝在了 C:\tools_mcu\SEGGER\JLink_V686f。
然後我們需要指定 Ozone 去使用包含超級下載下傳算法的 J-Link 驅動,在 \SEGGER\JLink_V686f 目錄下,有一個名為 JLinkDLLUpdater.exe 的小工具,輕按兩下這個工具,便可看到其搜尋到了目前 PC 環境下安裝的 IDE 清單,有我們正在使用的 Ozone,勾選上 Ozone 便能完成 J-Link 驅動的指定。
現在我們需要一個 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:
首次打開 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。
将闆卡供上電,確定闆卡處于 NOR Flash 啟動模式(Boot Mode 以及 Boot Cfg 要設定正确)。再将 J-Link 仿真器連接配接上闆卡,點選 Ozone 菜單欄 Start Debug Session / Download & Reset Program 進行下載下傳調試就可以了。
文章會同時釋出到我的 部落格園首頁、CSDN首頁、知乎首頁、微信公衆号 平台上。
微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。
最後歡迎關注痞子衡個人微信公衆号【痞子衡嵌入式】,一個專注嵌入式技術的公衆号,跟着痞子衡一起玩轉嵌入式。
衡傑(痞子衡),目前就職于恩智浦MCU系統部門,擔任嵌入式系統應用工程師。
專欄内所有文章的轉載請注明出處:http://www.cnblogs.com/henjay724/
與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]
可以關注痞子衡的Github首頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。
關于專欄文章有任何疑問請直接在部落格下面留言,痞子衡會及時回複免費(劃重點)答疑。
痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。