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調試環境使用篇。