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
jz2440使用openjtag+openocd+eclipse调试【学习笔记】的更多相关文章
- OD调试学习笔记7—去除未注册版软件的使用次数限制
OD调试学习笔记7—去除未注册版软件的使用次数限制 本节使用的软件链接 (想自己试验下的可以下载) 一:破解的思路 仔细观察一个程序,我们会发现,无论在怎么加密,无论加密哪里,这个程序加密的目的就是需 ...
- Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例
<<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识 ...
- PX01关于手机屏SPI触摸调试学习笔记
上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.xk-image. ...
- PX01关于手机屏IIC触摸调试学习笔记
相关文件下载: 上位机工具:http://www.xk-image.com/download/blog/0002_TP调试/LcdTools20210605.rar 调试案例:http://www.x ...
- JZ2440裸机点亮LED【学习笔记】
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 一.我们首先来做第一个实验,用汇编语言点亮板子上的LED. 1.1 LED的原理图 从下面的原理图可知LED1是 ...
- Windows调试学习笔记:(二)WinDBG调试.NET程序示例
好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Collections.Generic ...
- Windows调试学习笔记:(一)WinDBG中加载SOS和CLR
最近产品环境出现了部分服务器当机情况,虽然重启之后问题就不出现了.但本着彻底解决问题的态度,想要找到root cause.多次尝试Visual Studio失败(可能是代码惊醒了优化和签名)之后,决定 ...
- ALSA声卡11_从零编写之调试——学习笔记
1.调试 (1)把程序拷贝到服务器上进行编译 (2)把程序放到内核上面去 重新配置内核,吧原来的声卡驱动程序去掉 a. 修改语法错误 11th_myalsa b. 配置内核去掉原来的声卡驱动 -> ...
- linux下C的GBD调试学习笔记(转载)
1. 单步执行和跟踪函数调用 看下面的程序: 例 10.1. 函数调试实例 #include <stdio.h> int add_range(int low, int high) { in ...
随机推荐
- Spring---Bean的继承与依赖
Spring 允许继承 bean 的配置(通过Bean的parent属性来指定,例如parent=”teacher“), 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean ...
- hibernate的日期映射
2. 映射 Java 的时间, 日期类型 1). 两个基础知识: I. 在 Java 中, 代表时间和日期的类型包括: java.util.Date 和 java.util.Calendar. 此外, ...
- SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局面
socks5_百度百科 https://baike.baidu.com/item/socks5/8915011?fr=aladdin 如果您的机器具有一个合法的 Internet IP 地址, 或者您 ...
- /usr/local/nginx/sbin/nginx -s reload 失败原因pid 进程记录和当前不符
[root@a ~]# /usr/local/nginx/sbin/nginx -s reload;nginx: [alert] kill(18834, 1) failed (3: No such p ...
- docker remote api enable in ubuntu
现在使用docker作为开发环境,操作系统是ubuntu16.10,pycharm中使用remote interpreter,需要用到remote api,结果发现自己的原答案是针对ubuntu 14 ...
- Linux下安装谷歌访问助手,解压缩时出现中文乱码
1.sudo apt-get install unar 安装unar 2.unar 谷歌访问助手chrome版本.zip 注意:使用 lsar 命令可以查看压缩文件内有那些文件: 例:lsar 谷 ...
- python重建二叉树
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None ...
- 【tensorflow】
运行计算图 session.run() https://blog.csdn.net/sinat_39372048/article/details/80868168 赋值 tf.assign() tf. ...
- linux系统centOS在虚拟机下的自定义安装
一 前戏 1.1在官网找到合适的版本,镜像文件 1.2安装VMware FF590-2DX83-M81LZ-XDM7E-MKUT4 CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ZC3 ...
- Mybatis框架学习总结-解决字段名与实体类属性名不相同的冲突
在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定是完全相同的. 1.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY ...