[摘要]對于嵌入式系統的外部開發人員來說,通常使用的交叉調試工具只能對一段程序或代碼進行調試,而對整體系統的運行行為和運行邏輯無法了解,因此對一些系統級行為和邏輯錯誤的定位和調試變的非常困難。針對這一問題,本文設計了一種針對嵌入式系統的多目標機系統監視方法。該方法通過在嵌入式操作系統中插入記錄事件的樁程序,在監視系統運行過程中將各事件發生時間及參數記錄下來,并將記錄的監視數據發送到宿主機端,由宿主機端的軟件解析這些數據,并以圖形化的方式展示出來,直觀地重現嵌入式操作系統的運行行為和運行邏輯。
[關鍵詞]嵌入式系統;系統監視器
1.引言
如今嵌入式系統的應用越來越廣泛,對嵌入式系統開發工具的需求也越來越多,而一個功能全面、使用便捷的工具可以很大程度上提高開發的效率[1][2]。
多目標機系統監視器支持對多目標機系統同時進行監視配置、啟動、停止、上傳監視數據;支持對多目標機系統運行行為和運行邏輯圖形化查看和分析,便于開發者發現由多目標機組成的系統其中隱含的運行行為及運行邏輯的錯誤。
2.監視器系統結構和組成
該多目標機系統監視方法需要的軟件模塊組成見圖1。
圖1 系統監視器模塊組成
主要由目標機監視控制器、目標機通信管理器、監視器數據查看器、命令響應器、監視器和監視記錄樁組成。
2.1目標機監視控制器
目標機監視控制器為用戶提供監視控制圖形界面,監視控制圖形界面提供的用戶操作有:目標機配置——配置要監視的目標機,目標機連接——控制目標機通信管理器,配置各目標機監視參數、啟動監視指定的目標機、停止監視指定的目標機、打開查看指定目標機的監視數據。
其中,配置監視參數、啟動監視、停止監視操作將生成監視命令,交由目標機通信管理器向目標機端發送,并處理來自目標機通信管理器接收到的目標機端的回復。
最后,打開查看指定目標機的監視數據操作控制監視數據查看器將目標機監視數據打開查看。
2.2目標機通信管理器
目標機通信管理器提供多目標機監視操作相關數據包通信能力。相關數據包包括:命令數據包(如:連接、監視配置、監視啟動、監視停止、監視數據上傳)、命令回復包、監視數據包。目標機通信管理器將目標機監視控制器產生的命令轉換為命令數據包,發送到命令指定要發往的目標機,接收所有建立了通信連接的目標機的命令回復數據包和監視數據包,解析接收到的數據包得到命令的回復或監視數據。
2.3監視數據查看器
監視器數據查看器提供監視數據的圖形化查看、分析能力。它將所有記錄的目標機事件通過圖形化的方式展現給用戶,用戶從監視數據查看器中,可以查看系統上下文組成、每個上下文的執行行為(信號量、定時器、消息隊列、緩沖、端口等內核對象的操作),上下文調度等信息。
2.4命令響應器
命令響應器在目標機端,接收宿主機端目標機通信管理器發送的命令數據包,向宿主機端目標機通信管理器發送回復數據包、監視數據包。分析接收的命令數據包,從而執行監視控制操作(包括監視啟動、監視停止、監視數據上傳),并且將執行的結果生成回復數據包,發往宿主機端。
2.5監視器
監視器向命令響應器提供監視控制操作。包括監視啟動、監視停止、監視數據上傳。監視啟動時,創建保存監視數據的緩沖區,然后創建監視記錄頭(內容包括:目標機系統的時間戳頻率、包含的上下文、當前上下文等信息),最后打開監視記錄開關。監視停止時關閉監視記錄開關。監視數據上傳時,從監視緩沖區中讀出監視數據,然后組織成監視數據包發送給宿主機端,緩沖區中所有的數據讀出上傳完成后,銷毀緩沖區。
2.6監視記錄樁
監視記錄樁根據監視記錄開關的狀態,決定是不是記錄監視數據到緩沖區。當監視記錄開關打開時,記錄監視數據到緩沖區,監視記錄開關關閉時則不記錄。監視記錄樁在記錄監視數據時,按照定義好的事件格式,事件數據項進行記錄。
3.系統監視方法工作流程
多目標機系統監視方法的具體工作流程:
(1)用戶在目標機監視控制器中配置要進行系統監視的目標機。配置參數包括:目標機名、目標機連接方式、目標機監視配置參數。
(2)用戶在目標機監視控制器中進行連接操作,目標機通信管理器向所有配置的目標機發送連接命令數據包。
(3)命令響應器執行連接命令,組織回復包發送給宿主機端。
(4)宿主機端目標機通信管理器收到目標機回復數據后,和目標機建立起通信連接。
(5)用戶在目標機監視控制器中選擇要啟動監視的目標機,進行啟動監視操作,目標機監視控制器生成監視啟動命令,并傳遞給目標機通信管理器。
(6)目標機通信管理器發送啟動命令到目標機端的命令響應器。
(7)命令響應器執行啟動命令,控制監視器啟動監視。
(8)嵌入式OS中監視記錄樁運行過程中的監視數據記錄到監視緩沖區中。
(9)用戶在目標機監視控制器中停止指目標機的監視操作,目標機監視控制器將用戶停止監視操作轉換為停止命令和上傳命令,并將命令傳遞給目標機通信管理器。
(10)目標機通信管理器將停止監視控制命令發送給目標機端的命令響應器。
(11)命令響應器執行停止命令,控制監視器停止監視。
(12)嵌入式OS中的監視記錄樁停止記錄監視數據。
(13)目標機通信管理器將上傳命令發送給目標機端的命令響應器。
(14)命令響應器執行上傳命令,控制監視器取得監視數據并發送給目標機通信管理器。
(15)目標機通信管理器接收到監視數據后將其傳遞給監視數據查看器。
(16)監視數據查看器進程監視數據的解析,繪制出系統運行行為和運行邏輯圖形。
4.監視結果顯示
系統監視器監視數據查看器繪制的系統運行行為和邏輯圖形界面如圖2所示。
圖2 監視數據查看界面
在監視數據圖形化查看界面中,上方橫軸是時間軸,左側縱軸是各任務或進程。圖中的小圖標,表示在橫軸對應的時間點,對應的任務或進程發生了圖標所表示的事件。比如_worker_task在28.54085時間點,發生了信號量釋放事件(三角旗圖標)。圖中用波浪線、鋸齒線等不同形式的線,表示對應的任務或進程在一個時間段里的狀態。比如p2:user2在圖中窗口時間段范圍內處于就緒狀態。
在界面上方的工具欄中,可以對圖像做放大、縮小等操作,還可以選擇對處理器使用、存儲器使用以表格或圖形方式進行查看。
5.結束語
本文設計的多目標機監視方法,能夠同時對多個目標機進行監視,并能夠對目標機系統運行行為和運行邏輯進行圖形化查看和分析,為用戶提供了一種便捷有效的分析系統的途徑。
參考文獻
[1]王培進,李曉路.嵌入式系統集成開發平臺的設計與實現.計算機應用與軟件,2012(第5期):109-112
[2]粟明,趙克佳,盧凱.嵌入式系統開發環境目標監控器技術研究.計算機應用研究,2004(第8期):61-63.
作者簡介
衛進(1987-),女,碩士,主要從事軟件與理論方面研究。