/**html
******************************************************************************linux
* @author Maoxiao Huubuntu
* @version V1.0.1windows
* @date Dec-2014服务器
******************************************************************************网络
* < COPYRIGHT 2014 ISE of SHANDONG UNIVERSITY >eclipse
*******************************************************************************ssh
**/工具
首先说一下我实验室的网络环境:一台搭载ubuntu系统的公用Linux服务器,数台客户机使用ssh链接到服务器。测试
我我的的开发环境:使用Mac OS X系统,ssh远程链接Linux服务器。USB转串链接4412开发板,USB经jLink链接开发板,暂时别无其它线缆链接。
这里我就以Mac系统为例,说一下软硬件环境搭建,windows与Linux下搭建方法基本相同。
首先准备软件包:
一、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
二、eclipse CDT zylincdt插件
打开eclipse CDT,选择help->Install New Software
在弹出的对话框,点击Add...按钮。
名称填写: zylincdt
URL填写: http://opensource.zylin.com/zylincdt
而后选中软件包,一直下一步,直到安装完成。根据网络环境的不一样,这一步大约须要5-10分钟。
三、jLink驱动:https://www.segger.com/jlink-software.html
个人jLink是jLink V8,这里须要肯定您的jLink能够联网升级固件,固件太低可能没法调试Cortex-A9内核。
根据本身平台选择驱动下载。
安装过程再也不赘述。
安装完成以后,会有如下几个程序,
好像windows平台上的工具要比Mac的多。
四、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。
一、从服务器拉取u-boot源码
假设你已经在服务器上完成了uboot的编译产生了elf文件。在这里我使用transmit(FTP工具)从服务器拉取源码目录到本地任意位置。
二、在eclipse里新建工程
而后左侧导航栏会出现源码树:
三、设置调试参数
右击项目文件夹,找到调试参数设置:
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
还须要设置一下源码目录,不然调试时候会提示找不到源码文件:
四、启动gdb-server
注意:每次调试以前须要保证4412的CPU处于halt状态。
方法:板子启动后,uboot读秒结束以前按任意键使4412进入uboot界面,而不是启动内核,启动内核后jlink可能没法使4412暂停住。
打开JLinkExe,CPU会被成功识别,这一步相当重要,不能识别CPU的话多是因为jlink固件版本太低,或者硬件链接有问题。
咱们使用halt命令中止CPU:
退出JLinkExe。
打开JLinkGDBServer,成功的话,会显示等待gdb链接:
五、回到eclipse执行调试
直接点击小虫子开始Debug
寄存器的值被成功读出,能够进行单步调试了,enjoy。
须要解决的问题:
一、在这里我没有认真研究gdb的初始化命令,如今只是能够运行,还须要进行进一步修改。
二、代码的运行地址好像有问题,gdb-server老是提示没法读取某些位置,等检查一下源码,重定位代码后再试。
三、可能须要在调试阶段对CPU进行降频处理,不然jlink极可能会停不住CPU(经验判断)。
四、最担忧的问题仍是jlink v8可否完美支持A9的调试,但至今还未发现问题。