基于JTAG的ARM芯片系統(tǒng)調試
EmbeddedICE提供的斷點及觀察點將使處理器偏離正常執(zhí)行序列,破壞了軟件的實時行為,它不能完成實時操作調試功能。ARM結構的處理器采用嵌入式跟蹤宏單元ETM很好的解決了系統(tǒng)實時調試的問題。
4.1 硬件電路
EmbeddedICE單元支持斷點和觀察點功能并提供主機和目標軟件的通信通道。ETM單元[5]壓縮處理器接口信息并通過跟蹤端口送到片外。這兩個單元都由JTAG端口控制。SoC外部的EmbeddedICE控制器用于將主機系統(tǒng)連接到JTAG端口,跟蹤端口分析器使主機系統(tǒng)與跟蹤端口對接。主機通過一個網絡可以與跟蹤端口分析器和EmbeddedICE二者連接。
4.2 實現原理
由調試軟件配置并通過標準JTAG接口傳輸到ETM上。在程序執(zhí)行時ETM可以通過產生對處理器地址、數據及控制總線活動的追蹤(Trace)來獲得處理器的全速操作情況。在實時仿真時外設和中斷程序依然能夠繼續(xù)運行。用戶控制斷點和觀察點的設置并可以配置各種跟蹤功能。跟蹤觸發(fā)條件可以指定,跟蹤采集可以在觸發(fā)之前、之后或以觸發(fā)為中心可以選擇跟蹤是否包括數據訪問。跟蹤采集可以是數據訪問的地址、數據本身,也可以是兩者兼有。
ETM是使用軟件通過JTAG端口進行配置的,所使用的軟件是ARM軟件開發(fā)工具的一個擴展。跟蹤數據從跟蹤端口分析儀下載并解壓,最終反鏈接到源代碼。
5 應用實例
下面以S3CEV40開發(fā)板[4]為例,介紹ARM調試結構應用。S3CEV40采用的CPU為Samsung公司的S3C44B0X,是國內應用廣泛的基于ARM7TDMI內核的SoC。其調試系統(tǒng)的硬件結構如圖2:
計算機的并行口和Embest PowerICE for ARM仿真器的DB25接口通過標準的DB25公、母轉換電纜連接。Embest PowerICE for ARM仿真器通過一個的IDC頭的直通電纜(1-1, 2-2,… 20-20)與目標板的JTAG接口相連接。20芯的Embest PowerICE for ARM仿真器接口的定義如圖3所示:
S3CEV40所用到的調試軟件為EmbestIDE集成開發(fā)環(huán)境,它提供源碼級調試,提供了圖形和命令行兩種調試方式,可進行斷點設置、單步執(zhí)行、異常處理,可查看修改內存、寄存器、變量等,可查看函數棧,可進行反匯編等。它為用戶提供2種調試方法:
脫機調試:Embest IDE for ARM帶ARM指令集模擬器,用戶能在PC上調試ARM應用軟件。
下載調試:Embest IDE將程序通過仿真器下載到開發(fā)板,直接進行調試。
Embest IDE的調試功能包括:斷點功能;程序的單步執(zhí)行;變量監(jiān)視功能,隨程序運行同步更新變量,變量值即時修改;寄存器即時查看與修改;存儲器查看與修改,存儲器內容顯示格式定制;堆棧顯示;同時提供圖形界面操作和命令行操作方式;支持被調試代碼的多種顯示模式,能以源碼、匯編、混合等形式來顯示程序;具有與MS Visual Studio類似的調試菜單功能:Go,Stop,Reset,Step into,Run to Cursor等;程序的上載和下載。
6 結束語
本文介紹了32位ARM嵌入式處理器的調試技術。在JTAG邊界掃描技術的基礎上介紹了ARM的EmbeddedICE及嵌入式跟蹤并在此基礎上介紹了一個系統(tǒng)調試實例。嵌入式調試技術是嵌入式軟硬件開發(fā)中必要的一環(huán),掌握了它能在開發(fā)中起到事半功倍的作用。
嵌入式技術正在日新月異的發(fā)展著,嵌入式調試技術也不是一成不變的,它必將隨著高速、低功耗Soc的發(fā)展而進步。
評論