《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 32位ARM嵌入式處理器的調(diào)試技術(shù)

32位ARM嵌入式處理器的調(diào)試技術(shù)

2008-09-25
作者:李 劍 趙鵬程 湯建彬

  摘? 要: 針對32位ARM處理器開發(fā)過程中調(diào)試技術(shù)的研究,分析了目前比較流行的基于JTAG的實時調(diào)試技術(shù),介紹了正在發(fā)展的嵌入式調(diào)試標準,并展望其趨勢。

  關(guān)鍵詞: 嵌入式? 調(diào)試? 處理器? JTAG? Nexus? ARM

?

  隨著對高處理能力、實時多任務(wù)、網(wǎng)絡(luò)通信、超低功耗需求的增長,傳統(tǒng)8位機已遠遠滿足不了新產(chǎn)品的要求,高端嵌入式處理器" title="嵌入式處理器">嵌入式處理器已經(jīng)進入了國內(nèi)開發(fā)人員的視野,并在國內(nèi)得到了普遍的重視和應(yīng)用。ARM內(nèi)核系列處理器是由英國ARM公司開發(fā)并授權(quán)給其他芯片生產(chǎn)商進行生產(chǎn)的系統(tǒng)級芯片。目前在嵌入式32位處理器市場中已經(jīng)達到70%的份額。筆者在對三星公司的ARM7芯片進行調(diào)試的過程中,對這些高端嵌入式系統(tǒng)的調(diào)試技術(shù)進行了總結(jié)。

  傳統(tǒng)的調(diào)試工具及方法存在過分依賴芯片引腳、不能在處理器高速運行下正常工作、占用系統(tǒng)資源且不能實時跟蹤" title="實時跟蹤">實時跟蹤和硬件斷點、價格過于昂貴等弊端。目前嵌入式高端處理器的使用漸趨普及。這些處理器常常運行在100MHz上,并且一些內(nèi)部控制以及內(nèi)部存儲器的總線信號并不體現(xiàn)在外部引腳上。這種片上系統(tǒng)(System on Chip)、深度嵌入、軟件復(fù)雜的發(fā)展趨勢給傳統(tǒng)的調(diào)試工具帶來了極大的挑戰(zhàn),也給嵌入式處理器開發(fā)工程師的工作帶來了不便,這就需要更先進的調(diào)試技術(shù)和工具進行配套。本文將詳細介紹在ARM處理器中采用的幾種片上調(diào)試" title="片上調(diào)試">片上調(diào)試技術(shù)(on-chip debugger)。這些片上調(diào)試技術(shù)通過在芯片的硬件邏輯中加入調(diào)試模塊,從而能夠降低成本,實現(xiàn)傳統(tǒng)的在線仿真器和邏輯分析儀" title="分析儀">分析儀器的功能,并在一定的條件下實現(xiàn)實時跟蹤和分析,進行軟件代碼的優(yōu)化。

1 邊界掃描" title="邊界掃描">邊界掃描技術(shù)(JTAG)

  邊界掃描技術(shù)是為了滿足當今深度嵌入式系統(tǒng)調(diào)試的需要而被IEEE1149.1標準所采納,全稱是標準測試訪問接口與邊界掃描結(jié)構(gòu)(Standard Test Access Port and Boundary Scan Architecture)。JTAG遵循1149.1標準,是面向用戶的測試接口,是ARM處理器調(diào)試的基礎(chǔ)。本文提到的ARM的E-TRACE調(diào)試模式實際上是JTAG的增強版本,其它一些32位嵌入式處理器的調(diào)試方式也基本上遵循這個標準。這個用戶接口一般由4個引腳組成:測試數(shù)據(jù)輸入(TDI) 、測試數(shù)據(jù)輸出(TDO)、測試時鐘(TCK)、測試模式選擇引腳(TMS),有的還加了一個異步測試復(fù)位引腳(TRST)。其體系結(jié)構(gòu)如圖1。

?

?

  所謂邊界掃描就是將芯片內(nèi)部幾乎所有的引腳通過邊界掃描單元(BSC)串接起來,從JTAG的TDI引入,TDO引出。芯片內(nèi)的邊界掃描鏈由許多的BSC組成,通過這些掃描單元,可以實現(xiàn)許多在線仿真器的功能。根據(jù)1149.1的規(guī)定,芯片內(nèi)的片上調(diào)試邏輯通常包括一個測試訪問接口控制器(TAP)。它是一個16狀態(tài)的有限狀態(tài)機以及測試指令寄存器、數(shù)據(jù)寄存器、旁路寄存器和芯片標識寄存器等。在正常模式下,這些測試單元(BSC)是不可見的。一旦進入調(diào)試狀態(tài),調(diào)試指令和數(shù)據(jù)從TDI進入,沿著測試鏈通過測試單元送到芯片的各個引腳和測試寄存器中,通過不同的測試指令來完成不同的測試功能。包括用于測試外部電氣連接和外圍芯片功能的外部模式以及用于芯片內(nèi)部功能測試(對芯片生產(chǎn)商)的內(nèi)部模式,還可以訪問和修改CPU寄存器和存儲器,設(shè)置軟件斷點,單步執(zhí)行,下載程序等。其優(yōu)點如下:

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

  ·各個引腳信號的采樣,并可強制引腳輸出用以測試外圍芯片;

  ·可以軟件下載、執(zhí)行、調(diào)試和控制,為復(fù)雜的實時跟蹤調(diào)試提供路徑;

