<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è) > 嵌入式系統 > 設計應用 > 提高FPGA嵌入式處理器的系統除錯率

提高FPGA嵌入式處理器的系統除錯率

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

目前,越來(lái)越多的設計開(kāi)始采用,如PowerPC(Xilinx)MicroBlaze來(lái)完成控制任務(wù),采用C語(yǔ)言等軟件語(yǔ)言描述這些控制任務(wù),要比使用VHDLVerilog等硬件語(yǔ)言描述更加容易。

當進(jìn)行系統設計時(shí),絕大部份的設計時(shí)間可能花費在除錯階段,因此縮短發(fā)現問(wèn)題并解決問(wèn)題的時(shí)間非常重要。作為一款整合除錯器,Computex公司的F-Sight同時(shí)具備硬件和軟件除錯能力。一方面,它支持內部的全方位軟件除錯。另一方面,它還支持監視硬件訊號。本文將介紹如何利用F-Sight提高除錯效率。

啟動(dòng)除錯器

Computex公司的除錯器非常適合用來(lái)實(shí)現FPGA內部嵌入式處理器的除錯。對于MicroBlaze處理器來(lái)說(shuō),工程師可以利用MicroBlaze除錯模塊(MDM)控制處理器的執行過(guò)程并進(jìn)行除錯,也可以利用公司的MicroBlaze追蹤核心(XMTC)以非侵入方式監控處理器程序的執行情況。

由于FPGA的接腳限制,減少輸出到接腳的訊號數量非常重要。XMTC提供了編碼指令和數據追蹤功能,所需要的接腳數量?jì)H為非編碼訊號所需的10%。

為了使除錯器實(shí)現追蹤功能,只需要將MDMXMTC核心分別連接到MicroBlaze處理器的除錯和追蹤接口,然后將編碼后的追蹤訊號引到FPGA接腳以便F-Sight收集數據。完成FPGA設計后,再將F-Sight除錯器連接到電路板的Mictor連接器。如果使用不帶Mictor連接器的ML400系列、ML500系列或Sparta-3E/3A/3AN FPGA板,那么在Computex F-Sight配接器幫助下仍可以使用F-Sight中的處理器追蹤功能。圖1是利用F-Sight配接器將F-Sight連接到Spartan-3板上的照片。


圖1:F-Sight透過(guò)配接器連接到Spartan-3電路板。

使用處理器追蹤功能

處理器追蹤功能可以在不中斷處理器執行的情況下監控程序執行情況,因此用戶(hù)可以長(cháng)時(shí)間對程序進(jìn)行分析,以確定程序代碼中的問(wèn)題,而不會(huì )改變處理器的執行狀態(tài)。Computex F-Sight提供的處理器追蹤能力已證明適用在許多情況。

試想一段程序總是不停地產(chǎn)生例外。例外可能產(chǎn)生在程序的任何位置;工程師面臨的挑戰在于找出并厘清例外之處。為了解決這個(gè)問(wèn)題,可以在例外產(chǎn)生之前或在例外向量中設置斷點(diǎn),這樣當程序到達斷點(diǎn)時(shí)就會(huì )暫停。當程序停止時(shí),可查看F-Sight記錄的執行歷史數據,可從中發(fā)現在進(jìn)入例外處理前執行了哪些指令。

在嵌入式系統中堆棧溢出也是一個(gè)常見(jiàn)的問(wèn)題。程序突然開(kāi)始從看起來(lái)不太正常的地方執行。堆??赡苡捎谝绯龆黄茐?。如果懷疑產(chǎn)生了這樣的問(wèn)題,可以透過(guò)設計觸發(fā)器來(lái)開(kāi)始或停止追蹤數據的采集。透過(guò)設置觸發(fā)器條件進(jìn)行堆棧指針和堆棧上限之間的比較,當條件滿(mǎn)足時(shí),程序將及時(shí)中止,然后用戶(hù)就可以很容易地確認堆棧溢出以及產(chǎn)生的地方。

在某些實(shí)時(shí)系統中,為了除錯目的而停止處理器的執行過(guò)程并非很好的選擇,因為停止執行本身可能會(huì )改變程序行為。有時(shí)候問(wèn)題可能極少出現,因此可能需要長(cháng)時(shí)間監控程序執行情況。F-Sight可以用來(lái)設置復雜的觸發(fā)條件并收集追蹤數據,然后透過(guò)事后分析來(lái)除錯問(wèn)題。

探測內部訊號

