1. 程式人生 > >arm+linux裸機環境搭建之jlink+eclipse+arm-linux-gdb線上裸調(完結篇)

arm+linux裸機環境搭建之jlink+eclipse+arm-linux-gdb線上裸調(完結篇)

本文用到的jlink外掛在這裡

兩個先決條件:

1、已經成功安裝eclipse,考慮到版本相容問題,不適用redhat6自帶的eclipse。如何安裝,之前的博文已有提及,不再贅述;

2、已經成功,安裝arm-linux-gdb除錯工具,之前的博文也已經安裝完成。

接下來開始搭建除錯環境

考慮到有時候程式出現bug在所難免,所以我們不得不對程式進行除錯,為了更加方便的開發,我們統一使用在linux環境下面對程式進行除錯。

一、硬體連線

1、OK6410目標板電源線、JTAG線、串列埠線分別接好;

2、開啟虛擬機器後,將右下角的usb口、串列埠  connect上;

3、將開發板設定為SD啟動,然後利用我們SD卡中的mmc載入程式對nand flash進行擦除;

4、將開發板設定為nand flash啟動。

第一部分到此完畢。

二、jlink軟體安裝

1、執行命令 tar  zxvf  JLink_Linux_V434a.tgz  並且進入該目錄;

2、然後執行命令 cp -d libjlinkarm.so.4* /usr/lib -f  將庫複製到lib裡面,如下圖示:


3、最後執行  ./JLinkGDBServer  此時會出現正常連線上jlink的提示,並且會顯示ID和ARM11的字樣。

到這裡JLINK這部分完畢,注意要始終保持jlink連線,方便後續除錯。

4、安裝外掛(這一步很關鍵啊)

啟動eclipse,進入下面的介面


進入之後一次按下面的順序,進行設定


最後finish,注意這一步必須要求虛擬機器能夠上網啊,這個必須保證了。安裝外掛是線上安裝的。

三、eclipse工具配置

1、啟動eclipse,進入下面的介面


2、建好工程後,會出現下面的介面:


3、工程建立完畢,接下來就是配置了,上圖


4、然後進入配置介面依次按照圖示順序

A雙擊紅色字型‘1’然後會出來LED Default選項

B點選紅色字型‘2’然後在右邊進行設定

C在下面一個browse那裡選擇你要除錯的檔案,記住一定是elf格式的

D 將Debugger下面的 GDB debugger 改為 arm-linux-gdb

Ecommand裡面的‘initial’command   就要輸入我們的初始化目標板的程式碼了,我是OK6410的程式碼如下

# tiny6410_config
# connect to the J-Link gdb server
target remote localhost:2331
# Set JTAG speed to 30 kHz
monitor endian little
monitor speed 30
# Reset the target
monitor reset
monitor sleep 10
#
# CPU core initialization (to be done by user)
#
# Set the processor mode
monitor reg cpsr = 0xd3
#config MMU
#flush v3/v4 cache
monitor cp15 7, 7, 0, 0 = 0x0
#/* flush v4 TLB */
monitor cp15 8, 7, 0, 0 = 0x0
#disable MMU stuff and caches
monitor cp15 1, 0, 0, 0 =0x1002
#Peri port setup
monitor cp15 15, 2, 0, 4 = 0x70000013
#disable watchdog
monitor MemU32 0x7e004000  =  0x00000000
monitor sleep 10
#disable interrupt
monitor MemU32 0x71200014  =  0x00000000
monitor MemU32 0x71300014  =  0x00000000
monitor MemU32 0x7120000C  =  0x00000000
monitor MemU32 0x7130000C  =  0x00000000
monitor MemU32 0x71200F00  =  0x00000000
monitor MemU32 0x71300F00  =  0x00000000
#set clock 
monitor MemU32 0x7e00f900  =  0x0000801e
monitor MemU32 0x7e00f000  =  0x0000ffff
monitor MemU32 0x7e00f004  =  0x0000ffff
monitor MemU32 0x7e00f020  =  0x01043310
monitor MemU32 0x7e00f00C  =  0xc2150601
monitor MemU32 0x7e00f010  =  0xc2150601
monitor MemU32 0x7e00f024  =  0x00000003
monitor MemU32 0x7e00f014  =  0x00200102
monitor MemU32 0x7e00f018  =  0x00000000
monitor MemU32 0x7e00f01C  =  0x14000007
#config sdram
monitor MemU32 0x7e00f120  =  0x00000008
monitor MemU32 0x7e001004  =  0x00000004
monitor MemU32 0x7e001010  =  0x0000040f
monitor MemU32 0x7e001014  =  0x00000006
monitor MemU32 0x7e001018  =  0x00000001
monitor MemU32 0x7e00101c  =  0x00000002
monitor MemU32 0x7e001020  =  0x00000006
monitor MemU32 0x7e001024  =  0x0000000a
monitor MemU32 0x7e001028  =  0x0000000c
monitor MemU32 0x7e00102c  =  0x0000018f
monitor MemU32 0x7e001030  =  0x0000000c
monitor MemU32 0x7e001034  =  0x00000002
monitor MemU32 0x7e001038  =  0x00000002
monitor MemU32 0x7e00103c  =  0x00000002
monitor MemU32 0x7e001040  =  0x00000002
monitor MemU32 0x7e001044  =  0x00000013
monitor MemU32 0x7e001048  =  0x00000013
monitor MemU32 0x7e00100C  =  0x00010012
monitor MemU32 0x7e00104C  =  0x00000b45
monitor MemU32 0x7e001200  =  0x000150f8
monitor MemU32 0x7e001304  =  0x00000000
monitor MemU32 0x7e001008  =  0x000c0000
monitor MemU32 0x7e001008  =  0x00000000
monitor MemU32 0x7e001008  =  0x00040000
monitor MemU32 0x7e001008  =  0x00040000
monitor MemU32 0x7e001008  =  0x000a0000
monitor MemU32 0x7e001008  =  0x00080032
monitor MemU32 0x7e001004  =  0x00000000
# 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
break _start
load

具體程式碼的意思現在還不瞭解,先用著。

配置完成後選擇debug。

最後,在桌面上建立一個軟連結吧!  ln -s /opt/eclipse/eclipse    /home/xiaobing/Desktop

四、進行除錯

接下來就可以進行除錯了,接下來大家就盡情發揮吧~~~  有不懂的可以詳談。。。。