新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM體系中調(diào)試系統(tǒng)概述

ARM體系中調(diào)試系統(tǒng)概述

作者: 時(shí)間:2012-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
  在嵌入式系統(tǒng)中,通常將運(yùn)行目標(biāo)程序的計(jì)算機(jī)系統(tǒng)稱(chēng)為。由于目標(biāo)系統(tǒng)中常常沒(méi)有進(jìn)行輸入/輸出處理的必要的人機(jī)接口,因此就需要在另一臺(tái)計(jì)算機(jī)上運(yùn)行調(diào)試程序,這個(gè)運(yùn)行調(diào)試程序的計(jì)算機(jī)通常是一臺(tái)PC,稱(chēng)為宿主機(jī)(或調(diào)試機(jī)、主機(jī))。在主機(jī)和之間需要一定的信道迸行通信。這樣一個(gè)應(yīng)該包括3部分,即主機(jī)、、目標(biāo)機(jī)和主機(jī)之間的通信信道。

  如圖所示為的結(jié)構(gòu)。圖中各部分的含義將在下面介紹。

ARM體系中調(diào)試系統(tǒng)的結(jié)構(gòu)

  圖 的結(jié)構(gòu)

  在主機(jī)上運(yùn)行的調(diào)試程序用于接收用戶(hù)的命令,把用戶(hù)命令通過(guò)主機(jī)和目標(biāo)機(jī)之間的通信信道發(fā)送到目標(biāo)機(jī),接收從目標(biāo)機(jī)返回的數(shù)據(jù)并按照用戶(hù)制定的格式進(jìn)行顯示。調(diào)試代理(debugagent)通常運(yùn)行在目標(biāo)機(jī)(ARMulator除外,它運(yùn)行于主機(jī)上)上,它接收主機(jī)上調(diào)試器發(fā)來(lái)的命令,可以在目標(biāo)程序中設(shè)置斷點(diǎn),單步執(zhí)行目標(biāo)程序,顯示程序斷點(diǎn)處的運(yùn)行狀態(tài)(寄存器和內(nèi)存值)。在中,調(diào)試代理可以有下面4種方式。

 ?。?)ARMulator是一種比較特殊的調(diào)試代理。它與其他的調(diào)試代理運(yùn)行在目標(biāo)機(jī)上有所不同,它是一個(gè)指令級(jí)的仿真程序,運(yùn)行在主機(jī)上。使用ARMulator,不需要硬件目標(biāo)系統(tǒng),就可以運(yùn)行于特定ARM處理器上的應(yīng)用程序。由于ARMulator可以報(bào)告各指令執(zhí)行時(shí)的周期,它還可以用來(lái)進(jìn)行應(yīng)用程序的性能分析。

 ?。?)基于JTAG的ICE類(lèi)型的調(diào)試代理。ARM公司的Multi-ICE及EmbeddedICE屬于這種類(lèi)型的調(diào)試代理。這類(lèi)調(diào)試代理利用ARM處理器中的JTAG接口及一個(gè)嵌入的調(diào)試單元可以和主機(jī)上的調(diào)試器進(jìn)行通信,完成下面的工作。

  ·實(shí)時(shí)地設(shè)置基于指令地址值或基于數(shù)據(jù)值的斷點(diǎn)。

  ·控制程序單步執(zhí)行。

  ·訪(fǎng)問(wèn)并且可以控制ARM處理器內(nèi)核。

  ·訪(fǎng)問(wèn)ASIC系統(tǒng)。

  ·訪(fǎng)問(wèn)系統(tǒng)中存儲(chǔ)器。

  ·訪(fǎng)問(wèn)I/O系統(tǒng)。

  (3)Angel調(diào)試監(jiān)控程序。它是一組運(yùn)行在目標(biāo)機(jī)上的程序,可以接收主機(jī)上調(diào)試器發(fā)送的命令,執(zhí)行諸如設(shè)置斷點(diǎn)、單步執(zhí)行目標(biāo)程序、觀察或修改寄存器`存儲(chǔ)器內(nèi)容之類(lèi)的操作。與基于JTAG的調(diào)試代理不同,Angel調(diào)試監(jiān)控程序需要占用一定的系統(tǒng)資源,如內(nèi)存、串行端口等。使用Angel調(diào)試監(jiān)控程序可以調(diào)試在目標(biāo)系統(tǒng)運(yùn)行的ARM程序或Thumb程序。

  (4)調(diào)試網(wǎng)關(guān)。通過(guò)調(diào)試網(wǎng)關(guān),主機(jī)上的調(diào)試器可以使用Agilent公司的仿真模塊開(kāi)發(fā)基于ARM的應(yīng)用系統(tǒng)。在主機(jī)和目標(biāo)機(jī)之間需要一定的通信信道,通常使用的是串行端口、并行端口或以太網(wǎng)卡。在主機(jī)和目標(biāo)機(jī)之間進(jìn)行數(shù)據(jù)通信時(shí)使用了一定的協(xié)議,這樣主機(jī)上的調(diào)試器就可以使用一個(gè)統(tǒng)一的接口與不同的調(diào)試代理進(jìn)行通信。在早期使用的是一個(gè)稱(chēng)為RDP(Remote Debug Protocol)的協(xié)議,它是一個(gè)基于字節(jié)流的簡(jiǎn)單協(xié)議,沒(méi)有糾錯(cuò)功能。后來(lái)廣泛使用的是稱(chēng)為ADP(Angel Debug Protocol)的協(xié)議,它是一個(gè)基于數(shù)據(jù)包的通信協(xié)議,具有糾錯(cuò)功能。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