在Eclipse IDE 環(huán)境下使用Lauterbach公司的TRACE32調(diào)試工具
當(dāng)需要使用Trace32軟件調(diào)試多個(gè)Eclipes項(xiàng)目是,可以把選項(xiàng):“Use this launch for all projects”, 選上,就可以實(shí)現(xiàn)多個(gè)項(xiàng)目在同一個(gè)Trace32應(yīng)用實(shí)例軟件內(nèi)的調(diào)試。Lauterbach Trace32提供的Eclipse插件同樣可以支持對多內(nèi)核系統(tǒng)的調(diào)試, 具體配置請參考文檔:
本文引用地址:http://m.butianyuan.cn/article/114291.htmhttp://www.lauterbach.com/eclipse/doc/int_eclipse.pdf.
這樣通過Lauterbach 提供的Trace32 Eclipse插件,就可以擴(kuò)展許多的新的功能屬性,例如:從Eclipse啟動配置中啟動Trace32調(diào)試軟件,支持多項(xiàng)目/多核的調(diào)試,同步Eclipse IDE 和TRACE32軟件中的斷點(diǎn),從Trace32調(diào)試軟件界面中調(diào)用/打開原代碼文件或者反之依然等。接下來我們將以實(shí)際的項(xiàng)目來介紹
這些方便而強(qiáng)大的功能。
三:使用實(shí)例
1. 創(chuàng)建嵌入式系統(tǒng)應(yīng)用程序
在Eclipse IDE環(huán)境下,我們可以很方便的創(chuàng)建各種工程,也可以根據(jù)需要選擇不同的編譯器和連接器。用戶可以使用相同的GUI編輯不同的應(yīng)用程序, 配置完成后,我們只需要點(diǎn)擊“build”按鈕就可以生成我們所需要的可執(zhí)行文件。接下來我們要做的就是運(yùn)行和調(diào)試該可執(zhí)行程序。
2. 運(yùn)行和調(diào)試可執(zhí)行程序
要運(yùn)行可執(zhí)行程序,就需要把可執(zhí)行程序下載到目標(biāo)系統(tǒng)上才可以運(yùn)行和調(diào)試. 通常情況下有兩種方式,一種是通過Lauterbach Trace32硬件連接用戶的目標(biāo)板, 另外一種方式是利用Lauterbach Trace32軟件仿真功能. 也可以通過Lauterbach Trace32軟件直接連接用戶的原型軟件,使得用戶早期程序開發(fā)和芯片設(shè)計(jì)并行進(jìn)行.配置完成后,這些操作都可以通過在Eclipse IDE 界面中一鍵完成.所有這些情況都可以配置成一鍵操作模式,對用戶來講是完全透明的概念. 只需要執(zhí)行/點(diǎn)擊”Debug”按鈕,就可以啟動Trace32調(diào)試界面.并且跳到用戶希望的程序狀態(tài).
3. 斷點(diǎn)同步機(jī)制
Eclipse Trace32插件一個(gè)重要的應(yīng)用就是可以提供同步斷點(diǎn), 該斷點(diǎn)同步機(jī)制允許用戶在Eclipse的編輯窗口中編輯程序的時(shí)候設(shè)置斷點(diǎn).但因?yàn)镋clipse的編輯器只能識別原代碼,無法識別內(nèi)存地址,匯編指令等,所以同步斷點(diǎn)限于高級語言程序斷點(diǎn)的概念。和Trace32軟件類似, 任何設(shè)置在沒有執(zhí)行指令的原代碼行的斷點(diǎn),都將自動設(shè)定到下一帶有執(zhí)行指令的原程序行。例如在如下代碼的第一行設(shè)置的斷點(diǎn),會自動被轉(zhuǎn)移當(dāng)?shù)谌写a的地址上。
1: #define DOO 1
2: #define FOO “hello.c”
O 3: int main(int argc, char** argv)
同步斷點(diǎn)顯然可以為工程師提供了極大的方便,因?yàn)楣こ處熆梢栽谧约菏煜さ木庉嬡浖h(huán)境下,在編寫代碼的同時(shí)在需要的地址上設(shè)置斷點(diǎn),并且利用編輯軟件的專業(yè)屬性可以很快捷的找到所需代碼或函數(shù)/變量的位置。即時(shí)在編輯窗口中的修改和調(diào)整代碼,提高程序調(diào)試的效率。 但是在如下兩種情況下,當(dāng)研發(fā)人員在Eclips代碼編輯窗口中設(shè)置斷點(diǎn)時(shí),就會出現(xiàn)斷點(diǎn)設(shè)置或者無法識別符號信息等錯(cuò)誤。
1. 目標(biāo)板系統(tǒng)在被正常初始化完成之前(例如:片選寄存器,時(shí)鐘,堆棧等)。
2. 符號表信息被加載之前。
針對這些特殊情況的需求,Lauterbach 提供了專用的命令:
setup.breaktransfer [on | off] default: OFF
該命令可以默認(rèn)是關(guān)閉的狀態(tài),所以需要在腳本中或手動的輸入命令激活該屬性,在該屬性激活之前,沒有斷點(diǎn)會被同步轉(zhuǎn)換,但是卻也可以在Eclipse的編輯窗口中設(shè)置斷點(diǎn),Eclipse IDE會把斷點(diǎn)都記錄下來,在條件滿足的情況下,一旦該屬性被打開,立刻就會被同步轉(zhuǎn)換到Trace32調(diào)試軟件環(huán)境中。請參考如下的實(shí)例腳本:斷點(diǎn)轉(zhuǎn)換的屬性一開始是關(guān)閉的狀態(tài),在經(jīng)過必要的目標(biāo)系統(tǒng)初始化和符號表加載之后,再打開斷點(diǎn)同步轉(zhuǎn)換的屬性。以保證編輯窗口和調(diào)試窗口信息的正確結(jié)合。
評論