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