fulinux 2013-03-05
JLink是SEGGER 推出的针对arm处理器的USB调试下载工具,其在Windows环境下的软件支持完善,在Linux下官方给出的beta软件包里有JLinkExe和JLinkGDBServer两个工具。在给项目搭建环境时首先想到的是一款开源的调试代理软件OpenOCD,功能强大但因JLink的二次开发好像还要购买授权,接口不完全开放,因此对JLink的支持可能还不太成熟,在搭建过程中遇到不少问题,最后在我们的项目中就使用GNU的Arm交叉调试器配合JLinkGDBServer进行软件调试,配合RedHat开发的一个集成了gdb 的可视化的调试工具Insight,实现和一些IDE一样的图形化调试效果。本文重点介绍JLink和Insight的安装和配置中遇到的问题,交叉编译工具的安装从略。
0,安装GNU的Arm交叉开发工具链;
1,安装SEGGER官方发布的Linux版本的JLink工具,下载后安装方法见自述文档;
(安装过程中,执行ldconfig更新符号表时提示/sbin/ldconfig.real:/usr/lib/libjlinkarm.so.4 is not a symbolic link错误,忽略,继续安装)
2,下载当前最新的insight-6.8a版本,编译过程如下:
./configure--target=arm-linux --prefix==/opt/insight_arm
(/opt/insight_arm是我的安装目录,可以根据自己情况变化)
make
(其中会报错终止继续编译,这时打开gdb/Makefile,将WERROR_CFLAGS = -Werror的-Werror注释掉,即修改为WERROR_CFLAGS= #-Werror,然后返回软件包根目录执行make,注意gdb目录下的Makefile是编译过程中产生的)
使用超级用户权限执行:
makeinstall
3,链接JLink到主机的USB接口,启动JLinkGDBServer;
4,运行arm-linux-insight如果出现如下错误:
Tk_Init failed: Can't find a usable tk.tclin the following directories:
/opt/insight_arm/share/tk8.4 /opt/insight_arm/lib/tk8.4 /opt/lib/tk8.4/opt/insight_arm/library /opt/library /opt/tk8.4.1/library /tk8.4.1/library
/opt/insight_arm/share/tk8.4/tk.tcl: noevent type or button # or keysym
no event type or button # or keysym
while executing
"bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
...
将/opt/insight_arm/share/tk8.4/listbox.tcl的182行附近和/opt/insight_arm/share/tk8.4/text.tcl的461行附近的如下内容注释掉:
182 #bind Listbox <MouseWheel> {
183 # %W yview scroll [expr {- (%D / 120) * 4}] units
184 #}
5,现在再运行arm-linux-insight,在菜单项Run->Connect to target中配置链接:
6,链接后JLinkGDBServer会在终端打印链接信息,如上图。
7,远程GDB的使用见JLinkGDBServer和Insight调试环境使用篇。