jz2440使用openjtag+openocd+eclipse调试【学习笔记】
平台: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
觉得不错,就给我点小支持吧,蟹蟹