摘要:本文會給大家介紹下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 。