名称填写: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 servertarget remote localhost:2331# Reset the targetmonitor resetmonitor sleep 10# Setup GDB for faster downloads#set remote memory-write-packet-size 1024set remote memory-write-packet-size 4096set remote memory-write-packet-size fixedmonitor speed 12000loadbreak _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的调试,但至今还未发现问题。
新闻热点
疑难解答