邏輯分析儀在嵌入式開發(fā)調(diào)試中的應(yīng)用
在嵌入式開發(fā)調(diào)試中,開發(fā)人員的調(diào)試手段包括斷點(diǎn)、觸發(fā)和跟蹤三種。隨著集成電路技術(shù)的發(fā)展,新一代的嵌入式處理器集成度和工作頻率越來越高,芯片封裝形式也越來越趨向表貼化。在線調(diào)試器(ICD)與邏輯分析儀的組合開發(fā)調(diào)試平臺(tái)越來越多地成為廣大的新一代嵌入式處理器的開發(fā)人員實(shí)現(xiàn)上述三種調(diào)試手段的首選。
開發(fā)人員使用斷點(diǎn)功能控制所調(diào)試的應(yīng)用程序的起和停。使應(yīng)用程序運(yùn)行到自己想要調(diào)試的程序上。通過觀察在斷點(diǎn)處的應(yīng)用程序的變量以及寄存器和存儲(chǔ)器的值檢測所調(diào)試的應(yīng)用程序運(yùn)行是否正確。斷點(diǎn)是開發(fā)人員經(jīng)常使用的調(diào)試手段。
斷點(diǎn),顧名思義就是(應(yīng)用程序)停下來的地方。斷點(diǎn)按照其實(shí)現(xiàn)方法分為軟件斷點(diǎn)和硬件斷點(diǎn)。軟件斷點(diǎn)是靠程序指令陷阱來實(shí)現(xiàn)的。硬件斷點(diǎn)是靠嵌入式處理器或調(diào)試工具硬件來實(shí)現(xiàn)的。軟件斷點(diǎn)的實(shí)現(xiàn)方法對于不同的嵌入式處理器和不同的調(diào)試工具而言,實(shí)現(xiàn)方法都是一樣的,都是通過修改程序指令的方法實(shí)現(xiàn)的。硬件斷點(diǎn)的實(shí)現(xiàn)方法對于不同的嵌入式處理器和不同的調(diào)試工具而言,實(shí)現(xiàn)方法是不一樣的。有的嵌入式處理器具有片上調(diào)試邏輯,調(diào)試工具通過JTAG、BDM、OCDS、NEXUS等接口訪問控制片上調(diào)試邏輯,通過片上調(diào)試邏輯實(shí)現(xiàn)硬件斷點(diǎn)。這種硬件斷點(diǎn)的數(shù)量是有限制的。由于不同的嵌入式處理器上的調(diào)試邏輯實(shí)現(xiàn)方法不同,因而它們提供的硬件斷點(diǎn)的數(shù)量是不一樣的。在線調(diào)試器(ICD)就是通過訪問控制片上調(diào)試邏輯實(shí)現(xiàn)硬件斷點(diǎn)的。沒有片上調(diào)試邏輯的嵌入式處理器不能使用在線調(diào)試器。在線仿真器(ICE)通過基于存儲(chǔ)器的斷點(diǎn)技術(shù)實(shí)現(xiàn)硬件斷點(diǎn)。在線仿真器實(shí)現(xiàn)的硬件斷點(diǎn)的數(shù)量是沒有限制的。對于沒有片上調(diào)試邏輯的嵌入式處理器,可以考慮用在線仿真器(ICE)進(jìn)行調(diào)試。
單步是斷點(diǎn)的一種特殊形式,它相當(dāng)于在下一條指令或程序行上設(shè)置一個(gè)斷點(diǎn),程序啟動(dòng)運(yùn)行到斷點(diǎn)停下來。
觸發(fā)用于捕捉所調(diào)試的應(yīng)用程序在運(yùn)行中出現(xiàn)的某一特定目標(biāo)狀態(tài)。這一特定的目標(biāo)狀態(tài)就是通常所說的觸發(fā)條件。觸發(fā)條件通常是處理器的特定的地址、數(shù)據(jù)、控制總線以及內(nèi)部/外部信號(hào)狀態(tài)的邏輯組合。當(dāng)一個(gè)觸發(fā)條件不足以描述要捕捉的目標(biāo)狀態(tài)時(shí),開發(fā)人員通常會(huì)使用觸發(fā)序列器(Sequencer)將多個(gè)觸發(fā)條件級聯(lián)起來。調(diào)試工具在觸發(fā)發(fā)生之后,要么停止所調(diào)試的應(yīng)用程序的運(yùn)行,要么增加觸發(fā)記數(shù)器,要么輸出一個(gè)觸發(fā)信號(hào),以便通知開發(fā)人員,所要捕捉的觸發(fā)條件已發(fā)生。為了便于開發(fā)人員觀察觸發(fā)發(fā)生之后應(yīng)用程序的執(zhí)行情況,調(diào)試工具通常會(huì)提供觸發(fā)滯后的功能。觸發(fā)滯后就是調(diào)試工具在發(fā)生觸發(fā)之后仍然使應(yīng)用程序結(jié)續(xù)運(yùn)行一段特定的時(shí)間之后才將應(yīng)用程序停下來。
不同的調(diào)試工具對觸發(fā)功能的實(shí)現(xiàn)程度是不一樣的。在線仿真器(ICE)絕大多數(shù)都可以實(shí)現(xiàn)完型的觸發(fā)功能。在線調(diào)試器(ICD)對觸發(fā)功能的實(shí)現(xiàn)程度取決于所調(diào)試的嵌入式處理器上的片上調(diào)試邏輯。在線調(diào)試器(ICD)與邏輯分析儀組合,可以宴現(xiàn)較完整的觸發(fā)功能。