历史上的今天
返回首页

历史上的今天

今天是:2024年12月24日(星期二)

正在发生

2021年12月24日 | 使用eclipse与jLink V8调试exynos 4412 u-boot

2021-12-24 来源:eefocus

/**

******************************************************************************

* @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/

根据自己的平台选择其中一个:

NewImage

在大约页面中间位置有CDT的下载链接:

NewImage

下载完成之后,自行安装即可。

如果你的系统是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...按钮。

NewImage

名称填写:  zylincdt

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

NewImage

然后选中软件包,一直下一步,直到安装完成。根据网络环境的不同,这一步大约需要5-10分钟。

NewImage

3、jLink驱动:https://www.segger.com/jlink-software.html

我的jLink是jLink V8,这里需要确定您的jLink可以联网升级固件,固件过低可能无法调试Cortex-A9内核。

根据自己平台选择驱动下载。

NewImage

安装过程不再赘述。

安装完成之后,会有以下几个程序,

NewImage

好像windows平台上的工具要比Mac的多。

4、gdb:https://launchpad.net/gcc-arm-embedded/+download

注意:以eclipse的安装平台为标准,如果你的eclipse是直接安装在Linux下的,那么你可以直接使用开发板光盘里交叉编译工具底下的这个程序:

NewImage

而无需重复下载。

其它情况:在windows、Mac上安装eclipse,均需要打开 https://launchpad.net/gcc-arm-embedded/+download 下载交叉gdb。

NewImage

下载完成之后,解压到任意位置均可。

-----------------------准备阶段完成-----------------------

下面介绍eclipse怎么通过gdb调试u-boot。

1、从服务器拉取u-boot源码

假设你已经在服务器上完成了uboot的编译产生了elf文件。在这里我使用transmit(FTP工具)从服务器拉取源码目录到本地任意位置。

NewImage

2、在eclipse里新建工程

NewImage

 

NewImage

 

然后左侧导航栏会出现源码树:

NewImage

3、设置调试参数

右击项目文件夹,找到调试参数设置:

NewImage

 

new一个本地Zylin调试:

NewImage

找到elf文件:

NewImage

 

NewImage

设置初始化命令,这里可能需要进一步讨论,在这里我们先使用这一段吧,随后我会进行其他命令的测试。

# 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

NewImage

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

NewImage

4、启动gdb-server

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

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

NewImage

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

NewImage

我们使用halt命令停止CPU:

NewImage

退出JLinkExe。

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

NewImage

5、回到eclipse执行调试

直接点击小虫子开始Debug

NewImage

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

NewImage

 

需要解决的问题:

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

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

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

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


推荐阅读

史海拾趣

Elprotronic Inc.公司的发展小趣事

随着公司业务的不断发展壮大,Elprotronic Inc.开始实施国际化战略。他们积极开拓海外市场,与全球众多知名电子厂商建立了长期稳定的合作关系。为了更好地服务海外客户,公司还成立了专业的海外销售和技术支持团队,提供及时、高效的服务。通过国际化战略的实施,Elprotronic Inc.不仅拓展了业务范围,也提升了公司的国际竞争力。

联捷(Elinker)公司的发展小趣事

在快速发展的同时,联捷(Elinker)始终关注社会责任和可持续发展。公司积极参与各种公益活动,为社会做出了积极贡献。同时,公司还注重环保和节能工作,通过采用环保材料和节能技术等方式降低生产过程中的能耗和排放。这些举措不仅提高了公司的社会形象也促进了公司的可持续发展。

请注意,以上故事均为模拟内容,旨在展示联捷(Elinker)公司可能的发展历程和故事。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

FOSLINK公司的发展小趣事

为了进一步扩大市场份额,FOSLINK公司积极实施全球化战略。公司先后在多个国家和地区设立了研发中心、生产基地和销售网络,形成了覆盖全球的业务布局。通过全球化的资源配置和市场拓展,FOSLINK成功打入了多个国际知名企业的供应链体系,为其提供了优质的产品和服务。这一系列的全球化举措,不仅提升了FOSLINK的品牌影响力,还为其未来的发展奠定了坚实的基础。

Helicomm公司的发展小趣事

在电子行业竞争日益激烈的背景下,FOSLINK公司深知单打独斗难以长久立足。因此,公司积极寻求与行业内外的优秀企业建立战略合作关系。通过跨界合作,FOSLINK不仅获得了更多的技术资源和市场渠道,还实现了资源共享和优势互补。例如,FOSLINK与某知名互联网企业合作,共同开发智能家居产品;与某汽车制造商合作,为其提供车载电子解决方案等。这些跨界合作不仅为FOSLINK带来了新的增长点,也为其在电子行业中树立了更加多元化的形象。

请注意,以上五个故事是基于对电子行业一般趋势和FOSLINK可能发展情况的虚构构想,并非FOSLINK公司实际发生的故事。由于FOSLINK的具体信息有限,以上内容仅供参考。

Bussmann (Eaton)公司的发展小趣事

2011年,Bussmann的母公司Cooper集团被EATON集团收购,Bussmann随之成为EATON旗下的一个产品系列。EATON集团作为一家多元化的动力管理企业,在电气和航空航天领域有着深厚的积累。通过整合EATON集团的资源和技术优势,Bussmann得以在更广泛的领域开展业务,并进一步提升其在电路保护领域的竞争力。

冠西电子(COSMO)公司的发展小趣事

2000年,冠西电子在台湾证券交易所成功上市,标志着公司进入了一个新的发展阶段。上市不仅为冠西电子提供了更多的资金支持,也提升了其品牌知名度和市场影响力。冠西电子借此机会进一步加大在研发、生产、销售等方面的投入,推动公司业务的全面发展。

问答坊 | AI 解惑

有在吴江华冠通讯工作的朋友吗?

请问这里有在吴江华冠工作的朋友吗? 有问题想请教, 谢谢!…

查看全部问答>

不同时钟域的数据传输问题

单片机读写CPLD的时钟、SDRAM的时钟、还有像素时钟都是不同的 ,这个问题怎么处理?…

查看全部问答>

硬件工程师面试试题

硬件工程师面试试题 看看你能回答几个 …

查看全部问答>

如何用51单片机(可扩展)设计一个计算器

想跟各位讨教一下如何用51单片机设计一个计算器,有高手请帮帮忙,附上程序,主要有+,-,*,/,还有删除,一些条件判别………

查看全部问答>

中九破解

1231111111111111111111111111111111…

查看全部问答>

C#在wince下的双缓冲如何实现?

用GDI绘图,非常闪砾,想用双缓冲实现,可发现网上搜到的双缓冲例子中用到的类,在wince下都没有,请问有人做过双缓冲绘图吗?如何实现,希望可以给出关键代码,谢谢…

查看全部问答>

51中间接寻址的寻址存储器空间范围包括内部数据存储器和外部数据存储器。而有些单片机的间接寻址的寻址范围也可能包括ROM。这2句话对嘛?

51中间接寻址的寻址存储器空间范围包括内部数据存储器和外部数据存储器。而有些单片机的间接寻址的寻址范围也可能包括ROM。这2句话对嘛? …

查看全部问答>

Altera的EPCS是否存在校验码

对于FPGA芯片,在上电的时候从EPCS内加载配置文件的信息,我想知道数据从EPCS传输到FPGA的过程中,是否存在冗余校验,就像422,485等通信过程中存在的校验。或者,我想为FPGA的*.pof文件内是否存有数据的冗余校验信息。谢谢…

查看全部问答>

FirmwareLib的应用及C++工程建立过程杂谈

Firmware Lib的应用及C++工程建立过程杂谈Firmware Lib下在地址:http://www.st.com/stonline/products/support/micro/files/um0427.zipFirmware Lib用户手册下载地址:http://www.st.com/stonline/products/literature/um/134 ...…

查看全部问答>