平台:jz2440
作者:庄澤彬(歡迎轉載,請注明作者)
說明:韋東山二期視頻學習筆記
交叉編譯工具:arm-linux-gcc (GCC) 3.4.5
eclipse版本:eclipse-cpp-luna-SR2-win32-x86_64
PC環境:win10
說明:本文主要說明如何使用openjtag調試工具,進行單步調試。
一、安裝openocd、交叉編譯工具鏈
切換到圖1所示的目錄依次安裝01.OpenOCD with GUI setup.exe、02.yagarto-bu-2.18_gcc-4.2.2-c-c++_nl-1.16.0_gi-6.8.50_20080408.exe、03.yagarto-tools-20070303-setup.exe如果安裝失敗就使用管理員的模式安裝。
圖1
二、安裝eclipse
由於資料提供的eclipse是32版本的,因此我們需要重新下載eclipse,並且安裝zylin插件。https://www.eclipse.org/downloads/packages/release/luna/r/eclipse-ide-cc-developers在這個鏈接下載window64位版本的eclipse,本文采用的是eclipse-cpp-luna-SR2-win32-x86_64這個版本的eclipse,之前折騰了一段時間發現最新版本的eclipse安裝zyin會失敗,因此不建議使用最新版本的eclipse。還有需要注意的就是jdk版本太新也會出問題,之前采用jdk10,一直出了很多問題,后面改用jdk8解決問題。一定要注意jdk與eclipse不要采用最新版本。
三、使用openocd進行調試:
3.1打開openocd軟件
圖2
3.2 Work Dir切換到存放要調試的二進制文件所在的目錄,注意不要帶有中文字符,點擊connetc,就會識別設備,之后在點擊telnent,會彈出圖4的界面,如果系統沒有開啟telent,自己百度如果在win10打開telnet服務,切換到telnet窗口我們就可以通過openjtag調試程序.
圖3
圖4
3.3調試常用的命令
poll: 查詢板子的當前狀態
halt: 暫停程序的運行,燒錄軟件之前需要暫停。
load_image: 燒錄指定的鏡像文件
resum 0 : 從0地址開始運行
step : 進行單步調試
reg: 查看寄存器的值
使用這種方法調試,每調試一步就得使用reg查看寄存器的值,要結合反匯編文件一起分析,使用這種方法相對來說比較麻煩.
圖5
圖6
3.4使用openjtag+openocd+elipse進行源碼級別的單步調試。這次的實驗是sdram上運行的,因此,我們需要先燒錄圖7所示的init.bin文件,先對sdram進行初始化,才能夠進行實驗。之后打開eclipse。
圖7
打開eclipse進行工程的相關配置:
File->NEW->Project新建一個c project,設置工程名字以及工程的源碼以及鏡像文件所在的目錄,之后點擊finish。圖14是最后的實驗結果,能夠成功的使用openjtag進行單步調試。
圖8
圖9
如圖10所示,設置一個debug的配置選項,之后按照圖10,圖11,圖12,圖13,進行配置,配置完之后點擊圖13進行調試。
圖10
圖11
圖12
圖13
圖14