裸機(jī)調(diào)試分享:RVDS4.0 + openJTAG
上個(gè)月買了一個(gè)openJTAG一直沒(méi)時(shí)間使用,今天用了一下,還行,給大家分享一下RVDS4.0與openJTAG的使用方法
首先得安裝好openJTAG的相關(guān)驅(qū)動(dòng)以及GDB調(diào)試軟件,這個(gè)在openJTAG的使用手冊(cè)上面都有,這里就不多說(shuō)了,來(lái)看看RVDS4.0的設(shè)置吧
只有一個(gè).s文件,是匯編寫的,用來(lái)測(cè)試無(wú)uboot環(huán)境下的啟動(dòng)的,其它編譯設(shè)置請(qǐng)看我的博文,RVDS4.0建立工程,我這里使用的地址為0x0,地址,也就是ARM啟動(dòng)后第一條指令所在位置.
;----------------------------------------------------------------------------------------------------- ;功能: S3C6410硬件初始化代碼 ;作者: 異靈元(cp1300@139.com) ;創(chuàng)建時(shí)間:2012-10-27 ;修改時(shí)間:2012-10-27 ;修訂說(shuō)明: ;----------------------------------------------------------------------------------------------------- PRESERVE8 INCLUDE?????s3c6410_map.inc ;寄存器地址映射 AREA????Init,CODE,READONLY ENTRY? B ResetHandler ;系統(tǒng)硬件復(fù)位 B UndHandler ;未定義指定中斷 B SWIHandler?????? ;軟件中斷 B PaAbort???????????? ;取指令異常中斷 B DaAbort??????????? ;取數(shù)據(jù)異常中斷? B . ;保留 B IRQHandler????? ;中斷 B FIQHandler????? ;快速中斷 ResetHandler PROC ;----------------------------------------------------------------------------------------------------- ;關(guān)閉看門狗 ;----------------------------------------------------------------------------------------------------- LDR R0, =S3C6410_WTCON ;看門狗寄存器地址 LDR R1, =0x0 STR R1, [R0] ;寫0,關(guān)閉看門狗 ;----------------------------------------------------------------------------------------------------- ;點(diǎn)亮所有LED ;----------------------------------------------------------------------------------------------------- LDR R0, =S3C6410_GPMCON LDR R1, =0x1111 ;推挽輸出 STR R1, [R0] LDR R0, =S3C6410_GPMDAT LDR R1, =0x0 ;寫入0,點(diǎn)亮所有燈 STR R1, [R0] main_loop B main_loop ENDP UndHandler PROC EXPORT UndHandler [WEAK] B . ENDP SWIHandler PROC EXPORT SWIHandler [WEAK] B . ENDP PaAbort PROC EXPORT PaAbort [WEAK] B . ENDP DaAbort PROC EXPORT DaAbort [WEAK] B . ENDP IRQHandler PROC EXPORT IRQHandler [WEAK] B . ENDP FIQHandler PROC EXPORT FIQHandler [WEAK] B . ENDP END
再看看如何配置調(diào)試
(默認(rèn)大家已經(jīng)安裝好了openJTAG相關(guān)驅(qū)動(dòng))
?
1.首先得安裝RVDS4.0,不會(huì)的看看我的博客
安裝RVDS4.0 : http://blog.csdn.net/cp1300/article/details/7772645
RVDS4.0建立工程: http://blog.csdn.net/cp1300/article/details/7772809
?
2.安裝zylincdt插件.
不好意思我的是漢語(yǔ)的,大家看著辦啊
點(diǎn)擊‘幫助’ -------------- ‘SoftwareUpdates’ ---------------‘Find and Install’
點(diǎn)開(kāi)后選擇下面的一個(gè)選項(xiàng),下一步
如下圖界面
點(diǎn)擊新建遠(yuǎn)程站點(diǎn) ,右邊的第一個(gè)
?
名稱填寫:? zylincdt
URL填寫:???????? http://opensource.zylin.com/zylincdt
?
?
勾選后點(diǎn)擊完成,需要聯(lián)網(wǎng)下載更新,按提示安裝,中途可能會(huì)有警告,確認(rèn)就行,安裝完成后會(huì)自動(dòng)重啟RVDS的,完成后
在調(diào)試?yán)锩鏁?huì)多出zylin 相關(guān)的調(diào)試選項(xiàng).
3.新建一個(gè)調(diào)試
在 Zylin Embedded debug(Native) 下面新建一個(gè)調(diào)試配置,如上圖,我的是 ok6410無(wú)Uboot調(diào)試
在Debugger選項(xiàng)卡上面需要注意了
Debugger 選擇 Embedded GDB,設(shè)置如上圖所示
勾選一個(gè) 默認(rèn)的斷點(diǎn),我的是ResetHandler這個(gè)按照自己的實(shí)際情況,如果有C語(yǔ)言這里一般就是main函數(shù)了
GDB調(diào)試器:選擇你的openJLINK光盤里面安裝的工具.說(shuō)明里面都有,我的路徑是:D:Program Filesyagartobinarm-elf-gdb.exe
GDB命令文件這個(gè)也是光盤里面帶的,我的是:D:DesktopOK6410ok6410filestarts3c6410_gdb.init
在命令選項(xiàng)卡里面添加四條命令,功能依次是 載入調(diào)試文件,設(shè)置斷點(diǎn),繼續(xù)執(zhí)行
命令為
monitor reset
monitor halt
load
//break main
continue
這樣可以一鍵運(yùn)行,將//去掉程序會(huì)自動(dòng)停在主函數(shù),注意下一次仿真下載之前需要停止本次仿真.
應(yīng)用即可
4.開(kāi)始調(diào)試
在openJTAG的終端里面輸入 halt,暫停,其實(shí)可以在設(shè)置的時(shí)候第一條指令如果是break,這個(gè)步驟就可以省略了,但是建議多次調(diào)試后復(fù)位一下開(kāi)發(fā)板
調(diào)試前一定要先打開(kāi)OPENJTAG : OPENOCD GUI,如圖
設(shè)置在光盤手冊(cè)里面也有.
編譯好工程后點(diǎn)擊調(diào)試即可
注意要選擇剛剛建立的調(diào)試配置.
5.調(diào)試
出現(xiàn)如上圖,就成功了,省下的就非常簡(jiǎn)單了,大家自己琢磨琢磨.
看完后大家肯定會(huì)覺(jué)得沒(méi)什么用,因?yàn)樽约菏稚峡赡軟](méi)有openJTAG,并且這個(gè)還有點(diǎn)貴,但是告訴大家一個(gè)好消息,JLINK一樣可以這樣用,一樣可以再RVDS4.0上面進(jìn)行調(diào)試,使用方法和eclipse一模一樣的,不懂可以查eclipse的使用,但是jlink很容易卡死,很不穩(wěn)定。
一樣的程序,跑飛了。。。
卡死了。。。
附上:jlink調(diào)試,大部分操作都一樣,設(shè)置如下,調(diào)試前想打開(kāi)jlink-gdb