32位ARM嵌入式處理器的除錯技術

2021-04-02 20:36:10 字數 2661 閱讀 4167

隨著對高處理能力、實時多工、網路通訊、超低功耗需求的增長,傳統8位機已遠遠滿足不了新產品的要求,高階嵌入式處理器已經進入了國內開發人員的視野,並在國內得到了普遍的重視和應用。arm核心系列處理器是由英國arm公司開發授權給其他晶元生產商進行生產的系統級晶元。目前在嵌入式32位處理器市場中已經達到70%的份額。筆者在對三星公司的arm7晶元技術除錯的過程中,對這些高階嵌入式系統的除錯技術進行了總結。

邊界掃瞄技術是為了滿足當今深度嵌入式系統除錯的需要而被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。

·可以通過邊界掃瞄操作測試整個板的電氣連線,特點為表面貼元件提供方便;

·各個引腳訊號的取樣,並可強制引腳輸出用以測試外圍晶元;

·可以進行多核心和多處理器的板級和晶元級的除錯,通過串接(如圖2),為晶元製造商提供晶元生產、測試的途徑。

雖然jtag除錯不占用系統資源,能夠除錯沒有外部匯流排的晶元,代價也非常小;但是由於jtag是通過串列埠依次傳遞資料,速度比較慢,只能進行軟體斷點級別的除錯,自身還不能完成實時跟蹤和多種事件觸發等複雜除錯功能。因此便有了幾種功能更為完善的增強版本。

2 arm晶元的實時除錯方案(e-trace)

arm公司的核心晶元採用e-trace片上除錯模式。它實際上是jtag的公升級版本,通過增強的輔助片上除錯硬體來完成實時除錯,解決了許多傳統偵錯程式難以解決的問題。

它的實時除錯方案通過三種途徑解決:

·embeddedice硬邏輯;

·實時監控;

·實時跟蹤。

embeddedice邏輯單元存在於arm7tdmi、arm9tdmi、arm9e和arm10核心中。它枯jtag口的基礎上,增加了硬體斷點暫存器、比較器,通過斷點暫存器的值可以進行硬體斷點的設定,不僅對位址還可以對資料、控制匯流排的訊號進行複雜的觸發控制設定,而不是單單在指令級別進行中斷(如軟中斷),從而滿足對特定事件的中斷響應,極大的增加了靈活性,同時可以在rom中設定斷點和觀察點,極大地方便除錯。其示意如圖3。

實時監控則是進一步在arm9e和arm10中的改進。它改變embeddedice在觸發中斷後時入除錯模式狀態而停止核心執行的弊端,進入一段非常小的中斷監控程式中,得到所需要的資訊後迅速把控制權轉讓給先前的任務(這是與遠端監控器最大的區別)。在監控程式內處理器完全可以再接收外界的中斷和其他觸事件,而不是停止執行。這種方式綜合了jtag和遠端除錯的優點,它可以增加以下兩個好處:

·在不禁止中斷的前提下除錯前景任務(即中斷時正在執行的任務);

·不用停止處理器的執行就可以讀寫和修改儲存器(對於機電裝置非常重要)。

更為強大的是arm的實時跟蹤解決方案,它由三部分組成:

·嵌入跟蹤微核;

·跟蹤分析儀;

·跟蹤除錯軟體。

3 nexus標準

自從jtag ieee1149.1標準出來後,越來越多的高階嵌入晶元生產商開始採用這個標準。但是1149.1標準只能提供一種靜態的除錯方法,如處理器的啟動和停止、軟體斷點、單步執行、修改暫存器,而不能提供處理器實時執行時的資訊。於是各個廠家在自己的晶元上,把原有的jtag的基本功能進行了加強和擴充套件,如前面提到的e-trace、背景除錯模式bdm(background debugging mode)和片上**once(on-chip emulation)等,在處理器不停止執行的前提下,進行實時的除錯。

由於這些增強的jtag版本之間各有差異,而且即使同一廠家的不同產品之間也在存著不同。所以一些晶元廠商和除錯工具開發公司於2023年成立了nexus 5001論壇,以期提出乙個在jtag之上的嵌入式處理器排程的統一標準。

nexus將除錯開發分成四級,從第一級開始,每級的複雜度都在增加,並且上級功能覆蓋下一級。第一級使用jtag的簡單靜態除錯;第二級支援程式設計跟蹤和實時多工的跟蹤,並歡使用者用i/o引腳作為多路復用輔助除錯口;第**包括處理器執行時的資料寫入跟蹤和儲存器的讀寫跟蹤;第四級增加了儲存替換並觸發複雜的硬體斷點。從第二級開始,nexus規定了可變的輔助口。輔助口使用3~16個資料引腳,用來幫助其他**器和分析儀之類的輔助除錯工具。其示意如圖5。

通過nexus標準可以解以下問題:

·除錯內部匯流排沒有引出的處理器,如含有片內記憶體器的晶元;

·深度流水線和有片上cache的晶元,能夠探測具體哪條指令被取和最終執行;

·可以穩定地進行多核心處理器的除錯。

4 除錯技術的展望

同時,除錯技術還在不停地發展,目前ieee1149.4標準也已經產生。它主要是將邊界掃瞄結構用於處理模數混合晶元的除錯。nexus也已經完成了標準的制定並有廠商開始在晶元上提供nexus的除錯硬體模組。但是這些標準到底會不會被各個晶元廠商所採用,還有等時機的成熟。特別是兩大主流核心公司arm和mips分別採用自已獨特核心除錯技術。arm採用基於jtag版本的e-trace,而mips則是用ejtag——加強的jtag技術。它們對nexus的態度也是旁觀等待。

1 邊界掃瞄技術(jtag)

嵌入式ARM處理器

嵌人式多核處理器的結構包括同構 symmetric 和異構 asymmetric 兩種。同構是指內部核的結構是相同的,這種結構目前廣泛應用在pc多核處理器 而異構是指內部核的結構是不同的,這種結構常常在嵌入式領域使用,常見的是通用嵌入式處理器 dsp核。在目前嵌入式領域中,使用最為廣泛的為arm 處...

嵌入式ARM微處理器選型指南

要選好一款處理器,要考慮的因素很多,不單單是純粹的硬體介面,還需要考慮相關的作業系統 配套的開發工具 器,以及工程師微處理器的經驗和軟體支援情況等。微處理器選型是否得當,將決定專案成敗。當然,並不是說選好微處理器,就意味著成功,因為專案的成敗取決於許多因素 但可以肯定的一點是,微處理器選型不當,將會...

嵌入式開發ARM處理器的技術特點

arm是微處理器行業的一家知名企業,設計了大量高效能 廉價 耗能低的risc處理器 相關技術及軟體。技術具有效能高 成本低和能耗省的特點。基於arm嵌入式主機板適用於多種領域,比如嵌入控制 消費 教育類多 dsp和移動式應用等。arm公司是專門從事基於risc技術晶元設計開發的公司,作為智財權 商,...