????·可以進行多內(nèi)核和多處理器的板級和芯片級的調(diào)試,通過串接(如圖2),為芯片制造商提供芯片生產(chǎn)、測試的途徑。

?

?

  雖然JTAG調(diào)試不占用系統(tǒng)資源,能夠調(diào)試沒有外部總線的芯片,代價也非常小;但是由于JTAG是通過串口依次傳遞數(shù)據(jù),速度比較慢,只能進行軟件斷點級別的調(diào)試,自身還不能完成實時跟蹤和多種事件觸發(fā)等復(fù)雜調(diào)試功能。因此便有了幾種功能更為完善的增強版本。

2 ARM芯片的實時調(diào)試方案(E-TRACE)

  ARM公司的內(nèi)核芯片采用E-TRACE片上調(diào)試模式。它實際上是JTAG的升級版本,通過增強的輔助片上調(diào)試硬件來完成實時調(diào)試,解決了許多傳統(tǒng)調(diào)試器難以解決的問題。

  它的實時調(diào)試方案通過三種途徑解決:

  ·EmbeddedICE硬邏輯;

  ·實時監(jiān)控;

  ·實時跟蹤。

  EmbeddedICE邏輯單元存在于ARM7TDMI、ARM9TDMI、ARM9E和ARM10內(nèi)核中。它在JTAG口的基礎(chǔ)上,增加了硬件斷點寄存器、比較器,通過斷點寄存器的值可以進行硬件斷點的設(shè)置,不僅對地址還可以對數(shù)據(jù)、控制總線的信號進行復(fù)雜的觸發(fā)控制設(shè)定,而不是單單在指令級別進行中斷(如軟中斷),從而滿足對特定事件的中斷響應(yīng),極大地增加了靈活性,同時可以在ROM中設(shè)置斷點和觀察點,極大地方便調(diào)試。其示意如圖3。

?

?

  實時監(jiān)控則是進一步在ARM9E和ARM10中的改進。它改變EmbeddedICE在觸發(fā)中斷后進入調(diào)試模式狀態(tài)而停止內(nèi)核運行的弊端,進入一段非常小的中斷監(jiān)控程序中,得到所需要的信息后迅速把控制權(quán)轉(zhuǎn)讓給先前的任務(wù)(這是與遠程監(jiān)控器最大的區(qū)別)。在監(jiān)控程序內(nèi)處理器完全可以再接收外界的中斷和其他觸發(fā)事件,而不是停止運行。這種方式綜合了JTAG和遠程調(diào)試的優(yōu)點,它可以增加以下兩個好處:

  ·在不禁止中斷的前提下調(diào)試前景任務(wù)(即中斷時正在運行的任務(wù));

  ·不用停止處理器的運行就可以讀寫和修改存儲器(對于機電設(shè)備非常重要)。

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

  · 嵌入跟蹤微核;

  · 跟蹤分析儀;

  · 跟蹤調(diào)試軟件。

  通過這三種工具可以實現(xiàn)完全的實時跟蹤。跟蹤微核存在于芯片中,它可以不停止CPU的運行而實時監(jiān)視芯片總線的信息,并把設(shè)定觸發(fā)范圍內(nèi)的所有信息在CPU運行的同時通過壓縮的方式送到外部的跟蹤分析儀器里。分析跟蹤儀器從芯片外部通過跟蹤口(另外一個不同于JTAG的接口)收取信息。因為是壓縮的數(shù)據(jù),所以分析儀不需要采用與跟蹤微核實時跟蹤相同的速度。這大大降低了分析儀的成本,并增加了存儲的容量。而PC端的跟蹤軟件則把來自分析儀的數(shù)據(jù)重新組織起來,從而重現(xiàn)處理器的歷史狀態(tài)和數(shù)據(jù)、程序流程。同時還可以把執(zhí)行代碼與源代碼鏈接起來,使調(diào)試者快速理解跟蹤數(shù)據(jù)。ARM的這種方式通過芯片內(nèi)部的實時跟蹤硬件加上低成本的分析儀器,解決了傳統(tǒng)在線仿真器(ICE)和邏輯分析儀的諸多弊端。其示意如圖4。

?

3 Nexus標準

  自從JTAG IEEE1149.1標準出來后,越來越多的高端嵌入芯片生產(chǎn)商開始采用這個標準。但是1149.1標準只能提供一種靜態(tài)的調(diào)試方式,如處理器的啟動和停止、軟件斷點、單步執(zhí)行、修改寄存器,而不能提供處理器實時運行時的信息。于是各個廠家在自己的芯片上,把原有JTAG的基本功能進行了加強和擴展,如前面提到的E-TRACE、背景調(diào)試模式BDM(Background Debugging Mode)和片上仿真OnCE(On-Chip Emulation)等,在處理器不停止運行的前提下,進行實時的調(diào)試。

