上个月买了一个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
;修订说明:
;-----------------------------------------------------------------------------------------------------
PRESERVE8
INCLUDE s3c6410_map.inc ;寄存器地址映射
AREA Init,CODE,READONLY
ENTRY
B ResetHandler ;系统硬件复位
B UndHandler ;未定义指定中断
B SWIHandler ;软件中断
B PaAbort ;取指令异常中断
B DaAbort ;取数据异常中断
B . ;保留
B IRQHandler ;中断
B FIQHandler ;快速中断
ResetHandler PROC
;-----------------------------------------------------------------------------------------------------
;关闭看门狗
;-----------------------------------------------------------------------------------------------------
LDR R0, =S3C6410_WTCON ;看门狗寄存器地址
LDR R1, =0x0
STR R1, [R0] ;写0,关闭看门狗
;-----------------------------------------------------------------------------------------------------
;点亮所有LED
;-----------------------------------------------------------------------------------------------------
LDR R0, =S3C6410_GPMCON
LDR R1, =0x1111 ;推挽输出
STR R1, [R0]
LDR R0, =S3C6410_GPMDAT
LDR R1, =0x0 ;写入0,点亮所有灯
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
再看看如何配置调试
(默认大家已经安装好了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 resetmonitor halt
load
//break main
continue
这样可以一键运行,将//去掉程序会自动停在主函数,注意下一次仿真下载之前需要停止本次仿真.
应用即可
4.开始调试
在openJTAG的终端里面输入 halt,暂停,其实可以在设置的时候第一条指令如果是break,这个步骤就可以省略了,但是建议多次调试后复位一下开发板
调试前一定要先打开OPENJTAG : OPENOCD GUI,如图
设置在光盘手册里面也有.
编译好工程后点击调试即可
注意要选择刚刚建立的调试配置.
5.调试
出现如上图,就成功了,省下的就非常简单了,大家自己琢磨琢磨.
看完后大家肯定会觉得没什么用,因为自己手上可能没有openJTAG,并且这个还有点贵,但是告诉大家一个好消息,JLINK一样可以这样用,一样可以再RVDS4.0上面进行调试,使用方法和eclipse一模一样的,不懂可以查eclipse的使用,但是jlink很容易卡死,很不稳定。
一样的程序,跑飞了。。。
卡死了。。。
附上:jlink调试,大部分操作都一样,设置如下,调试前想打开jlink-gdb