TRACE32除錯技巧

2021-06-06 23:36:16 字數 1687 閱讀 1622

**:

1. 除錯步驟

l         連線好 trace32-icd 和目標板,注意不要帶電插拔 jtag ,容易損壞 trace32 或目標板,然後依次開啟 trace32-icd 和目標板的電源。

l         開啟除錯軟體 trace32

l         設定 cpu 型別,狀態等,可以通過命令或選單,命令如下:

sys.reset

sys.cpu arm7tdmi ; 這裡設定 cpu 型別

sys.up ; 啟動除錯,如果正常的話,狀態為 system.ready; 否則會報錯,需要檢查 cpu 設定是否正確,trace32 和目標板的連線和電源是否正常

data.load.elf e:/source/test.elf /path e:/source

這裡的/path

選項是用來指明源**的路徑,在除錯時

trace

就可以查詢到源**了。 這裡 trace會根據 .elf 檔案裡包含的目標**起始位址載入到 ram 的對應位址上,也可以指定載入到 ram 的位址,但須和編譯時的設定一致,否則程式不能正常執行。

l         然後就可以設定斷點進行除錯了,如:

break.set 0x0c008000

trace32 的斷點有兩種,一種是硬體斷點(在 flash 中的斷點),另一種是軟斷點(在 ram 中的斷點);硬體斷點需要 cpu 的支援,如 arm7 最多隻支援 2 個硬體斷點,如果使用了軟斷點的話,就只能使用乙個硬斷點了;而軟斷點沒有限制,可以設定很多個。

注:在trace32

中,如果要使用硬體斷點,需要先設定好

flash

記憶體對映範圍,如下命令:

map.bonchip 0x0000--0xfffff ; 具體範圍根據目標板 flash 的範圍設定

l         設定好斷點就可以正常除錯了。

2.       源**除錯

在編譯原始碼的時候,編譯成 ( 加 -g 選項 )debug 版本的目標檔案(可以是 axf/elf 等格式),用 trace32 就可以直接進行源**除錯了。 trace32 幾乎支援所有的編譯器的編譯檔案,具體格式參見 trace32 的幫助。 axf/elf 等編譯檔案也叫符號檔案,即在檔案中把原始碼的符號表(函式 / 變數等)儲存下來了,供除錯時使用,但裡面的符號表只是起定位作用,在除錯時還需要有目標源**,否則只能進行彙編級除錯,trace32 支援把機器碼反彙編成組合語言進行除錯,而且不需要目標檔案支援, trace32 可以自動從flash/ram 中讀取機器碼,然後反彙編成彙編**。

data.load.elf e:/source/test.elf /path e:/source

3.       宕機定位方法

在除錯產品時會碰到裝置宕機的情況,如下在除錯過程中出現問題,可以很方便的用 trace 來檢視問題;但如果是裝置在正常執行時(沒有接 jtag 除錯)出現問題或宕機就比較難定位問題了;這裡可以通過trace32 的 attach 功能來進行除錯,如下:

l         把出問題的機器和 trace32-icd 連線好(連線 jtag ,測試機器需先預留 jtag 口),然後開啟trace32 ,設定好 cpu 型別,使用 sys.attach 命令就可以讓 trace32 和問題機器連線上了,正常連線後, system 的狀態就變成了 running 或 up 。

l         接下來可以就可以直接進行彙編級除錯了。

MTK除錯入門之一 TRACE使用的技巧

zzjltx 發表於 2009 12 23 11 49 00mtk除錯入門之一 trace使用的技巧 懶書生 發表於 2009 10 29 20 13 00 52rd上曾有朋友讓我寫一些除錯技巧方面的文章.除錯對於軟體是十分重要的,但卻不是一篇二篇文章能講清楚的.有很多除錯技巧都是零零碎碎的東西,用...

MTK除錯入門之一 TRACE使用的技巧

52rd上曾有朋友讓我寫一些除錯技巧方面的文章.除錯對於軟體是十分重要的,但卻不是一篇二篇文章能講清楚的.有很多除錯技巧都是零零碎碎的東西,用的時候能很容易使用,但要寫出來時,卻還是比較麻煩的.mtk的除錯一般來說可以分為 除錯與手機除錯.這兩種除錯對於研發新功能,修改bug,研究演算法都是十分重要...

MTK除錯入門之一 TRACE使用的技巧

mtk的除錯一般來說可以分為 除錯與手機除錯.這兩種除錯對於研發新功能,修改bug,研究演算法都是十分重要的.當然,這兩種除錯也有差異,有時會出現在模擬器執行正常,在手機卻執行失敗,或者相反,這就突出了軟體模擬環境與硬體手機環境的差別.原因可能是各種各樣的,比如可能是有些硬體軟體沒有辦法模擬,有些新...