ARM 與RealView
ARM RealView工具的嵌入式調試
隨著嵌入式應用的深入和發展,特別是在數字通訊領域和網路領域中的應用,對處理器的效能提出了更高的要求。為適應這種情況,現在已經出現非常多的多核心結構處理器,例如兩個或多個ARM,或者再加入DSP。同時,各種使用者對不同應用的需求,使得軟體的複雜度極大提高。為了提高應用軟體的運行效率和效能,作業系統的使用已經成為必然。再者,為了適應不同的使用者需求,ARM晶片加入了很多客戶需求的複雜外設。
為了滿足客戶對複雜ARM SoC調試的挑戰,實現快速、高效的軟體開發,ARM公司開發了RealView系列ARM開發工具,可以實現:
◆ SoC的技術開發調試
◆ 基於SoC的產品開發調試
◆ 應用和軟體的開發調試
ARM RealView系列開發工具主要包括:
◆ 編譯器、調試器:RVDS(RealView Developer Suite)
◆ JTAG模擬器:RVI(RealView ICE);Multi-ICE
◆ 硬體跟蹤器:RVT(RealView Trace);Multi-Trace
指令集模擬器
指令集模擬器RealView ARMulator ISS是RVDS軟體中的一部分,ARMulator ISS可以提供對ARM/Thumb指令集的精確模擬,支援包括從ARM7到ARM11的核心處理器,可以使開發人員能夠在硬體完成之前就開始軟體的開發和驗證調試。
ARMulator ISS包含了一系列類比基於ARM核的軟體模型,最基本的模型是ARM處理器核心模型和儲存空間模型,另外也可以定義其他的模型,例如外設、副處理器等。
ARMulator ISS不僅可以進行程式的邏輯和功能驗證,同時可以進行效能分析,例如ARMulator可以通過執行應用程式來計算 程式的運行周期,可以產生 Sequential周期、Non-sequential周期、Coprocessor周期等資訊,通過這些資料來剖析器記憶體的使用效率(圖1)。
對於ARMulator,我們同時也可以定義處理器的類型、處理器核心的時鐘頻率以及與處理器串連的記憶體資訊,例如地址、寬度、速度等,來得到程式的已耗用時間統計等。
JTAG模擬器調試方案
現在所有的ARM晶片都支援JTAG調試。JTAG是IEEE的一個標準,即IEEE1149.1。通過這個標準,可以對具有JTAG介面晶片的硬體電路進行邊界掃描和故障檢測。JTAG模擬器是通過ARM晶片的JTAG口進行裝置調試的。JTAG模擬器串連比較方便,不佔用片上的資源,模擬非常接近於目標硬體系統。使用主機調試器配合JTAG模擬器進行開發是目前使用最多的一種ARM調試方式。
ARM核心有個EmbeddedICE邏輯模組,用於採集CPU的匯流排訊號,對於EmbeddedICE和CPU執行單元的通訊則是通過掃描鏈進行的,而這些掃描鏈則是受測試存取埠TAP(Test Access Port)控制器控制的,並通過ARM晶片的JTAG介面引出,然後通過JTAG模擬器(RVI或Multi-ICE),便可以和主機平台上的調試器(RVD)進行通訊,從而實現對ARM硬體平台的調試。
對於有的ARM應用程式,當使用者使用JTAG模擬器對程式 進行單步調試時可能一切都是好的,但當全速運行時則會出現問題。對於這種問題,則可以通過ARM的硬體跟蹤器(RVT或Multi-Trace)來尋找問題。
硬體跟蹤器是通過ARM晶片內部的嵌入式跟蹤宏單元ETM(Embedded Trace Macrocell)來實現對程式跟蹤的,可以對執行代碼進行無幹擾的高速即時跟蹤,捕獲出所有的程式執行過程,協助工程師迅速地定位疑難故障,從而縮短開發週期,降低開發成本,請參看圖2。
RealView調試器 —— RVD
RVD是ARM系統調試方案的核心部分,該調試器可以為不同使用者提供最為合適的調試功效。RealView調試器包括:高度整合的專案管理和編譯控制工具的IDE;功能強大的調試器,使開發人員可以快速方便地實現對軟體的調試。RVD調試器不僅包含基本的調試功能,例如組合語言和C/C++的原代碼調試;單步、全速運行;斷點、觀察點和跟蹤點設定;寄存器、記憶體和堆棧察看等;還可以實現很多進階的功能,例如多核心調試支援(Multi-Core Debug);作業系統明了化(OS Awareness);DSP明了化(DSP Awareness);擴充的目標可見度(Extended Visibility)。下面就分別對這幾種功能做一個簡單說明:
◆ 多核心調試支援
隨著客戶應用需求的增加,很多應用已經不能由單個ARM核心來實現。針對這種需求,ARM對RVD的功能進行了擴充,可以支援多個核心,例如:多個ARM核心;ARM核心+DSP核心;多個ARM核心+多個DSP核心。調試工具通過JTAG掃描鏈來自動檢測硬體系統的核心,使用者可以根據需要來顯示多個串連的核心,同時可以為每個核心開一個視窗,因此可以使用多個視窗顯示多個串連的核心。使用者可以通過配置來對各個被調試的核心進行非同步控制,例如單獨控制每個核心;也可以通過配置來對各個被調試的核心進行同步控制,例如同時啟動、停止和步進等。
◆ 作業系統明了化
可以使使用者在更高的抽象層次上調試整個系統,而不用專註於每一條代碼,這樣可以隱藏不必要的細節資訊,從而關注於整個應用的開發,提高調試的效率,縮短開發的時間。現在RVD可以支援大部分作業系統的OS Awareness,通過OS Awareness可對系統的資源進行觀察,例如進程(Thread)、訊號量(Semaphores)、郵箱(Mailboxes)、隊列(Queues)等,3。RVD對OS Awareness的支援主要有兩種:停止系統調試HSD(Halted System Debug) 和運行系統調試RSD(Running System Debug)。HSD調試時需要暫停整個系統,這是可以觀察和分析整個系統的一些資源情況。RSD可以在系統啟動並執行情況下對使用者指定的線程進行調試,例如設定斷點、中斷、改變線程優先順序等。RSD調試非常適合於一些無法停止啟動並執行系統,例如硬碟等。
◆ DSP明了化
可以使使用者在不需要DSP調試工具的情況下對系統的DSP進行調試,與ARM的調試有統一的調試環境,使使用者更加方便地熟悉調試環境和節省開發成本。該調試增加了DSP 開發的透明度,使使用者可以方便地實現DSP軟體的開發。
◆ 擴充的目標可見度
通過這個功能,使用者不僅僅可以看到ARM和DSP的核心寄存器等,而且可以定義一些自己關心的記憶體映射寄存器和外圍裝置寄存器等,並可定義有意義的顯示格式,例如寄存器名字、位定義和設定值等,在調試過程中還可以方便地改變該數值使用者可以方便地通過配置BCD(Board/Chip Definition)檔案來印證對擴充目標的可見度。
RealView JTAG模擬器
ARM的RealView JTAG模擬器是高效能的開發工具,通過該模擬器並配合RealView調試器,便可以實現對ARM硬體平台的模擬調試。
RVI(RealView ICE)支援本地串連和網路連接,可以通過USB1.1/2.0和主機相連,也可以通過Ethernet 10/100baseT和主機相連。代碼通過JTAG下載速度可以達600KB/s,並且新的差分訊號線可以滿足高達50MHz的JTAG時鐘頻率和更長的串連距離。RVI模擬器支援所有ARM7系列、ARM9系列、ARM9E系列、ARM10系列和ARM11系列晶片的調試模擬。同時,使用者可以通過線上韌體(Firmware)升級,來支援以後出的ARM新核心。RVI是一個可調整的、模組化的結構,使用者可以根據需要在其上面疊加硬體跟蹤器RVT(RealView Trace)來實現對ARM核心的跟蹤和分析,4。
RealView系列為先進調試解決方案
嵌入式系統變得越來越複雜,從單核心系統到越來越多的多核心系統,從單任務軟體到使用作業系統的多任務軟體,系統的調試也變得越來越困難。如何選擇恰當的調試開發工具,對整個產品的開發起著至關重要的作用。ARM完整的RealView系列開發調試工具對各種系統提供了整體的解決方案。ARM的RealView調試器(RVD)結合JTAG模擬器RealView ICE與硬體跟蹤器RealView Trace,提供了高效、快速的調試、跟蹤解決方案,成為基於ARM嵌入式系統中最為先進的調試方案
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/levisophia/archive/2008/01/30/2073379.aspx