ARM仿真調(diào)試技術
時間:2017-01-05作者:華清遠見
在嵌入式系統(tǒng)的設計中,仿真應用的范圍主要集中在對程序的仿真上。在ARM的開發(fā)過程中,一種簡單和原始的開發(fā)流程是:編寫程序,然后燒寫到芯片上驗證功能,這種方法對于簡單的小系統(tǒng)是可以對付的,但在大系統(tǒng)中使用這種方法則是完全不可能的。所以很多時候我們需要在不燒寫代碼的情況下調(diào)試程序,這就是仿真調(diào)試技術。 現(xiàn)代調(diào)試技術可以分為軟件仿真調(diào)試和硬件仿真調(diào)試兩種: 一.軟件仿真(指令集仿真): 概念: 用數(shù)據(jù)結(jié)構(gòu)描述目標機CPU中各個寄存器和其他資源(內(nèi)存等),通過軟件模擬,可以逐條指令解釋執(zhí)行目標機可執(zhí)行映象中的程序。 應用場合:
● 當嵌入式軟件開發(fā)在目標硬件平臺不存在的情況下進行,就要使用這種軟件來模擬目標CPU,以驗證代碼邏輯。 幾個不錯的硬件模擬平臺:
● Skyeye:清華大學計算機系博士后陳渝發(fā)起,開源項目,主要模擬ARM內(nèi)核CPU。 軟件仿真的缺點: 無法完全仿真與硬件相關的部分,終還要通過硬件仿真來完成終的設計。 二.硬件仿真調(diào)試: 以前的芯片沒有JTAG調(diào)試邏輯,要向仿真它就必須要有專門的仿真器,這種仿真器成本較高,而且每種芯片都不一樣,現(xiàn)在這種仿真器已經(jīng)不存在了。 現(xiàn)在的芯片一般都內(nèi)置了JTAG調(diào)試邏輯,并不需要CPU仿真器,需要的只是一個JTAG協(xié)議轉(zhuǎn)接器(現(xiàn)在還稱其為仿真器,其實叫做調(diào)試器比較合適)。所以下面主要介紹JTAG及其仿真技術。 JTAG簡介 JTAG是Joint Test Action Group的簡稱,該組織致力于統(tǒng)一芯片的測試標準,它們初向IEEE提出了IEEE1149.1標準,后來經(jīng)過IEEE批準并且標準化,所以IEEE1149.1標準又叫JTAG標準,它是一套芯片測試接口和標準,現(xiàn)在幾乎所有的CPU核里面都會實現(xiàn)JTAG邏輯單元。JTAG原本是用來測試芯片設計是否正確,其基本原理就是在芯片的各個管腳上放置鎖存器,然后串聯(lián)起來構(gòu)成移位寄存器,可以監(jiān)控芯片管腳的輸入和輸出。后來大家發(fā)現(xiàn)用JTAG在線調(diào)試芯片非常方便(其實就是利用JTAG控制CPU內(nèi)核),還不需要設計專門的仿真芯片,因此就出現(xiàn)了用JTAG調(diào)試風行的局面。 邊界掃描技術(Boundary-Scan): JTAG調(diào)試主要就是基于這種邊界掃描技術。 邊界掃描技術的基本思想是在靠近芯片的輸入輸出管腳上增加一個移位寄存器單元。因為這些移位寄存器單元都分布在芯片的邊界上,所以被稱為邊界掃描寄存器 (Boundary-Scan Register Cell) 。當芯片處于調(diào)試狀態(tài)的時候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實現(xiàn)對芯片輸入輸出信號的觀察和控制。 JTAG的主要作用:
● 檢測芯片是否良好
● 鏡像文件的燒寫功能 ARM7TDMI調(diào)試架構(gòu): 一個調(diào)試系統(tǒng)通常包含三個部分:
● 調(diào)試主機
● 協(xié)議轉(zhuǎn)換器 ARM7TDMI典型的調(diào)試架構(gòu)如下圖所示:
經(jīng)過協(xié)議轉(zhuǎn)換器進行命令解釋,主機上運行的調(diào)試軟件就可以通過JTAG接口直接和目標芯片對話了。 為了支持底層的調(diào)試,ARM7TDMI提供了硬件上的調(diào)試擴展,包括:
● 停止程序的運行 常見ARM調(diào)試工具:
● BDI1000/2000/3000
● U-Link
● J-Link
● Multi-ICE
● Wiggler電纜
相關資訊
發(fā)表評論
|