ARM仿真調試技術
時間:2017-01-05作者:華清(qing)遠見
在(zai)嵌入(ru)式系(xi)(xi)統的(de)(de)(de)設計(ji)中,仿(fang)真應用的(de)(de)(de)范圍主要集(ji)中在(zai)對(dui)程(cheng)(cheng)序的(de)(de)(de)仿(fang)真上。在(zai)ARM的(de)(de)(de)開發(fa)過程(cheng)(cheng)中,一種簡(jian)(jian)單(dan)和原(yuan)始的(de)(de)(de)開發(fa)流程(cheng)(cheng)是:編寫程(cheng)(cheng)序,然后燒(shao)寫到芯片上驗證功能(neng),這種方法(fa)對(dui)于(yu)簡(jian)(jian)單(dan)的(de)(de)(de)小(xiao)系(xi)(xi)統是可以對(dui)付的(de)(de)(de),但在(zai)大系(xi)(xi)統中使用這種方法(fa)則是完全不(bu)可能(neng)的(de)(de)(de)。所以很多時候我們需要在(zai)不(bu)燒(shao)寫代碼(ma)的(de)(de)(de)情況(kuang)下調試程(cheng)(cheng)序,這就是仿(fang)真調試技(ji)術。 現代調(diao)試(shi)技術(shu)可以分為(wei)軟件仿真調(diao)試(shi)和(he)硬件仿真調(diao)試(shi)兩種(zhong): 一.軟件仿真(指令集仿真): 概念: 用數(shu)據結構描述目標機CPU中(zhong)各個寄(ji)存(cun)器和其他資源(yuan)(內(nei)存(cun)等),通過軟件模擬,可(ke)以(yi)逐(zhu)條(tiao)指令解釋執(zhi)行目標機可(ke)執(zhi)行映(ying)象中(zhong)的(de)程序(xu)。 應用場合:
● 當嵌入式軟件開發在目標硬件平臺不存在的情況下進行,就要使用這種軟件來模擬目標CPU,以驗證代碼邏輯。 幾個(ge)不錯的(de)硬件模擬平臺:
● Skyeye:清華大學計算機系博士后陳渝發起,開源項目,主要模擬ARM內核CPU。 軟件仿(fang)真(zhen)的(de)缺點: 無法(fa)完全仿真與(yu)硬(ying)件相關的部(bu)分,終還要(yao)通過硬(ying)件仿真來(lai)完成終的設計。 二.硬件仿真調試: 以(yi)前的芯片沒(mei)有JTAG調(diao)試(shi)邏輯,要(yao)向(xiang)仿(fang)真它就必須要(yao)有專門的仿(fang)真器(qi),這種(zhong)仿(fang)真器(qi)成本較高(gao),而且每種(zhong)芯片都不(bu)一樣,現(xian)在(zai)這種(zhong)仿(fang)真器(qi)已(yi)經不(bu)存(cun)在(zai)了(le)。 現在(zai)的芯片一般都內置了JTAG調試邏輯,并不(bu)需要CPU仿真器(qi),需要的只(zhi)是一個JTAG協議轉接器(qi)(現在(zai)還稱其(qi)為仿真器(qi),其(qi)實叫做調試器(qi)比較合適)。所以下(xia)面主要介紹JTAG及其(qi)仿真技術。 JTAG簡介 JTAG是Joint Test Action Group的(de)簡稱,該組(zu)織致力于統一芯(xin)片(pian)的(de)測試(shi)(shi)標(biao)(biao)準,它們初向IEEE提出了IEEE1149.1標(biao)(biao)準,后(hou)來(lai)(lai)經過IEEE批準并且標(biao)(biao)準化,所以IEEE1149.1標(biao)(biao)準又叫JTAG標(biao)(biao)準,它是一套(tao)芯(xin)片(pian)測試(shi)(shi)接(jie)口和標(biao)(biao)準,現(xian)在(zai)幾乎(hu)所有的(de)CPU核里面都(dou)會實現(xian)JTAG邏輯單元。JTAG原(yuan)本是用(yong)(yong)來(lai)(lai)測試(shi)(shi)芯(xin)片(pian)設(she)計是否(fou)正確,其基本原(yuan)理就是在(zai)芯(xin)片(pian)的(de)各個管(guan)(guan)腳(jiao)上放置鎖存(cun)器(qi),然后(hou)串聯起來(lai)(lai)構成移位(wei)寄(ji)存(cun)器(qi),可(ke)以監(jian)控芯(xin)片(pian)管(guan)(guan)腳(jiao)的(de)輸入和輸出。后(hou)來(lai)(lai)大家發現(xian)用(yong)(yong)JTAG在(zai)線調試(shi)(shi)芯(xin)片(pian)非常(chang)方(fang)便(其實就是利用(yong)(yong)JTAG控制(zhi)CPU內核),還不(bu)需要設(she)計專門的(de)仿真芯(xin)片(pian),因此就出現(xian)了用(yong)(yong)JTAG調試(shi)(shi)風行的(de)局面。 邊界掃(sao)描技(ji)術(Boundary-Scan): JTAG調試(shi)主要就是基于這種邊界掃描技(ji)術(shu)。 邊(bian)界(jie)(jie)掃描(miao)技術(shu)的(de)基(ji)本(ben)思想是在(zai)靠近芯片的(de)輸(shu)(shu)(shu)入(ru)輸(shu)(shu)(shu)出(chu)管腳上增加一個移位寄存(cun)器(qi)單元(yuan)(yuan)。因為這些(xie)移位寄存(cun)器(qi)單元(yuan)(yuan)都分布在(zai)芯片的(de)邊(bian)界(jie)(jie)上,所以(yi)被稱為邊(bian)界(jie)(jie)掃描(miao)寄存(cun)器(qi) (Boundary-Scan Register Cell) 。當芯片處于調試(shi)狀態的(de)時候(hou),這些(xie)邊(bian)界(jie)(jie)掃描(miao)寄存(cun)器(qi)可以(yi)將芯片和(he)外圍的(de)輸(shu)(shu)(shu)入(ru)輸(shu)(shu)(shu)出(chu)隔離開來(lai)。通過這些(xie)邊(bian)界(jie)(jie)掃描(miao)寄存(cun)器(qi)單元(yuan)(yuan),可以(yi)實現對芯片輸(shu)(shu)(shu)入(ru)輸(shu)(shu)(shu)出(chu)信號的(de)觀察(cha)和(he)控制。 JTAG的(de)主要作用:
● 檢測芯片是否良好
● 鏡像文件的燒寫功能 ARM7TDMI調試架構: 一個(ge)調(diao)試系統通常包含三個(ge)部分:
● 調試主機
● 協議轉換器 ARM7TDMI典型(xing)的調試架(jia)構如下圖所示(shi):
經(jing)過協(xie)議轉換器進(jin)行命(ming)令解(jie)釋,主機(ji)上運行的調試軟件就可(ke)以通過JTAG接口直接和目標芯(xin)片對話了(le)。 為了支持(chi)底層(ceng)的調(diao)試(shi),ARM7TDMI提(ti)供了硬(ying)件上的調(diao)試(shi)擴展,包(bao)括:
● 停止程序的運行 常見ARM調試工具:
● BDI1000/2000/3000
● U-Link
● J-Link
● Multi-ICE
● Wiggler電纜
相關資訊
發表評論
|