纯Linux下的 ARM裸机调试环境搭建(GDB + JLink) | 少将全栈
  • 欢迎访问少将全栈,学会感恩,乐于付出,珍惜缘份,成就彼此、推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。
  • 吐槽,投稿,删稿,交个朋友
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏少将全栈吧

纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)

点滴 admin 11年前 (2014-03-11) 4256次浏览 已收录 扫描二维码

一直想摆脱windows环境,在纯linux下进行arm裸机开发,但是由于一直不知道JLink如何在linux下运行和配置,一直无法进行下去。
以前都是windows+AXD调试。包括本人用的FL2440开发板和JLink调试器也没有提供在linux调试的文档。前些天由于想研究下U-
BOOT的源代码,不得不在linux下编译,就google到了众多大牛的帖子,且找到了JLink的官方linux版。综合各位大牛的经验,最终成功
的在纯linux环境下调试了U-BOOT和裸机程序。感谢各位前辈的帖子,很遗憾很多我已经找不到原帖地址了。

笔者的安装环境:

飞凌的FL2440开发板

JLink V8调试器

Ubuntu 10.04

搭建ARM调试环境的大概步骤:

0)串口通讯的配置

1)JLink V8 Linux驱动的安装

2)交叉工具链的安装

3) gdb初始化脚本的编写

4) 启动JLink和gdbServer调试

0)串口通讯的配置

这个网上都有,我不多说了。用于开发板和宿主机通讯。

1)JLink V8 Linux驱动的安装

去官网 http://www.segger.com/cms/jlink-software.html

下面有个Beta software version for Linux版本下载

点击下载,弹出页面要序列号,可以乱输。下到JLink_Linux_V422.tgz压缩包。解压之。

可以参考压缩包内的README文件进行配置。

安装依赖usb库

apt-get -update

apt-get -install libusb

cp libjlinkarm.so.* /usr/lib

– Place the rule file “45-jlink.rules” provided with this J-Link software package

at /etc/udev/rules.d/

./start 就可以运行JLink了。

连接JLink和开发板后,可以使用help或?查看帮助。loadbin命令加载二进制代码到内存了。

基本上这样就可以完成一些调试工作了,但是要做到源码级别的调试,还要用的GDB了。

具体有点忘了。

可能要重建软连接可以参考:http://eminem112.blog.163.com/blog/static/62815953201092513943796/

(以下摘自上面链接)4:修改一些配置

cdJlink
ln -s libjlinkarm.so.0.0 libjlinkarm.so.0
ln -s libjlinkarm.so.0.0 libjlinkarm.so
5:复制相关库到用户库中
复制45-jlink.rules到/etc/udev/rules.d/
mv libjlinkarm.so.0.0 /usr/lib/
mv libjlinkarm.so.0 /usr/lib/
mv libjlinkarm.so /usr/lib/
6:执行./start
如果出现
libreadline.so.5 not found,可以查看/lib/下的有可能有libreadline.so.6 ,可以做一个软链接

ln -s /lib/libreadline.so.6libreadline.so.5

2)交叉工具链的安装

我安装的是U-BOOT官网提供的ELDK4.2

http://www.denx.de/wiki/view/DULG/ELDKAvailability

下到一个IOS文件。挂载,参照官网上ELDK的文档安装之。设置好环境变量。

3)gdb初始化脚本的编写

参考gdb的文档,JLinkGdbServer的文档。

可知,在调试之前,必须先进行板子的初始化。才能进行之后的调试。

参考这位牛人的GDB脚本,顺利完成了S3C2440初始化。http://blogold.chinaunix.net/u3/97851/showart_2291292.html

最后感谢这些牛人的无私奉献。自己写文档才发现,真累!

喜欢 (0)
[🍬谢谢你请我吃糖果🍬🍬~]
分享 (0)
关于作者:
少将,关注Web全栈开发、项目管理,持续不断的学习、努力成为一个更棒的开发,做最好的自己,让世界因你不同。