FPGA除錯經(jīng)常從設計模擬開(kāi)始。盡管仿真器能夠發(fā)現設計中的錯誤,但卻不能發(fā)現與技術(shù)指標相關(guān)的問(wèn)題。而且還經(jīng)常產(chǎn)生設計在模擬時(shí)通過(guò)了所有測試、但在FPGA中實(shí)現時(shí)卻無(wú)法工作的情況。產(chǎn)生這種情況時(shí),設計人員將被迫利用邏輯分析儀在實(shí)際的目標系統中進(jìn)行除錯。

當試圖將訊號從FPGA中引出以便讓邏輯分析儀監視其波形時(shí),問(wèn)題就出現了。對于大規模嵌入式系統設計來(lái)說(shuō),在大多數情況下即使只有很小的修改(例如將所需要的訊號引到組件外部接腳),也可能需要很長(cháng)時(shí)間才能完成FPGA的重新合成和實(shí)體建置。此外,還可能會(huì )由于不同的布局和布線(xiàn)而帶來(lái)時(shí)序問(wèn)題。執行實(shí)體建置工具所需要的實(shí)際時(shí)間依賴(lài)于電路的規模以及主計算機的性能,但很可能一天內只夠完成幾次除錯。

幸運的是,Computex F-sight提供了一項非常有用的功能,它不需要重新執行合成和實(shí)體實(shí)現工具就能透過(guò)設計修改把內部FPGA訊號引到組件外部接腳。這一功能被稱(chēng)為探測’(Probing)。只需在顯示HDL原始程序代碼的視圖中簡(jiǎn)單地選擇內部FPGA訊號(2),F-Sight將自動(dòng)完成其余工作,并根據上述選擇為測試接腳分配合適的布線(xiàn)資源。這是透過(guò)利用Xilinx ISE軟件工具中包含的FPGA編輯器實(shí)現的。有了這一功能,除錯時(shí)必須花在邏輯合成和布局布在線(xiàn)的時(shí)間被縮到了最短,因而可以有更多時(shí)間用在監視訊號波形上。


2F-Sight探測。

協(xié)同除錯

當系統工作不正常時(shí),唯一能做的就是根據實(shí)際產(chǎn)生的事件檢查問(wèn)題產(chǎn)生的原因。在有些情況下,利用硬件來(lái)實(shí)現事件追蹤會(huì )更容易;而在其它情況下,利用軟件可能更容易一些。例如,在使用硬件的情況中,如果能夠確定顯示例外的訊號,那么可以將這個(gè)訊號設為觸發(fā)訊號。在使用軟件的情況中,如果例外處理被調用,那么可以在例外處理程序處設置斷點(diǎn)并執行用戶(hù)程序。這樣事件產(chǎn)生的過(guò)程將被擷取進(jìn)F-Sight的追蹤緩沖器中。

然而,這兒的問(wèn)題是即使擷取了事件的產(chǎn)生過(guò)程,確定原因仍然需要很長(cháng)的時(shí)間,除非了解硬件和軟件之間的相關(guān)性。針對這一點(diǎn),Computex實(shí)現了協(xié)同除錯功能,即可以在F-Sight中實(shí)現硬件(分析儀)和軟件(追蹤)歷史之間的同步。利用這一功能,可以在相同時(shí)間軸上檢查事件產(chǎn)生時(shí)的波形和程序行為。當在分析儀窗口中滾動(dòng)顯示波形時(shí),程序執行歷史和原始程序代碼視圖也相應滾動(dòng)(3)。協(xié)同除錯功能的強大之處在于能夠透過(guò)硬件和軟件協(xié)同除錯快速確定問(wèn)題原因。


3F-Sight協(xié)同除錯。

對閃存除錯

FPGA內部存儲器經(jīng)常被用來(lái)儲存嵌入式處理器程序。然而,如果程序太大,內部存儲器的容量經(jīng)常不夠用。一種可行的方法是利用外部閃存來(lái)儲存用戶(hù)程序。

雖然有些除錯器不支持閃存寫(xiě)入功能,但F-Sight卻能夠像除錯位于內部存儲器中的程序一樣,全面對外部閃存中的程序除錯。例如,它可以用來(lái)下載用戶(hù)程序,對內存的某部份加上外掛程序,或在閃存中設置軟件斷點(diǎn)。

F-Sight支持1000多種類(lèi)型的閃存。即使所使用的閃存不在已支持列表中,也可以透過(guò)圖形化用戶(hù)接口方便地手工增加相應項目。

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


評論


相關(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>