- 相關推薦
32位ARM嵌入式處理器的調試技術
摘要:針對32位ARM處理器開發過程中調試技術的研究,分析了目前比較流行的基于JTAG的實時調試技術,介紹了正在發展的嵌入式調試標準,并展望期趨勢。隨著對高處理能力、實時多任務、網絡通信、超低功耗需求的增長,傳統8位機已遠遠滿足不了新產品的要求,高端嵌入式處理器已經進入了國內開發人員的視野,并在國內得到了普遍的重視和應用。ARM內核系列處理器是由英國ARM公司開發授權給其他芯片生產商進行生產的系統級芯片。目前在嵌入式32位處理器市場中已經達到70%的份額。筆者在對三星公司的ARM7芯片技術調試的過程中,對這些高端嵌入式系統的調試技術進行了總結。
傳統的調試工具及方法存在過分依賴芯片引腳、不能在處理器高速運行下正常工作、占用系統資源且不能實時跟蹤和硬件斷點、價格過于昂貴等弊端。目前嵌入式高端處理器的使用漸趨普及。這些處理器常常運行在100MHz,并且一些內部控制以及內部存儲器的總線信號并不體現在外部引腳上。這種片上系統(System on Chip)、深度嵌入、軟件復雜的發展趨勢給傳統的調試工具帶來了極大的挑戰,也給嵌入式處理器開發工程師的工作帶來了不便,這就需要更先進的調試技術和工具進行配套。本文將詳細介紹在ARM處理器中采用的幾種片上調試技術(on-chip debugger)。這些片上調試技術通過在芯片的硬件邏輯中加入調試模塊,從而能夠降低成本,實現傳統的在線仿真器和邏輯分析儀器的功能,并在一定的條件下實現實時跟蹤和分析,進行軟件代碼的優化。
1 邊界掃描技術(JTAG)
邊界掃描技術是為了滿足當今深度嵌入式系統調試的需要而被IEEE1149.1標準所采納,全稱是標準測試訪問接口與邊界掃描結構(Standard Test Access Portand Boundary Scan Architecture)。JTAG遵循1149.1標準,是面向用戶的測試接口,是ARM處理器調試的基礎。本文提到的ARM的E-TRACE調試模式實際上是JTAG的增強版本,其它一些32位嵌入式處理器的調試方式也基本上遵循這個標準。這個用戶接口一般由4個引腳組成:測試數據輸入(TDI)、測試數據輸出(TDO)、測試時鐘(TCK)、測試模式選擇引腳(TMS),有的還加了一個異步測試復位引腳(TRST)。其體系結構如圖1。
所謂邊界掃描就是將芯片內部內科所有的引腳通過邊界掃描單元(BSC)串接起來,從JTAG的TDI引入,TDO引出。芯片內的邊界掃描鏈由許多的BSC組成,通過這些掃描單元,可以實現許多在線仿真器的功能。根據1149.1的規定,芯片內的片上調試邏輯通常包括一個測試訪問接口控制器(TAP)。它是一個16狀態的有限狀態機以及測試指令寄存器、數據寄存器、旁路寄存器和芯片標識寄存器等。在正常模式下,這些測試單元(BSC)是不可見的。一旦進入調試狀態,調試指令和數據從TDI進入,沿著測試鏈通過測試單元送到芯片的各個引腳和測試寄存器中,通過不同的測試指令來完成不同的測試功能。包括用于測試外部電氣連接和外圍芯片功能的外部模式以及用于芯片內部功能測試(對芯片生產商)的內部模式,還可以訪問和修改CPU寄存器和存儲器,設置軟件斷點,單步執行,下載程序等。其優點如下:
·可以通過邊界掃描操作測試整個板的電氣連接,特點為表面貼元件提供方便;
·各個引腳信號的采樣,并可強制引腳輸出用以測試外圍芯片;
·可以軟件下載、執行、調試和控制,為復雜的實時跟蹤調試提供路徑;
·可以進行多內核和多處理器的板級和芯片級的調試,通過串接(如圖2),為芯片制造商提供芯片生產、測試的途徑。
雖然JTAG調試不占用系統資源,能夠調試沒有外部總線的芯片,代價也非常小;但是由于JTAG是通過串口依次傳遞數據,速度比較慢,只能進行軟件斷點級別的調試,自身還不能完成實時跟蹤和多種事件觸發等復雜調試功能。因此便有了幾種功能更為完善的增強版本。
2 ARM芯片的實時調試方案(E-TRACE)
ARM公司的內核芯片采用E-TRACE片上調試模式。它實際上是JTAG的升級版本,通過增強的輔助片上調試硬件來完成實時調試,解決了許多傳統調試器難以解決的問題。
圖2 對多內核和多處理器的調試
它的實時調試方案通過三種途徑解決:
·EmbeddedICE硬邏輯;
·實時監控;
·實時跟蹤。
EmbeddedICE邏輯單元存在于ARM7TDMI、ARM9TDMI、ARM9E和ARM10內核中。它枯JTAG口的基礎上,增加了硬件斷點寄存器、比較器,通過斷點寄存器的值可以進行硬件斷點的設置,不僅對地址還可以對數據、控制總線的信號進行復雜的觸發控制設定,而不是單單在指令級別進行中斷(如軟中斷),從而滿足對特定事件的中斷響應,極大的增加了靈活性,同時可以在ROM中設置斷點和觀察點,極大地方便調試。其示意如圖3。
實時監控則是進一步在ARM9E和ARM10中的改進。它改變EmbeddedICE在觸發中斷后時入調試模式狀態而停止內核運行的弊端,進入一段非常小的中斷監控程序中,得到所需要的信息后迅速把控制權轉讓給先前的任務(這是與遠程監控器最大的區別)。在監控程序內處理器完全可以再接收外界的中斷和其他觸事件,而不是停止運行。這種方式綜合了JTAG和遠程調試的優點,它可以增加以下兩個好處:
·在不禁止中斷的前提下調試前景任務(即中斷時正在運行的任務);
·不用停止處理器的運行就可以讀寫和修改存儲器(對于機電設備非常重要)。
更為強大的是ARM的實時跟蹤解決方案,它由三部分組成:
·嵌入跟蹤微核;
·跟蹤分析儀;
·跟蹤調試軟件。
【32位ARM嵌入式處理器的調試技術】相關文章:
ARM處理器的Boot與Remap03-07
ARM嵌入式在通信領域的應用分析03-03
用GNU工具開發基于ARM的嵌入式系統03-18
基于ARM7的嵌入式控制系統設計11-23
ARM7在嵌入式應用中啟動程序的實現03-19