色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用實(shí)時(shí)跟蹤方法調(diào)試嵌入式軟件

          用實(shí)時(shí)跟蹤方法調(diào)試嵌入式軟件

          作者: 時(shí)間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
          硬件設(shè)計(jì)人員利用邏輯分析儀分析總線和處理器的二進(jìn)制時(shí)序波形,由于它顯示的是最底層硬件每個(gè)時(shí)鐘周期的變化,即數(shù)字器件與總線的二進(jìn)制轉(zhuǎn)換情況,所以通常也稱為實(shí)時(shí)硬件跟蹤。



          底層操作系統(tǒng)設(shè)計(jì)工程師也經(jīng)常使用邏輯分析儀,但他們更加注重觀察那些和二進(jìn)制轉(zhuǎn)換類似的存儲(chǔ)指令,也就是通常所說的實(shí)時(shí)指令跟蹤。如今邏輯分析儀配有一種稱為反匯編的工具可完成這項(xiàng)任務(wù),反匯編工具專門針對(duì)處理器或總線設(shè)計(jì),它可以從一系列二進(jìn)制信息中提取特定的處理器存儲(chǔ)內(nèi)容。





          軟件設(shè)計(jì)人員通常都不太熟悉硬件工具,所以他們總是避免使用這些工具。軟件設(shè)計(jì)人員在電腦或工作站上用C++、VB及類似的語言編寫程序源代碼,并希望使用這些平臺(tái)完成整個(gè)設(shè)計(jì)、調(diào)試和評(píng)估過程。他們用軟件工具(仿真器和調(diào)試器)運(yùn)行新的目標(biāo)器件,而硬件工具如邏輯分析儀對(duì)許多軟件設(shè)計(jì)人員來說總是顯得格格不入。但由于現(xiàn)在系統(tǒng)日趨復(fù)雜,相互之間影響也越來越大,這種狀況正在漸漸改變。



          目前用得最廣泛的是一種所謂在線仿真器(ICE)的工具,它可以追蹤目標(biāo)器件并提取出源代碼。ICE是軟件設(shè)計(jì)工作站中運(yùn)行控制工具的一個(gè)集成組件,它監(jiān)測(cè)目標(biāo)器件總線的活動(dòng)情況,給出源代碼運(yùn)行結(jié)果信息。有了ICE后,軟件工程師不需要使用邏輯分析儀調(diào)試就可以完成整個(gè)項(xiàng)目。



          然而對(duì)軟件工程師來說,不幸的是ICE在有些方面的性能已落后于新一代高速處理器、存儲(chǔ)器件和總線,速度和連接性局限使它無法獨(dú)立觀測(cè)現(xiàn)代高速總線的復(fù)雜活動(dòng),軟件工程師必須使用邏輯分析儀這一測(cè)量工具來驗(yàn)證他們?cè)创a的日子已經(jīng)到來。



          現(xiàn)代數(shù)字設(shè)計(jì)人員經(jīng)常要與高速復(fù)雜多處理器系統(tǒng)打交道,如像圖1所示的一個(gè)用于通訊系統(tǒng)的基本嵌入式多處理器系統(tǒng)。上述三個(gè)領(lǐng)域的工程師都需要能有一種工具獲取長期相關(guān)數(shù)據(jù),可從圖1系統(tǒng)中得到數(shù)以百萬計(jì)的運(yùn)行周期信息,該工具要能夠從主處理器及其它從處理器、存儲(chǔ)總線和外圍總線獲得信息,重要的是這些信息還要和時(shí)間聯(lián)系起來,以便用戶可以清楚地知道所有不同的處理器和總線之間是怎樣相互作用的。只有邏輯分析儀才能即刻滿足所有要求。






          用集成工具完成軟件分析調(diào)試



          軟件設(shè)計(jì)人員都很理想地希望其軟件評(píng)估工作兩頭好處都能占到,既可以在熟悉的工作站控制終端上運(yùn)行邏輯分析儀的采樣、顯示和分析,又不需要接觸到真正的邏輯分析儀。如今儀器生產(chǎn)廠商已開發(fā)出能滿足這種要求的解決方案,可以把功能強(qiáng)大的邏輯分析儀(如Tektronix TLA700系列)和經(jīng)驗(yàn)證的控制/仿真/調(diào)試工具(如Wind River的VisionClick)集成在一起。



          這兩種功能結(jié)合起來的性能遠(yuǎn)大于各部分功能的簡單相加。如果沒有執(zhí)行控制工具,邏輯分析儀盡管能得到被測(cè)系統(tǒng)(SUT)的實(shí)時(shí)相關(guān)數(shù)據(jù),但卻不能修改CPU的狀態(tài),也不能單步執(zhí)行程序,或者控制所監(jiān)測(cè)的數(shù)據(jù)轉(zhuǎn)換;而如果沒有邏輯分析儀,執(zhí)行控制工具雖然可以控制程序的每步執(zhí)行情況,但是得不到滿意的次納秒級(jí)時(shí)序數(shù)據(jù),或與時(shí)間對(duì)應(yīng)的結(jié)果。



          將兩種性能集成在一起的開發(fā)系統(tǒng)能采集實(shí)時(shí)信號(hào)、存儲(chǔ)狀況及源代碼,所有這一切都可以在易于操作的仿真(執(zhí)行控制)工具環(huán)境下獲得。有了這種工具,軟件工程師就能夠得到長期高精度跟蹤數(shù)據(jù),即使總線速度很高也不怕,有些邏輯分析儀的存儲(chǔ)能力甚至達(dá)到64M。



          這樣一來,邏輯分析儀看起來就像是控制工具的一部分,得到的數(shù)據(jù)以軟件開發(fā)人員能看懂的形式顯示在仿真工作站屏幕上,它可以顯示出不同級(jí)別的數(shù)據(jù),從存儲(chǔ)器到高級(jí)源代碼,還包括帶有清楚時(shí)間顯示的每一運(yùn)行周期的功能(圖2)。



          值得一提的是很多邏輯分析儀沒有提供足夠的分辨率,無法將多個(gè)總線得到的結(jié)果正確聯(lián)系起來,尤其是那些老式儀器。如有些儀器聲稱可以顯示時(shí)序調(diào)整的波形和存儲(chǔ)內(nèi)容,但調(diào)整圖形卻是以多個(gè)被測(cè)系統(tǒng)周期顯示的,當(dāng)試圖在一個(gè)復(fù)雜系統(tǒng)中追索一項(xiàng)數(shù)據(jù)轉(zhuǎn)換時(shí),它根本就不可能跟蹤出每個(gè)周期最后將連接到什么位置,有問題出現(xiàn)時(shí)也難以分辨出原因和結(jié)果之間的關(guān)系。雖然從技術(shù)上說,得到的波形和存儲(chǔ)的內(nèi)容是實(shí)時(shí)追蹤結(jié)果,但它太不精確了,對(duì)硬件和操作系統(tǒng)的故障判斷沒有多大幫助。



          要想使顯示的多種形式時(shí)序總線數(shù)據(jù)有意義,關(guān)鍵在于每次采樣的時(shí)間信息,并要有足夠的分辨率。如果每次采集的數(shù)據(jù)都帶有時(shí)間信息(分辨率500皮秒),就能夠把主處理器總線指令與系統(tǒng)外設(shè)總線的結(jié)果等同起來。



          數(shù)據(jù)采樣工具必須既要“寬”(有很多輸入通道)又要“深”(有很大的存儲(chǔ)容量儲(chǔ)存得到的數(shù)據(jù)),帶有擴(kuò)展內(nèi)存的組合式邏輯分析儀可滿足這些要求,特別是當(dāng)擴(kuò)展內(nèi)存可以從64K到64M時(shí),能勝任ICE環(huán)境下的任何要求。



          要注意邏輯分析儀產(chǎn)生的每一個(gè)畫面都是從二進(jìn)制波形信息得來的,所獲得的信息及其高分辨率和時(shí)間精度都是一些基本單元,通過反匯編器和支持處理器轉(zhuǎn)換成存儲(chǔ)內(nèi)容和源代碼顯示出來,這些都是自動(dòng)按時(shí)間調(diào)整的,在多總線測(cè)試點(diǎn)上會(huì)導(dǎo)致執(zhí)行延遲。



          高性能邏輯分析儀和仿真器真正結(jié)合在一起后,可以為更快、更有效的代碼驗(yàn)證和除錯(cuò)創(chuàng)造條件,例如對(duì)每一個(gè)采樣點(diǎn)都用不同的窗口進(jìn)行顯示就很有用,有些用存儲(chǔ)內(nèi)容或者代碼格式,而另一些則用時(shí)序格式。對(duì)于屏幕上的這些顯示,每個(gè)窗口的光標(biāo)都處于程序執(zhí)行的同一點(diǎn)上,如果軟件工程師在執(zhí)行某一步程序時(shí)遇到問題,只需要把光標(biāo)指向那一步,此時(shí)帶有光標(biāo)的硬件周期波形就會(huì)在另一窗口中自動(dòng)顯示出來,這樣軟件和硬件設(shè)計(jì)人員就能很容易地一起合作解決問題。



          綜合式仿真/邏輯分析儀對(duì)代碼優(yōu)化也很有幫助。軟件設(shè)計(jì)師要在預(yù)定的時(shí)間內(nèi)使程序運(yùn)行完畢,利用仿真器屏幕上可顯示實(shí)際時(shí)間值的特性(如圖2),可以很方便地看出程序是否能在規(guī)定的時(shí)間內(nèi)完成,其它代碼優(yōu)化工具如直方圖還能對(duì)軟件工程師提供進(jìn)一步幫助。



          使用集成邏輯分析儀還增加了很多其它仿真器功能,如功能概括工具可得到單個(gè)指令的最小、最大和平均完成時(shí)間,這得益于改進(jìn)后邏輯分析儀所提供的時(shí)間分辨率,條件追蹤工具和代碼器也能進(jìn)一步提高時(shí)間分辨率和采樣深度。



          最重要的是,綜合型仿真/邏輯分析儀能使對(duì)硬件不感興趣的軟件工程師不需要觸摸它就可以控制這一功能強(qiáng)大的采樣儀器。工程師可以對(duì)分析儀進(jìn)行全面控制,不管什么時(shí)候,只要按下仿真器上的“運(yùn)行”按鈕,仿真應(yīng)用程序和邏輯分析功能都會(huì)立即執(zhí)行,仿真器運(yùn)行代碼,邏輯分析儀則進(jìn)行全面追蹤,把描述目標(biāo)器件活動(dòng)的所有數(shù)據(jù)都存起來。邏輯分析儀的高分辨率和高精度可把每一個(gè)處理器和總線周期都記錄下來,同時(shí)也有賴于這兩個(gè)工具的結(jié)合,使得軟件工程師仍然可以在熟悉的環(huán)境下更有效地工作。



          作者:Davis Chen


          區(qū)域銷售經(jīng)理


          泰克公司


          Email:davis.chen@exgate.tek.com


          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