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

 

原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/9597064.html