摘要:本文會給大家介紹下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 。
點選關注,第一時間了解華為雲新鮮技術~