/**

******************************************************************************
* @author    Maoxiao Hu
* @version   V1.0.1
* @date       Dec-2014
******************************************************************************
* < COPYRIGHT 2014 ISE of SHANDONG UNIVERSITY >
*******************************************************************************
**/
 
首先说一下我实验室的网络环境:一台搭载ubuntu系统的公用Linux服务器,数台客户机使用ssh连接到服务器。
我个人的开发环境:使用Mac OS X系统,ssh远程连接Linux服务器。USB转串连接4412开发板,USB经jLink连接开发板,暂时别无其它线缆连接。
 
这里我就以Mac系统为例,说一下软硬件环境搭建,windows与Linux下搭建方法基本相同。
 
首先准备软件包:
1、eclipse CDT:http://www.eclipse.org/downloads/
根据自己的平台选择其中一个:
在大约页面中间位置有CDT的下载链接:
下载完成之后,自行安装即可。
如果你的系统是Mac那么你可能不需要安装jre jdk等环境,因为系统已经给你默认安装好了,
如果你的系统是linux,可能会提示eclipse无法打开,需要安装jre jdk,终端执行命令:
sudo apt-get install openjdk-7-jre openjdk-7-jdk
2、eclipse CDT zylincdt插件
打开eclipse CDT,选择help->Install New Software
在弹出的对话框,点击Add...按钮。

名称填写:  zylincdt

URL填写:  http://opensource.zylin.com/zylincdt

然后选中软件包,一直下一步,直到安装完成。根据网络环境的不同,这一步大约需要5-10分钟。
3、jLink驱动:https://www.segger.com/jlink-software.html
我的jLink是jLink V8,这里需要确定您的jLink可以联网升级固件,固件过低可能无法调试Cortex-A9内核。
根据自己平台选择驱动下载。
安装过程不再赘述。
安装完成之后,会有以下几个程序,
好像windows平台上的工具要比Mac的多。
4、gdb:https://launchpad.net/gcc-arm-embedded/+download
注意:以eclipse的安装平台为标准,如果你的eclipse是直接安装在Linux下的,那么你可以直接使用开发板光盘里交叉编译工具底下的这个程序:
而无需重复下载。
其它情况:在windows、Mac上安装eclipse,均需要打开 https://launchpad.net/gcc-arm-embedded/+download 下载交叉gdb。
下载完成之后,解压到任意位置均可。
-----------------------准备阶段完成-----------------------
下面介绍eclipse怎么通过gdb调试u-boot。
1、从服务器拉取u-boot源码
假设你已经在服务器上完成了uboot的编译产生了elf文件。在这里我使用transmit(FTP工具)从服务器拉取源码目录到本地任意位置。
2、在eclipse里新建工程
 
 
然后左侧导航栏会出现源码树:
3、设置调试参数
右击项目文件夹,找到调试参数设置:
 
new一个本地Zylin调试:
找到elf文件:
 
设置初始化命令,这里可能需要进一步讨论,在这里我们先使用这一段吧,随后我会进行其他命令的测试。

# connect to the J-Link gdb server
target remote localhost:2331
# Reset the target
monitor reset
monitor sleep 10
# Setup GDB for faster downloads
#set remote memory-write-packet-size 1024
set remote memory-write-packet-size 4096
set remote memory-write-packet-size fixed
monitor speed 12000
load
break _start

还需要设置一下源码目录,否则调试时候会提示找不到源码文件:

4、启动gdb-server

注意:每次调试之前需要保证4412的CPU处于halt状态。

方法:板子启动后,uboot读秒结束之前按任意键使4412进入uboot界面,而不是启动内核,启动内核后jlink可能无法使4412暂停住。

打开JLinkExe,CPU会被成功识别,这一步至关重要,不能识别CPU的话可能是由于jlink固件版本过低,或者硬件连接有问题。

我们使用halt命令停止CPU:

退出JLinkExe。

打开JLinkGDBServer,成功的话,会显示等待gdb连接:

5、回到eclipse执行调试

直接点击小虫子开始Debug

寄存器的值被成功读出,可以进行单步调试了,enjoy。

需要解决的问题:

1、在这里我没有认真研究gdb的初始化命令,现在只是可以运行,还需要进行进一步修改。

2、代码的运行地址好像有问题,gdb-server总是提示无法读取某些位置,等检查一下源码,重定位代码后再试。

3、可能需要在调试阶段对CPU进行降频处理,否则jlink很可能会停不住CPU(经验判断)。

4、最担心的问题还是jlink v8能否完美支持A9的调试,但至今还未发现问题。

