上個月買了一個openJTAG一直沒時間使用,今天用了一下,還行,給大家分享一下RVDS4.0與openJTAG的使用方法
首先得安裝好openJTAG的相關驅動以及GDB調試軟體,這個在openJTAG的使用手冊上面都有,這裡就不多說了,來看看RVDS4.0的設定吧
只有一個.s檔案,是彙編寫的,用來測試無uboot環境下的啟動的,其它編譯設定請看我的博文,RVDS4.0建立工程,我這裡使用的地址為0x0,地址,也就是ARM啟動後第一條指令所在位置.
;-----------------------------------------------------------------------------------------------------;功能:S3C6410硬體初始化代碼;作者:異靈元(cp1300@139.com);建立時間:2012-10-27;修改時間:2012-10-27;修訂說明:;-----------------------------------------------------------------------------------------------------PRESERVE8INCLUDE s3c6410_map.inc;寄存器地址映射AREA Init,CODE,READONLYENTRY BResetHandler;系統硬體複位BUndHandler;未定義指定中斷BSWIHandler ;軟體中斷BPaAbort ;取指令異常中斷BDaAbort ;取資料異常中斷 B.;保留BIRQHandler ;中斷BFIQHandler ;快速中斷ResetHandlerPROC;-----------------------------------------------------------------------------------------------------;關閉看門狗;-----------------------------------------------------------------------------------------------------LDRR0,=S3C6410_WTCON;看門狗寄存器地址LDRR1,=0x0STRR1,[R0];寫0,關閉看門狗;-----------------------------------------------------------------------------------------------------;點亮所有LED;-----------------------------------------------------------------------------------------------------LDRR0,=S3C6410_GPMCONLDRR1,=0x1111;推挽輸出STRR1,[R0]LDRR0,=S3C6410_GPMDATLDRR1,=0x0;寫入0,點亮所有燈STRR1,[R0]main_loopBmain_loopENDPUndHandlerPROCEXPORTUndHandler[WEAK]B.ENDPSWIHandlerPROCEXPORTSWIHandler[WEAK]B.ENDPPaAbortPROCEXPORTPaAbort[WEAK]B.ENDPDaAbortPROCEXPORTDaAbort[WEAK]B.ENDPIRQHandlerPROCEXPORTIRQHandler[WEAK]B.ENDPFIQHandlerPROCEXPORTFIQHandler[WEAK]B.ENDPEND
再看看如何配置調試
(預設大家已經安裝好了openJTAG相關驅動)
1.首先得安裝RVDS4.0,不會的看看我的部落格
安裝RVDS4.0 : http://blog.csdn.net/cp1300/article/details/7772645
RVDS4.0建立工程: http://blog.csdn.net/cp1300/article/details/7772809
2.安裝zylincdt外掛程式.
不好意思我的是漢語的,大家看著辦啊
點擊‘協助’ -------------- ‘SoftwareUpdates’ ---------------‘Find and Install’
點開後選擇下面的一個選項,下一步
如介面
點擊建立遠端站台 ,右邊的第一個
名稱填寫: zylincdt
URL填寫: http://opensource.zylin.com/zylincdt
勾選後點擊完成,需要連網下載更新,按提示安裝,中途可能會有警告,確認就行,安裝完成後會自動重啟RVDS的,完成後
在調試裡面會多出zylin 相關的調試選項.
3.建立一個調試
在 Zylin Embedded debug(Native) 下面建立一個調試配置,如,我的是 ok6410無Uboot調試
在Debugger選項卡上面需要注意了
Debugger 選擇 Embedded GDB,設定如所示
勾選一個 預設的斷點,我的是ResetHandler這個按照自己的實際情況,如果有C語言這裡一般就是main函數了
GDB調試器:選擇你的openJLINK光碟片裡面安裝的工具.說明裡面都有,我的路徑是:D:\Program Files\yagarto\bin\arm-elf-gdb.exe
GDB命令檔案這個也是光碟片裡面帶的,我的是:D:\Desktop\OK6410\ok6410\file\start\s3c6410_gdb.init
在命令選項卡裡面添加四條命令,功能依次是 載入調試檔案,設定斷點,繼續執行
命令為
monitor reset
monitor halt
load
//break main
continue
這樣可以一鍵運行,將//去掉程式會自動停在主函數,注意下一次模擬下載之前需要停止本次模擬.
應用即可
4.開始調試
在openJTAG的終端裡面輸入 halt,暫停,其實可以在設定的時候第一條指令如果是break,這個步驟就可以省略了,但是建議多次調試後複位一下開發板
調試前一定要先開啟OPENJTAG : OPENOCD GUI,
設定在光碟片手冊裡面也有.
編譯好工程後點擊調試即可
注意要選擇剛剛建立的調試配置.
5.調試
出現如,就成功了,省下的就非常簡單了,大家自己琢磨琢磨.
看完後大家肯定會覺得沒什麼用,因為自己手上可能沒有openJTAG,並且這個還有點貴,但是告訴大家一個好訊息,JLINK一樣可以這樣用,一樣可以再RVDS4.0上面進行調試,使用方法和eclipse一模一樣的,不懂可以查eclipse的使用,但是jlink很容易卡死,很不穩定。
一樣的程式,跑飛了。。。
卡死了。。。
附上:jlink調試,大部分操作都一樣,設定如下,調試前想開啟jlink-gdb