開(kāi)發(fā)新型嵌入式數(shù)字處理系統(tǒng)或者在對(duì)其進(jìn)行故障排除時(shí),不論它屬于高速服務(wù)器還是通訊系統(tǒng),都需要牽涉到三方面技術(shù),即硬件、底層操作系統(tǒng)和軟件設(shè)計(jì)。
硬件設(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ǔ)指令,也就是通常所說(shuō)的實(shí)時(shí)指令跟蹤。如今邏輯分析儀配有一種稱為反匯編的工具可完成這項(xiàng)任務(wù),反匯編工具專門針對(duì)處理器或總線設(shè)計(jì),它可以從一系列二進(jìn)制信息中提取特定的處理器存儲(chǔ)內(nèi)容。
軟件設(shè)計(jì)人員通常都不太熟悉硬件工具,所以他們總是避免使用這些工具。軟件設(shè)計(jì)人員在電腦或工作站上用C++、VB及類似的語(yǔ)言編寫(xiě)程序源代碼,并希望使用這些平臺(tái)完成整個(gè)設(shè)計(jì)、調(diào)試和評(píng)估過(guò)程。他們用軟件工具(仿真器和調(diào)試器)運(yùn)行新的目標(biāo)器件,而硬件工具如邏輯分析儀對(duì)許多軟件設(shè)計(jì)人員來(lái)說(shuō)總是顯得格格不入。但由于現(xiàn)在系統(tǒng)日趨復(fù)雜,相互之間影響也越來(lái)越大,這種狀況正在漸漸改變。
目前用得廣泛的是一種所謂在線仿真器(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ì)軟件工程師來(lái)說(shuō),不幸的是ICE在有些方面的性能已落后于新一代高速處理器、存儲(chǔ)器件和總線,速度和連接性局限使它無(wú)法獨(dú)立觀測(cè)現(xiàn)代高速總線的復(fù)雜活動(dòng),軟件工程師必須使用邏輯分析儀這一測(cè)量工具來(lái)驗(yàn)證他們?cè)创a的日子已經(jīng)到來(lái)。
現(xiàn)代數(shù)字設(shè)計(jì)人員經(jīng)常要與高速?gòu)?fù)雜多處理器系統(tǒng)打交道,如像圖1所示的一個(gè)用于通訊系統(tǒng)的基本嵌入式多處理器系統(tǒng)。上述三個(gè)領(lǐng)域的工程師都需要能有一種工具獲取長(zhǎng)期相關(guān)數(shù)據(jù),可從圖1系統(tǒng)中得到數(shù)以百萬(wàn)計(jì)的運(yùn)行周期信息,該工具要能夠從主處理器及其它從處理器、存儲(chǔ)總線和外圍總線獲得信息,重要的是這些信息還要和時(shí)間聯(lián)系起來(lái),以便用戶可以清楚地知道所有不同的處理器和總線之間是怎樣相互作用的。只有邏輯分析儀才能即刻滿足所有要求。
用集成工具完成軟件分析調(diào)試
軟件設(shè)計(jì)人員都很理想地希望其軟件評(píng)估工作兩頭好處都能占到,既可以在熟悉的工作站控制終端上運(yùn)行邏輯分析儀的采樣、顯示和分析,又不需要接觸到真正的邏輯分析儀。如今儀器生產(chǎn)廠商已開(kāi)發(fā)出能滿足這種要求的解決方案,可以把功能強(qiáng)大的邏輯分析儀(如Tektronix TLA700系列)和經(jīng)驗(yàn)證的控制/仿真/調(diào)試工具(如Wind River的VisionClick)集成在一起。
這兩種功能結(jié)合起來(lái)的性能遠(yuǎn)大于各部分功能的簡(jiǎn)單相加。如果沒(méi)有執(zhí)行控制工具,邏輯分析儀盡管能得到被測(cè)系統(tǒng)(SUT)的實(shí)時(shí)相關(guān)數(shù)據(jù),但卻不能修改CPU的狀態(tài),也不能單步執(zhí)行程序,或者控制所監(jiān)測(cè)的數(shù)據(jù)轉(zhuǎn)換;而如果沒(méi)有邏輯分析儀,執(zhí)行控制工具雖然可以控制程序的每步執(zhí)行情況,但是得不到滿意的次納秒級(jí)時(shí)序數(shù)據(jù),或與時(shí)間對(duì)應(yīng)的結(jié)果。
將兩種性能集成在一起的開(kāi)發(fā)系統(tǒng)能采集實(shí)時(shí)信號(hào)、存儲(chǔ)狀況及源代碼,所有這一切都可以在易于操作的仿真(執(zhí)行控制)工具環(huán)境下獲得。有了這種工具,軟件工程師就能夠得到長(zhǎng)期高精度跟蹤數(shù)據(jù),即使總線速度很高也不怕,有些邏輯分析儀的存儲(chǔ)能力甚至達(dá)到64M。
這樣一來(lái),邏輯分析儀看起來(lái)就像是控制工具的一部分,得到的數(shù)據(jù)以軟件開(kāi)發(fā)人員能看懂的形式顯示在仿真工作站屏幕上,它可以顯示出不同級(jí)別的數(shù)據(jù),從存儲(chǔ)器到源代碼,還包括帶有清楚時(shí)間顯示的每一運(yùn)行周期的功能(圖2)。
值得一提的是很多邏輯分析儀沒(méi)有提供足夠的分辨率,無(wú)法將多個(gè)總線得到的結(jié)果正確聯(lián)系起來(lái),尤其是那些老式儀器。如有些儀器聲稱可以顯示時(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è)周期將連接到什么位置,有問(wèn)題出現(xiàn)時(shí)也難以分辨出原因和結(jié)果之間的關(guān)系。雖然從技術(shù)上說(shuō),得到的波形和存儲(chǔ)的內(nèi)容是實(shí)時(shí)追蹤結(jié)果,但它太不精確了,對(duì)硬件和操作系統(tǒng)的故障判斷沒(méi)有多大幫助。
要想使顯示的多種形式時(shí)序總線數(shù)據(jù)有意義,關(guān)鍵在于每次采樣的時(shí)間信息,并要有足夠的分辨率。如果每次采集的數(shù)據(jù)都帶有時(shí)間信息(分辨率500皮秒),就能夠把主處理器總線指令與系統(tǒng)外設(shè)總線的結(jié)果等同起來(lái)。
數(shù)據(jù)采樣工具必須既要“寬”(有很多輸入通道)又要“深”(有很大的存儲(chǔ)容量?jī)?chǔ)存得到的數(shù)據(jù)),帶有擴(kuò)展內(nèi)存的組合式邏輯分析儀可滿足這些要求,特別是當(dāng)擴(kuò)展內(nèi)存可以從64K到64M時(shí),能勝任ICE環(huán)境下的任何要求。
要注意邏輯分析儀產(chǎn)生的每一個(gè)畫(huà)面都是從二進(jìn)制波形信息得來(lái)的,所獲得的信息及其高分辨率和時(shí)間精度都是一些基本單元,通過(guò)反匯編器和支持處理器轉(zhuǎn)換成存儲(chǔ)內(nèi)容和源代碼顯示出來(lá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í)遇到問(wèn)題,只需要把光標(biāo)指向那一步,此時(shí)帶有光標(biāo)的硬件周期波形就會(huì)在另一窗口中自動(dòng)顯示出來(lái),這樣軟件和硬件設(shè)計(jì)人員就能很容易地一起合作解決問(wèn)題。
綜合式仿真/邏輯分析儀對(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ù)都存起來(lái)。邏輯分析儀的高分辨率和高精度可把每一個(gè)處理器和總線周期都記錄下來(lái),同時(shí)也有賴于這兩個(gè)工具的結(jié)合,使得軟件工程師仍然可以在熟悉的環(huán)境下更有效地工作。
用實(shí)時(shí)跟蹤方法調(diào)試嵌入式軟件
更新時(shí)間: 2005-10-27 00:00:00來(lái)源: 粵嵌教育瀏覽量:4249
粵嵌動(dòng)態(tài)
推薦閱讀
- ·廣州2511嵌入式開(kāi)發(fā)就業(yè)班
- ·深圳市領(lǐng)世達(dá)科技有限公司專場(chǎng)招聘
- ·廣州2510嵌入式開(kāi)發(fā)就業(yè)班
- ·深圳正運(yùn)動(dòng)技術(shù)有限公司專場(chǎng)招聘會(huì)(長(zhǎng)沙校區(qū))
- ·廣東賽鉑安智能科技有限公司專場(chǎng)招聘會(huì)
- ·中山志源電子科技有限公司專場(chǎng)招聘會(huì)
- ·啟泰智能科技有限公司專場(chǎng)招聘
- ·中山豐旭電子實(shí)業(yè)有限公司專場(chǎng)招聘會(huì)
- ·東莞市福鑫達(dá)精密技術(shù)有限公司專場(chǎng)招聘
- ·嵌入式系統(tǒng)中常用的存儲(chǔ)設(shè)備及其特點(diǎn)