嵌入式軟件跟蹤調(diào)試技術(shù)的研究與設(shè)計
摘要:針對在嵌入式實時操作系統(tǒng)環(huán)境下高低優(yōu)先級任務(wù)切換過程引起的跟蹤信息亂序和丟失問題,對跟蹤信息嵌套緩存機(jī)制和解析機(jī)制進(jìn)行了設(shè)計,提出了物理緩存管理機(jī)制與遞歸調(diào)用解析機(jī)制相結(jié)合、備份緩存管理機(jī)制與普通查詢解析機(jī)制相結(jié)合的兩種跟蹤方案,解決了跟蹤信息亂序和丟失問題,提高了跟蹤系統(tǒng)的運(yùn)行效率。
關(guān)鍵詞:嵌入式實時操作系統(tǒng);緩存管理;跟蹤調(diào)試
引言
嵌入式系統(tǒng)是當(dāng)今計算機(jī)軟件領(lǐng)域的熱點,實時性是嵌入式系統(tǒng)的基本要求。隨著嵌入式技術(shù)的不斷發(fā)展,在嵌入式應(yīng)用的不斷增長以及嵌入式系統(tǒng)復(fù)雜性不斷提高的情況下,調(diào)試階段在整個系統(tǒng)開發(fā)過程中所占的比重越來越大。調(diào)試環(huán)境和調(diào)試技術(shù)直接影響軟件開發(fā)的效率和質(zhì)量,高效的調(diào)試系統(tǒng)可以大大減少嵌入式系統(tǒng)開發(fā)的時間,減輕系統(tǒng)開發(fā)工作量。
跟蹤調(diào)試系統(tǒng)主要有JTAG在線調(diào)試和運(yùn)行時跟蹤調(diào)試兩種方式。JTAG在線調(diào)試在調(diào)試實時系統(tǒng)時有很大的局限性,如通過斷點查詢完參數(shù)后系統(tǒng)無法再按照正常時序運(yùn)行,以及無法檢測到系統(tǒng)順序化執(zhí)行的變遷狀態(tài)。運(yùn)行時跟蹤調(diào)試采用軟件插樁技術(shù),通過在程序中嵌入跟蹤點,開發(fā)人員可以在程序運(yùn)行過程中通過跟蹤點實時觀察輸出的信息,如各模塊之間進(jìn)行交互的信息以及程序運(yùn)行的順序等。
本項目設(shè)計的實時跟蹤系統(tǒng)基于運(yùn)行時跟蹤調(diào)試手段,采用ARM11系列處理器作為硬件開發(fā)平臺,運(yùn)行于Nucleus實時操作系統(tǒng)上。Nucl eus實時操作系統(tǒng)為搶先式多任務(wù)操作系統(tǒng),在程序執(zhí)行過程中,低優(yōu)先級任務(wù)會被高優(yōu)先級任務(wù)搶占,可能出現(xiàn)跟蹤任務(wù)沖突而導(dǎo)致跟蹤信息相互覆蓋、亂序等問題。特別是在跟蹤信息量較大時,一旦超過傳輸峰值就會造成跟蹤信息的丟失。該實時跟蹤系統(tǒng)采用特殊緩存機(jī)制和解析機(jī)制,能夠解決跟蹤信息丟失的問題,實現(xiàn)跟蹤信息的完整、有序傳輸。
1 原始跟蹤方案
實時跟蹤系統(tǒng)由跟蹤信息緩存單元、傳輸控制單元和PC端解析單元組成,如圖1所示。其中,跟蹤信息緩存單元負(fù)責(zé)對跟蹤信息的組裝和跟蹤緩存的管理,傳輸控制單元負(fù)責(zé)將跟蹤信息從跟蹤緩存搬移到PC端,PC端解析單元負(fù)責(zé)對跟蹤信息進(jìn)行解析。
跟蹤緩存管理機(jī)制是指如何管理該跟蹤緩存的讀寫權(quán)限,如何記錄讀寫索引的變化。在有跟蹤備份緩存的跟蹤方案中,跟蹤緩存管理機(jī)制還負(fù)責(zé)對備份緩存的管理。在跟蹤系統(tǒng)中,所有跟蹤信息在跟蹤點輸出時被封裝成為固定幀格式(消息頭+消息內(nèi)容),寫入到跟蹤信息緩存單元中同一個長度為X字節(jié)的環(huán)形隊列。
由于Nucleus多任務(wù)操作系統(tǒng)下實時跟蹤系統(tǒng)中跟蹤源主要分為低級中斷、高級中斷/定時器和任務(wù)等,因此在對跟蹤源中的跟蹤點進(jìn)行跟蹤的過程中,不同優(yōu)先級的跟蹤點可能出現(xiàn)對全局跟蹤信息緩存的競爭。跟蹤沖突場景如圖2所示。跟蹤信息緩存單元中僅設(shè)置了一個寫指針訪問跟蹤信息緩存,保證了跟蹤信息的有序性,但不同優(yōu)先級跟蹤源進(jìn)行切換時會產(chǎn)生沖突,需要對寫指針現(xiàn)場進(jìn)行保護(hù)。
由于阻塞高優(yōu)先級任務(wù)會造成系統(tǒng)流程異常,在產(chǎn)生沖突時,為了保證跟蹤信息完整性,同時又不能阻塞高優(yōu)先級任務(wù),只能丟棄高優(yōu)先級任務(wù)中的跟蹤請求。當(dāng)操作系統(tǒng)任務(wù)頻繁切換時,會出現(xiàn)較多跟蹤信息丟棄的現(xiàn)象。跟蹤信息丟棄現(xiàn)象的特征是跟蹤信息整條丟失、連續(xù)丟失(主動搶占任務(wù)中的所有跟蹤),且跟蹤信息丟棄與跟蹤信息傳輸損耗無關(guān)。因此,跟蹤系統(tǒng)中的緩存機(jī)制有待優(yōu)化。
評論