摘要:本文會給大家介紹下LiteOS Studio的調測的幾個知識點,包括: 調測配置,監視變量,反匯編代碼同步展示,數值進制切換,跨平台編譯調測,Qemu模擬器調測,多核調測,遠程設備調測等。
掌握一款IDE的圖形化調測能力的重要性不言而喻,是IT打工人必備的技能,而掌握LiteOS Studio的圖形化調測能力,是LiteOS物聯網開發的必備技能。本文會給大家介紹下LiteOS Studio的調測的幾個知識點,包括: 調測配置,監視變量,反匯編代碼同步展示,數值進制切換,跨平台編譯調測,Qemu模擬器調測,多核調測,遠程設備調測等。
如果沒有標明,本文所演示的工程均為LiteOS開源工程,https://gitee.com/LiteOS/LiteOS 。
LiteOS Studio調測配置
HUAWEI LiteOS Studio 調測配置非常簡單,對於在LiteOS Studio上編譯的STM32開發板工程,支持一鍵開啟圖形化單步調試。除了使用默認調測配置,LiteOS Studio提供調測配置界面供用戶進行定制。打開LiteOS Studio工程,點擊工程配置界面上的調試器,如下圖, 支持配置項有調試器、連接方式、連接速率、調試器目錄、GDB目錄、可執行文件路徑、調試模式配置、工程源碼是否通過磁盤映射等。選擇的調試器不同,配置項會有差異。
- 調試器配置項
根據實際情況選擇JLink、OpenOCD或者Simulator。選擇什么調測器,取決於開發板支持什么調試器,並安裝相應的調試器軟件。如果開發板使用JLink仿真器, 則根據情況安裝JLink軟件, 從 https://www.segger.com/downloads/jlink/ 下載,並按安裝向導完成最新版JLink的安裝;如果開發板板載St-link仿真器,建議使用 https://www.segger.com/downloads/jlink#STLink_Reflash ST-Link Reflash Utility工具刷成Jlink,使用Jlink仿真器進行調測; 如果是Qemu仿真工程,調試器需要選擇為Simulator。
- 連接方式配置
根據需求選擇SWD或JTAG, 連接速率可以默認或者自行指定
- 調試器目錄配置
需要選擇適合開發板工程的調試器軟件目錄。
如果調試器選擇了JLink,需要指定JLink的具體安裝目錄(默認為C:\Program Files (x86)\SEGGER\JLink),如果與實際安裝目錄不一致,調試可能失敗,端口默認選擇USB。
如果調試器選擇了OpenOCD,需要指定OpenOCD的具體安裝目錄。還需要指定Interface、Target文件。
如果調試器選擇了Simulator,需要指定Qemu的具體安裝目錄(默認為C:\Program Files\qemu)。
- GDB目錄配置
GDB目錄配置為交叉編譯工具鏈的gdb.exe所在的目錄,可以配置默認,或者自行指定。
- 可執行文件路徑配置項
完成編譯后,可填入elf文件所在路徑,或點擊瀏覽圖標進行手動設置,也可以點擊下拉菜單選擇自動匹配的可執行文件。
- 調試模式配置
- 復位調試 會自動重啟開發板,並停止在main函數
- 附加調試 不重啟開發板,附加到當前程序進程
配置好后點擊確認按鈕進行保存,會根據用戶指定的設置自動生成調測配置.vscode\launch.json。
LiteOS Studio調測執行
在調試配置完畢后, 點擊綠色三角按鈕開始調試。調試時,需要掌握的幾個知識點: 包含監視變量、反匯編代碼同步展示,數值進制切換。
- 監視器監視變量
在調測時,在Watch監視器查看變量是非常有用的特性,也支持查看結構化的變量,比如監視g_taskCBArray變量,及下一個任務g_taskCBArray+1,如下圖:
- 反匯編代碼同步展示
對於LiteOS開源工程,在調測時,默認開啟了同時顯示源代碼和反匯編代碼。如下圖
當前函數執行到源代碼的第107行,在反匯編文件中顯示當前的源代碼行數、源代碼及對應的反匯編代碼。調測時,提供了便利,不僅僅關注源代碼同時關注反匯編代碼。
如果不需要關注反匯編代碼,也可以手工關閉該選項,打開.vscode\launch.json,設置showDisassemble為false:
"showDisassemble": false,
- 數值進制切換
在調測過程中,變量的數值可能是10進制進行展示的,如果想查看其他進制展示的數值,可以在調測界面的監視器窗口輸入變量名稱名稱+進制代碼來切換進制查看,如memStart,x來查看變量memStart的16進制。如圖:
詳細的進制代碼如下,可以分別到切換16進制、有符號數字、無符號、八進制、二進制、地址值等:
除了使用監視器,還可以在調測控制台的輸入窗口,輸入p/進制代碼 變量名來按指定的格式來輸出變量數值。
LiteOS Studio跨平台編譯調測
有些開發場景是,在Linux環境上開發、編譯LiteOS工程,但是想使用LiteOS Studio在Windows環境進行燒錄和調測。對於這種跨平台進行編譯調測,LiteOS Studio是支持的。我們在Linux上編譯成功:
磁盤映射Linux目錄/home/z0037XXXX/OSS_LiteOS/Huawei_LiteOS到Windows目錄Z:\OSS_LiteOS\Huawei_LiteOS。使用LiteOS Studio打開這個工程,設置燒錄器、調試器。燒錄成功后,執行調測,如下圖,可以看出只顯示反匯編文件,看不到源代碼。
這是由於編譯的目錄和工程源碼目錄不對應導致的,對於這種情況,調測設置里配置下磁盤映射信息即可:
設置完畢磁盤映射,保存,重新調測,即可正常顯示源代碼:
LiteOS Studio Qemu模擬器調測
關於LiteOS仿真工程,詳細的信息請參考 《基於LiteOS Studio零成本學習LiteOS物聯網操作系統》,地址為
https://bbs.huaweicloud.com/blogs/222197 。
LiteOS Studio多核調測
對於有些帶有多個核的開發板,比如有Application 核、Protocol核、Security核的NB IoT開發板,LiteOS Studio也是支持同時調測多個核的。NB IoT工程已經完成相應的適配,安裝相應的擴展即可。
LiteOS Studio遠程設備調測
對於Jlink調測設備,LiteOS Studio也支持遠程調測這些設備。在兩台電腦上,開發板連接在其中一台開發板上,LiteOS Studio安裝在另外一台電腦上,兩台電腦均需要安裝JLink軟件,保持最新且版本一致。
- 啟動JLink遠程服務器
在連接開發板的電腦上,在JLink安裝目錄下,手動啟動JLinkRemoteServer.exe應用程序,進行如下設置,即可等待用戶連入:
- 使用HUAWEI LiteOS Studio遠程燒錄
在無開發板、安裝LiteOS Studio的電腦上,等編譯生成燒錄文件后,打開工程配置->燒錄器, 選擇JLink燒錄方式,選擇端口為IP,並填入遠程JLink地址,遠程JLink地址填寫遠程服務器IPv4地址:
燒錄器界面配置完成后點擊確認按鈕,再點擊工具欄上的燒錄按鈕即可執行遠程燒錄任務。
- 使用HUAWEI LiteOS Studio遠程調試
同上,打開工程配置->調試器,選擇JLink調試方式,選擇端口為IP,並填入遠程JLink地址,遠程JLink地址填寫遠程服務器IPv4地址。
完成配置並確認后,點擊調試按鈕執行遠程調試任務。調測過程、步驟和開發板在本地一致。
掌握了這些調測的技巧,如果你的開發板支持調測,就試試LiteOS Studio吧。也歡迎大家分享使用LiteOS Studio調測的心得,有任何問題、建議,都可以留言給我們https://gitee.com/LiteOS/LiteOS_Studio/issues 。謝謝。
本文分享自華為雲社區《LiteOS Studio圖形化調測能力,物聯網打工人必備》,原文作者:zhushy 。