<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式軟件跟蹤調試技術(shù)的研究與設計

嵌入式軟件跟蹤調試技術(shù)的研究與設計

作者: 時(shí)間:2012-02-21 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:針對在實(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ù)嵌入式的不斷發(fā)展,在嵌入式應用的不斷增長(cháng)以及嵌入式系統復雜性不斷提高的情況下,階段在整個(gè)系統開(kāi)發(fā)過(guò)程中所占的比重越來(lái)越大。環(huán)境和調試直接影響開(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í)跟蹤調試采用插樁,通過(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)行解析。

本文引用地址:http://dyxdggzs.com/article/149589.htm

a.jpg


跟蹤緩存管理機制是指如何管理該跟蹤緩存的讀寫(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)行保護。

b.jpg


由于阻塞高優(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)化。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>