爽灬爽灬爽灬毛及A片,国产精品成人久久小草,荫蒂添的好舒服视频囗交,欧美激情特黄大片AA在线播放

成功案例

邏輯分析儀在嵌入式開(kāi)發(fā)調(diào)試中的應(yīng)用

邏輯分析儀在嵌入式開(kāi)發(fā)調(diào)試中的應(yīng)用
在嵌入式開(kāi)發(fā)調(diào)試中,開(kāi)發(fā)人員的調(diào)試手段包括斷點(diǎn)、觸發(fā)和跟蹤三種。隨著集成電路技術(shù)的發(fā)展,新一代的嵌入式處理器集成度和工作頻率越來(lái)越高,芯片封裝形式也越來(lái)越趨向表貼化。在線調(diào)試器(ICD)與邏輯分析儀的組合開(kāi)發(fā)調(diào)試平臺(tái)越來(lái)越多地成為廣大的新一代嵌入式處理器的開(kāi)發(fā)人員實(shí)現(xiàn)上述三種調(diào)試手段的優(yōu)選。
開(kāi)發(fā)人員使用斷點(diǎn)功能控制所調(diào)試的應(yīng)用程序的起和停。使應(yīng)用程序運(yùn)行到自己想要調(diào)試的程序上。通過(guò)觀察在斷點(diǎn)處的應(yīng)用程序的變量以及寄存器和存儲(chǔ)器的值檢測(cè)所調(diào)試的應(yīng)用程序運(yùn)行是否正確。斷點(diǎn)是開(kāi)發(fā)人員經(jīng)常使用的調(diào)試手段。
斷點(diǎn),顧名思義就是(應(yīng)用程序)停下來(lái)的地方。斷點(diǎn)按照其實(shí)現(xiàn)方法分為軟件斷點(diǎn)和硬件斷點(diǎn)。軟件斷點(diǎn)是靠程序指令陷阱來(lái)實(shí)現(xiàn)的。硬件斷點(diǎn)是靠嵌入式處理器或調(diào)試工具硬件來(lái)實(shí)現(xiàn)的。軟件斷點(diǎn)的實(shí)現(xiàn)方法對(duì)于不同的嵌入式處理器和不同的調(diào)試工具而言,實(shí)現(xiàn)方法都是一樣的,都是通過(guò)修改程序指令的方法實(shí)現(xiàn)的。硬件斷點(diǎn)的實(shí)現(xiàn)方法對(duì)于不同的嵌入式處理器和不同的調(diào)試工具而言,實(shí)現(xiàn)方法是不一樣的。有的嵌入式處理器具有片上調(diào)試邏輯,調(diào)試工具通過(guò)JTAG、BDM、OCDS、NEXUS等接口訪問(wèn)控制片上調(diào)試邏輯,通過(guò)片上調(diào)試邏輯實(shí)現(xiàn)硬件斷點(diǎn)。這種硬件斷點(diǎn)的數(shù)量是有限制的。由于不同的嵌入式處理器上的調(diào)試邏輯實(shí)現(xiàn)方法不同,因而它們提供的硬件斷點(diǎn)的數(shù)量是不一樣的。在線調(diào)試器(ICD)就是通過(guò)訪問(wèn)控制片上調(diào)試邏輯實(shí)現(xiàn)硬件斷點(diǎn)的。沒(méi)有片上調(diào)試邏輯的嵌入式處理器不能使用在線調(diào)試器。在線仿真器(ICE)通過(guò)基于存儲(chǔ)器的斷點(diǎn)技術(shù)實(shí)現(xiàn)硬件斷點(diǎn)。在線仿真器實(shí)現(xiàn)的硬件斷點(diǎn)的數(shù)量是沒(méi)有限制的。對(duì)于沒(méi)有片上調(diào)試邏輯的嵌入式處理器,可以考慮用在線仿真器(ICE)進(jìn)行調(diào)試。
單步是斷點(diǎn)的一種特殊形式,它相當(dāng)于在下一條指令或程序行上設(shè)置一個(gè)斷點(diǎn),程序啟動(dòng)運(yùn)行到斷點(diǎn)停下來(lái)。
觸發(fā)用于捕捉所調(diào)試的應(yīng)用程序在運(yùn)行中出現(xiàn)的某一特定目標(biāo)狀態(tài)。這一特定的目標(biāo)狀態(tài)就是通常所說(shuō)的觸發(fā)條件。觸發(fā)條件通常是處理器的特定的地址、數(shù)據(jù)、控制總線以及內(nèi)部/外部信號(hào)狀態(tài)的邏輯組合。當(dāng)一個(gè)觸發(fā)條件不足以描述要捕捉的目標(biāo)狀態(tài)時(shí),開(kāi)發(fā)人員通常會(huì)使用觸發(fā)序列器(Sequencer)將多個(gè)觸發(fā)條件級(jí)聯(lián)起來(lái)。調(diào)試工具在觸發(fā)發(fā)生之后,要么停止所調(diào)試的應(yīng)用程序的運(yùn)行,要么增加觸發(fā)記數(shù)器,要么輸出一個(gè)觸發(fā)信號(hào),以便通知開(kāi)發(fā)人員,所要捕捉的觸發(fā)條件已發(fā)生。為了便于開(kāi)發(fā)人員觀察觸發(fā)發(fā)生之后應(yīng)用程序的執(zhí)行情況,調(diào)試工具通常會(huì)提供觸發(fā)滯后的功能。觸發(fā)滯后就是調(diào)試工具在發(fā)生觸發(fā)之后仍然使應(yīng)用程序結(jié)續(xù)運(yùn)行一段特定的時(shí)間之后才將應(yīng)用程序停下來(lái)。
不同的調(diào)試工具對(duì)觸發(fā)功能的實(shí)現(xiàn)程度是不一樣的。在線仿真器(ICE)絕大多數(shù)都可以實(shí)現(xiàn)完型的觸發(fā)功能。在線調(diào)試器(ICD)對(duì)觸發(fā)功能的實(shí)現(xiàn)程度取決于所調(diào)試的嵌入式處理器上的片上調(diào)試邏輯。在線調(diào)試器(ICD)與邏輯分析儀組合,可以宴現(xiàn)較完整的觸發(fā)功能。
開(kāi)發(fā)人員通常將觸發(fā)功能與下面要講到的跟蹤功能一起使用,來(lái)捕捉導(dǎo)致應(yīng)用程序中問(wèn)題產(chǎn)生自原因。
跟蹤就是記錄所調(diào)試的應(yīng)用程序的執(zhí)行過(guò)程,以便開(kāi)發(fā)人員分析導(dǎo)致應(yīng)用程序出現(xiàn)問(wèn)題的原因。跟蹤的記錄方式有先進(jìn)先出方式和壓棧方式。先進(jìn)先出方式總是記錄應(yīng)用程序停下來(lái)之前的新運(yùn)行過(guò)程。在先進(jìn)先出方式下,如果跟蹤記錄緩沖填滿的話,先跟蹤的記錄就要丟棄,以便填充新的記錄。壓找方式記錄跟蹤開(kāi)始到跟蹤記錄緩沖被填滿這段時(shí)間內(nèi)應(yīng)用程序的運(yùn)行過(guò)程。在壓棧方式下,如果跟蹤記錄緩沖填滿的話,新的應(yīng)用程序執(zhí)行過(guò)程將不被記錄。跟蹤還可以有選擇地記錄程序的執(zhí)行過(guò)程,例如,只記錄函數(shù)入口和出口的執(zhí)行過(guò)程。當(dāng)然,要進(jìn)行有選擇跟蹤,開(kāi)發(fā)人員必須對(duì)跟蹤功能進(jìn)行設(shè)置。
不同的調(diào)試工具對(duì)跟蹤功能的實(shí)現(xiàn)方式是不一樣的。在線仿真器(ICE)由于其結(jié)構(gòu)的特殊性,它可以捕獲到嵌入式處理器的總線周期,它的跟蹤記錄的小單位就是總線周期。在線仿真器(ICE)調(diào)試軟件譯碼這些總線周期,倒推出程序的執(zhí)行過(guò)程。在線調(diào)試器(ICD)因?yàn)椴荒懿东@嵌入式處理器的總線周期,因而決大多數(shù)沒(méi)有跟蹤功能。有些嵌入式處理器的片上調(diào)試邏輯能夠?qū)⒊绦虻膱?zhí)行過(guò)程信息壓縮之后通過(guò)特定的接口送到芯片外部,供外部的調(diào)試工具使用。這樣,在線調(diào)試器(ICD)可以通過(guò)增加跟蹤模塊捕獲這些信息的方法實(shí)現(xiàn)跟蹤功能。在線調(diào)試器(ICD)調(diào)試軟件從跟蹤模塊記錄的嵌入式處理器送出來(lái)的指令流信息,還原出應(yīng)用程序的執(zhí)行過(guò)程?;贏RM內(nèi)核的嵌入式處理器芯片上的ETM接口就是一個(gè)這樣的接口。通過(guò)這種方法實(shí)現(xiàn)的跟蹤功能的完善程度完全取決于片上調(diào)試邏輯。
由于邏輯分析儀具有超強(qiáng)的邏輯跟蹤分析功能,因而它可以捕獲記錄嵌入式處理器的總線周期,也可以捕獲記錄來(lái)自象ETM這樣的接口的程序執(zhí)行信息,并對(duì)這些記錄進(jìn)行分析,譯碼或還原出應(yīng)用程序的執(zhí)行過(guò)程。邏輯分析儀通過(guò)觸發(fā)接口與在線調(diào)試器(ICD)協(xié)調(diào)工作,補(bǔ)充在線調(diào)試器(ICD)在跟蹤功能方面的不足,與在線調(diào)試器(ICD)一起為開(kāi)發(fā)人員提供斷點(diǎn)、觸發(fā)和跟蹤三種調(diào)試手段。
下面以Lauterbach公司的TRACE32-ICD和Tektronix公司的TLA700邏輯分析儀為例,介紹如何將邏輯分析儀與在線調(diào)試器組合成開(kāi)發(fā)調(diào)試平臺(tái),為開(kāi)發(fā)人員提供的斷點(diǎn)、觸發(fā)和跟蹤功能。
首先介紹一下Lauterbach公司的TRACE32-ICD。
TRACE32-ICD是在線調(diào)試器。它采用模塊化的設(shè)計(jì),可以支持具有JTAG、BDM、0CDS、NEXUS等調(diào)試接口的嵌入式處理器。它可以為嵌入式處理器的開(kāi)發(fā)人員提供斷點(diǎn)及觸發(fā)功能(利用片上調(diào)試邏輯)。TRACE32-ICD的調(diào)試器軟件運(yùn)行在Windows平臺(tái)上。TRACE32-ICD通過(guò)并口、以太網(wǎng)口、USB口等形式與PC連接。TRACE32-ICD具有觸發(fā)輸入/輸出端口,通過(guò)它TRACE32-ICD與邏輯分析儀連接。TRACE32-ICD與邏輯分析儀通過(guò)該連接相互觸發(fā),協(xié)調(diào)工作。
接下來(lái),介紹一下Tektronix公司的TLA700邏輯分析儀。
TLA700邏輯分析儀除了具有傳統(tǒng)的邏輯分析儀的邏輯采集和分析功能之外,是它采用了開(kāi)放靈活的Windows平臺(tái)架構(gòu),具有串口、并口及以太網(wǎng)等接口。這樣一來(lái),基于Windows平臺(tái)的嵌入式開(kāi)發(fā)調(diào)試軟件就可以運(yùn)行在TLA700上。嵌入式處理器的開(kāi)發(fā)人員可以用TLA700搭建嵌入式開(kāi)發(fā)調(diào)試平臺(tái)。另外,TLA700的HLL源碼支持功能可以直接分析采用IEEE695、OMFx86、COFF、ELF/Dwarf、ELF/Stabs和ASCII格式的可調(diào)試的應(yīng)用程序。這也為它集成在線調(diào)試器,例如,TRACE32-ICD,補(bǔ)充在線調(diào)試器在跟蹤功能方面的不足奠定了基礎(chǔ)。
首先,將TRACE32-ICD的調(diào)試器軟件安裝到TLA700的Windows平臺(tái)上。將TRACE32-ICD連接到TLA700的串口、并口或以太網(wǎng)口上。將TRACE32-ICD的觸發(fā)輸入/輸出端口與TLA700的觸發(fā)輸出/輸入端口連接。TRACE32-ICD的調(diào)試電纜與目標(biāo)板上的JTAG、BDM、0CDS、NEXUS等接口連接,用來(lái)控制目標(biāo)板上的嵌入式處理器。TLA700的邏輯探頭連接到嵌入式處理器的地址、數(shù)據(jù)和控制總線上,采集嵌入式處理器的總線周期,或者連接到片上調(diào)試邏輯的指令流信息接口(例如,ETM口)上,采集嵌入式處理器執(zhí)行的指令流信息。由TRACE32-ICD和TLA700組合成的嵌入式處理器高度平臺(tái)與目標(biāo)板的連接關(guān)系,如圖1所示。
在完成了TRACE32-ICD和TLA700以及目標(biāo)板之間的連接之后,開(kāi)發(fā)人員就可以使用這一組合開(kāi)發(fā)調(diào)試平臺(tái)了。
開(kāi)發(fā)人員首先啟動(dòng)TLA700,等TLA700啟動(dòng)完成之后,再來(lái)啟動(dòng)TRACE32-ICD調(diào)試器軟件。在TRACE32-ICD和TLA700都完成了啟動(dòng)之后,TRACE32-ICD的調(diào)試界面和TLA700的邏輯跟蹤界面就會(huì)分別顯示在不同的Windows窗口中。當(dāng)然,這些顯示都在TLA700自帶的彩色液晶屏上,或者在TLA700外掛的顯示器上。
開(kāi)發(fā)人員開(kāi)始真正的調(diào)試工作之前,還要分別對(duì)TRACE32-ICD和TLA700進(jìn)行設(shè)置。當(dāng)然,這些設(shè)置是在TRACE32-ICD和TLA700各自的Windows窗口中完成的。對(duì)TRACE32-ICD的設(shè)置工作主要完成對(duì)目標(biāo)板上的嵌入式處理器的設(shè)備寄存器的初試化,將準(zhǔn)備調(diào)試的應(yīng)用程序下載到目標(biāo)板上的嵌入式處理器的程序存儲(chǔ)器空間,定義觸發(fā)輸入/輸出端口的方向。對(duì)TLA700的設(shè)置工作包括定義邏輯通道,用HLL源碼支持功能加載分析TRAC32ICD所下載的可調(diào)試格式(IEEE695、OMFx86、ELF/Dwarf、ELF/Stabs和ASCⅡ)的文件,定義觸發(fā)條件。
接下來(lái),開(kāi)發(fā)人員就可以開(kāi)始調(diào)試他們的應(yīng)用程序了。
開(kāi)發(fā)人員用TRACE32-ICD設(shè)置斷點(diǎn)調(diào)試程序,用TLA700設(shè)置觸發(fā)條件,并由TLA700完成跟蹤功能。
TRACE32-ICD和TLA700如何同步工作呢?這就要借助與TRACE32-ICD和TLA700的觸發(fā)輸入/輸出端子了。
當(dāng)開(kāi)發(fā)人員想要用TLA700的強(qiáng)大的觸發(fā)功能來(lái)捕捉產(chǎn)生某一特殊目標(biāo)狀態(tài)的程序時(shí),可以將TRACE32-ICD的觸發(fā)輸入/輸出端子定義為輸入(可以是高電平或低電平觸發(fā)),然后,將TLA700所定義的觸發(fā)條件對(duì)應(yīng)到連接TRACE32-ICD的觸發(fā)輸出端子。開(kāi)發(fā)人員運(yùn)行程序的時(shí)候,如果目標(biāo)狀態(tài)出現(xiàn),TLA700就會(huì)產(chǎn)生觸發(fā)信號(hào)送給TRACE32-ICD,TRACE32-ICD在收到這個(gè)觸發(fā)信號(hào)之后,它就會(huì)將開(kāi)發(fā)人員所調(diào)試的應(yīng)用程序停下來(lái)。由于TLA700不停地跟蹤記錄應(yīng)用程序的執(zhí)行情況,這時(shí)候,將TLA700停下來(lái),就可以看到產(chǎn)生觸發(fā)前后應(yīng)用程序的執(zhí)行情況。由于TLA有很深的記錄存儲(chǔ),開(kāi)發(fā)人員可以觀察到很詳盡的程序執(zhí)行情況。
開(kāi)發(fā)人員也可以將TRACE32-ICD的觸發(fā)輸入/輸出端子定義為輸出,將該信號(hào)連接到TLA700的一個(gè)觸發(fā)輸入端子,并設(shè)置TLA700根據(jù)該信號(hào)控制跟蹤的啟動(dòng)或停止。這樣就可以實(shí)現(xiàn)跟蹤與程序運(yùn)行同步,使開(kāi)發(fā)人員能夠跟蹤到程序在調(diào)試過(guò)程中所有的運(yùn)行情況。
TRACE32-ICD和TLA700給開(kāi)發(fā)人員提供了靈活的觸發(fā)設(shè)置功能,開(kāi)發(fā)人員可以充分發(fā)揮聰明才智來(lái)設(shè)計(jì)復(fù)雜的觸發(fā)條件,來(lái)捕捉應(yīng)用程序中的問(wèn)題。
在嵌入式系統(tǒng)的開(kāi)發(fā)調(diào)試中,開(kāi)發(fā)人員通常會(huì)遇到四類問(wèn)題:邏輯問(wèn)題、軟/硬件相互影響問(wèn)題、軟件實(shí)時(shí)問(wèn)題和崩潰問(wèn)題。應(yīng)用程序邏輯設(shè)計(jì)或編碼錯(cuò)誤或設(shè)計(jì)假設(shè)不正確都屬于邏輯錯(cuò)誤。指令引起的存儲(chǔ)器訪問(wèn)出錯(cuò),應(yīng)用程序在運(yùn)行過(guò)程中出現(xiàn)在數(shù)據(jù)總線上的特定數(shù)據(jù)格式引起的串?dāng)_假信號(hào),這些都是軟/硬件相互影響問(wèn)題。應(yīng)用程序在單步、端點(diǎn)的調(diào)試中都運(yùn)行正常,而只有在目標(biāo)系統(tǒng)全速運(yùn)行的時(shí)候才會(huì)出問(wèn)題,這類問(wèn)題就屬于軟件實(shí)時(shí)問(wèn)題。目標(biāo)系統(tǒng)在運(yùn)行中發(fā)生系統(tǒng)崩潰,這類問(wèn)題就是崩潰問(wèn)題。邏輯問(wèn)題大約占開(kāi)發(fā)人員遇到的所有調(diào)試問(wèn)題的80%。解決這類問(wèn)題,開(kāi)發(fā)人員通過(guò)在應(yīng)用程序中設(shè)置斷點(diǎn),檢查寄存器、存儲(chǔ)器、變量等的值來(lái)解決。開(kāi)發(fā)人員解決邏輯問(wèn)題的時(shí)間約占解決所有調(diào)試問(wèn)題的總時(shí)間20%。而解決其它三類問(wèn)題所用的時(shí)間要占到解決所有調(diào)試問(wèn)題的總時(shí)間的80%。這三類問(wèn)題只靠設(shè)置斷,點(diǎn)的方法,往往是比較難以解決的。由于產(chǎn)生這三類問(wèn)題的原因通常都比較復(fù)雜,所以,開(kāi)發(fā)人員必須通過(guò)觸發(fā)來(lái)捕捉這些問(wèn)題,然后,再通過(guò)跟蹤來(lái)分析產(chǎn)生這些問(wèn)題的原因。
傳統(tǒng)地,嵌入式系統(tǒng)的開(kāi)發(fā)調(diào)試人員通常使用在線仿真器(ICE)來(lái)完成端點(diǎn)、觸發(fā)和跟蹤這三種調(diào)試手段。隨著集成電路技術(shù)的不斷發(fā)展,新一代的嵌入式處理器的工作頻率越來(lái)越高,封裝越來(lái)越表貼化。由于在線仿真器要通過(guò)仿真探頭取代目標(biāo)系統(tǒng)上的嵌入式處理器來(lái)和目標(biāo)系統(tǒng)連接,所以,在線仿真器對(duì)新一代的嵌入式處理器而言,連接是一大問(wèn)題。嵌入式處理器的設(shè)計(jì)生產(chǎn)廠商已經(jīng)認(rèn)識(shí)到這個(gè)問(wèn)題。他們?cè)谛乱淮那度胧教幚砥髟黾恿似险{(diào)試邏輯,而訪問(wèn)片上調(diào)試邏輯只須不到十根連接線,且時(shí)鐘頻率不高。在采用新一代的嵌入式處理器來(lái)開(kāi)發(fā)目標(biāo)系統(tǒng)的時(shí)候,越來(lái)越多的開(kāi)發(fā)人員會(huì)選擇在線調(diào)試器加邏輯分析儀形式的組合開(kāi)發(fā)調(diào)試平臺(tái)。(本文轉(zhuǎn)載自儀器儀表商務(wù)網(wǎng))