使用eclipse与jLink V8调试exynos 4412 u-boot的更多相关文章

  1. jLink V8调试exynos 4412 u-boot的几点补充

    /** ****************************************************************************** * @author    Maox ...

  2. JLink V8初始化exynos4412脚本

    /** ****************************************************************************** * @author    Maox ...

  3. 【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)

    用于arm裸机程序开发的IDE基本有 以下3个:MDK,IAR,还有ADS.具体它们的具体情况在这里我就不多说了,百度一下就明白了.由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK ...

  4. J-LINK V8固件烧录指导

    1 J-LINK V8固件烧录指导 J-LINK 是使用过程中,如果内部固件意外损坏或丢失,请参考下面操作步骤说明,重新烧录JLINK固件. 1.1 安装固件烧录软件 请ATMEL官方网址下载AT91 ...

  5. STM32 ~ J-LINK V8 修复

    1.1    安装固件烧录软件 ♦请ATMEL官方网址下载AT91-ISP下载软件. 软件下载地址:http://www.atmel.com/dyn/products/tools_card.asp?t ...

  6. 【ARM-Linux开发】在win下开发的eclipse+yougatoo+jlink环境搭建

    在win下开发的eclipse+yougatoo+jlink环境搭建 一 工具的安装 第一步:安装gcc编译工具 yagarto-bu-2.21_gcc-4.6.2-c-C++_nl-1.19.0_g ...

  7. 解决:j-link V8下载器灯不亮,无法正常烧写固件

    昨天j-link V8下载仿真F4正常,下午下载仿真F1后吃了个饭,然后它的灯就不亮了...按照这个例程弄了好几遍都不行,http://www.cr173.com/soft/98542.html,卡在 ...

  8. Exynos 4412

    Exynos 4412采用了三星最新的32nm HKMG工艺,是三星的第一款四核处理器 1.启动 有时间再接着写……

  9. Exynos 4412 Uboot源码解析

    原文地址:http://www.cnblogs.com/jacklu/p/6226330.html Exynos 4412 Uboot的汇编代码就不贴了,没有的可以私信我. 这是我当时阅读代码时的思维 ...

随机推荐

  1. c#生成缩略图

    publicstaticvoidGenThumbnail(Image imageFrom,stringpathImageTo,intwidth,intheight)         {         ...

  2. Oracle迁移MySQL笔记

    1,--在oracle代表注释 ,mysql/* */,# 2,|| oracle里面是表示连接符号,比如 A||B 那么就是AB 3,databaseLink创建好之后,比如名字为db_link_b ...

  3. ubuntu开机遇到-您的当前网络有.local域,我们不建议这样做而且这与AVAHI网络服务探测不兼容。该服务已被禁用

    解决 http://askubuntu.com/questions/339702/network-service-discovery-disabled-what-does-this-mean-for- ...

  4. Tomcat下部署多个项目

    转载地址:http://blog.csdn.net/philosophyatmath/article/details/30246631 同一端口号的多个项目部署     添加: <Context ...

  5. Android应用框架浅析

    http://blog.csdn.net/yanbober/article/category/3206943 Android应用层View绘制流程与源码分析   http://blog.csdn.ne ...

  6. 九度OJ1081

    这道题又一次更新了我的世界观与人生观Orz……最开始我是设计了一个O(n)的递推算法,本以为可以轻松AC没想到居然TLE了……然后搜了一下题解,才发现这道题要用矩阵的思想去做. 通过对题目的分析,我们 ...

  7. HDU1001 关于累加公式的隐性类型转换

    HDU 1001就卡了. 受到小白的启发遇到这样的循环题目直接转化成公式求解以优化时间.但是!我就是过不了! 问题代码: #include<stdio.h> int main() { in ...

  8. 2013 ACM 通化邀请赛D.D-City 并查集

    点击打开链接 D.D-City Description Luxer is a really bad guy. He destroys everything he met. One day Luxer ...

  9. VS2010 Win32项目的源码位置设置

    在VS2010中,我们可以创建一个Win32项目用来编辑C或CPP代码,项目建好后我们向项目文件夹添加代码文件,并调试能正常运行. 有时候我们会发现项目目录下没有源文件,这种情况下,可以通过设置“输出 ...

  10. ARM开发板挂载U盘

    ARM开发板运行Linux系统后,插入U盘,通过串口打印系统识别到U盘如下: 系统识别U盘盘符为sda4 那么需要挂载后才能操作U盘:挂载命令 mount -t vfat /dev/sda4 /mnt ...