由于這些增強的JTAG版本之間各有差異,而且即使同一廠家的不同產(chǎn)品之間也存在著不同。所以一些芯片廠商和調(diào)試工具開發(fā)公司于1998年成立了Nexus 5001論壇,以期提出一個在JTAG之上的嵌入式處理器調(diào)試的統(tǒng)一標準。

  Nexus將調(diào)試開發(fā)分成四級,從第一級開始,每級的復(fù)雜度都在增加,并且上級功能覆蓋下一級。第一級使用JTAG的簡單靜態(tài)調(diào)試;第二級支持編程跟蹤和實時多任務(wù)的跟蹤,并允許用戶用I/O引腳作為多路復(fù)用輔助調(diào)試口;第三級包括處理器運行時的數(shù)據(jù)寫入跟蹤和存儲器的讀寫跟蹤;第四級增加了存儲替換并觸發(fā)復(fù)雜的硬件斷點。從第二級開始,Nexus規(guī)定了可變的輔助口。輔助口使用3~16個數(shù)據(jù)引腳,用來幫助其他仿真器和分析儀之類的輔助調(diào)試工具。其示意如圖5。

?

  通過Nexus標準可以解決以下問題:

  ·調(diào)試內(nèi)部總線沒有引出的處理器,如含有片內(nèi)存儲器的芯片;

  ·傳統(tǒng)在線仿真器無法實現(xiàn)的高速調(diào)試;

  ·深度流水線和有片上Cache的芯片,能夠探測具體哪條指令被取指和最終執(zhí)行;

  ·可以穩(wěn)定地進行多內(nèi)核處理器的調(diào)試。

4 調(diào)試技術(shù)的展望

  通過上面的分析可以看出,目前的調(diào)試技術(shù)可以在頻率100MHz、內(nèi)部總線外部不可見、需要進行實時跟蹤的情況下充分發(fā)揮優(yōu)勢,彌補傳統(tǒng)的遠程調(diào)試器和在線仿真器的不足,并且成本非常低廉。

  同時,調(diào)試技術(shù)還在不停地發(fā)展,目前IEEE1149.4標準也已經(jīng)產(chǎn)生。它主要是將邊界掃描結(jié)構(gòu)用于處理模數(shù)混合芯片的調(diào)試。Nexus也已經(jīng)完成了標準的制定并有廠商開始在芯片上提供Nexus的調(diào)試硬件模塊。但是這些標準到底會不會被各個芯片廠商所采用,還有待時機的成熟。特別是兩大主流內(nèi)核公司ARM和MIPS分別采用自己獨特的內(nèi)核調(diào)試技術(shù)。ARM采用基于JTAG版本的E-Trace,而MIPS則是用EJTAG——加強的JTAG技術(shù)。它們對Nexus的態(tài)度也是旁觀等待。

?

參考文獻

1 ARM Limited. Real time debug for System-on-Chip Devices. 1998

2 David Marsh ,EDN Europe. Simple boundary-scan?techniques tackle sophisticated systems. July 2001: 34

3 Jack Ganssle. In-Circuit Emulators.Embedded Systems?Programming, November 2001

4 Timothy C.Kelly. Techniques and Technologies in Debugging and Optimizing Embedded Applications.Embedded

? Systems Conference. April 2001

?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产午夜精品久久久久免费视| 无码一区二区三区中文字幕| 出包王女第四季op| 人与禽交zozo| 夫妇交换俱乐部微信群| 久久九九精品国产av片国产| 欧美日韩视频在线播放| 午夜视频在线免费| 黄色aaa大片| 国产高清自拍视频| 上原瑞穗最全番号| 日韩不卡中文字幕| 亚洲校园春色小说| 精品一久久香蕉国产线看观看下| 国产午夜鲁丝片av无码免费| 91九色蝌蚪porny| 干b视频在线观看| 久久精品欧美日韩精品| 正能量网站不用下载免费观看视频软件 | 亚洲国产欧美在线观看| 久久精品国产一区二区三区肥胖| 中国熟女仑乱hd| а天堂中文在线官网在线| 精品三级av无码一区| 国产在线精品观看一区| 69无人区卡一卡二卡| 少妇无码太爽了在线播放| 久久最近最新中文字幕大全 | 久久久久人妻精品一区三寸| 色欲香天天天综合网站| 正在播放暮町ゆう子在线观看| 国产乱子伦露脸在线| 丝袜诱惑中文字幕| 天天天欲色欲色WWW免费| 中文字幕免费高清视频| 日韩大片在线永久免费观看网站| 亚洲女人18毛片水真多| 特级毛片a级毛片免费播放| 印度精品性hd高清| 英语老师解开裙子坐我腿中间| 国产成人综合久久精品亚洲|