Eclipse集成開發環境不僅可以編譯裸機工程,還可以調試整個裸機工程,這樣當程序異常的時候,可以更加有效的進行修改。接下來就是搭建整個eclipse集成環境:這個調試環境的框架如下圖1-1:
圖1-1
從上面的框架圖看到,要實現eclipse在線調試裸機程序,需要安裝的軟件是eclipse+CDT、JLink驅動、GDB調試軟件,需要連接的硬件是JLink連接pc機和開發板。
注意:為了避免干擾,最好對NandFlash進行格式化:圖1-2:
然后選擇y:
圖1-2
格式化NandFlash不是必須的,只是為了更好確定因素。上面是格式化的過程。格式好了之后重新設置開發板從NandFlash啟動。
安裝GDB Server:
在配套資料的ARM-Tools文件夾里有GDB軟件:圖1-3:
圖1-3
arm-linux-gdb:
1.解壓命令:
tar -zxvf arm-linux-gdb-7.5.tar.gz,然后進入該文件夾,執行build-all:./build-all進行安裝:圖1-4:
圖1-4
可以打開剛才運行的sh腳本看看做了哪些工作:圖1-5:
#/bin/sh
rm -fr gdb-7.5
rm -r /opt/arm-linux-gdb/
tar xvzf gdb-7.5.tar.gz
cd gdb-7.5
./configure --target=arm-linux --prefix=/opt/arm-linux-gdb/ -v
make && make install
cd /opt/arm-linux-gdb/
圖1-5
該腳本的功能是首先強制刪掉當前目錄gdb-7.5,刪掉/opt/arm-linux-gdb/文件夾。確保環境里沒有干擾因素。然后解壓當前目錄里的gdb-7.5.tar.gz。然后進入解壓生成的文件夾gdb-7.5。接著進行gdb配置,執行./configure --target=arm-linux --prefix=/opt/arm-linux-gdb/ -v產生Makefile。接著就是執行make進行編譯,最后執行make install進行安裝。安裝好了之后切換到arm-linux-gdb的目錄。
解壓安裝完成之后,會在/opt/的目錄下生成GDB的安裝文件,在該文件夾的bin文件夾里的arm-linux-gdb就是調試工具:圖1-6:
圖1-6
上面完成了arm-linux-gdb的安裝,還需要對該工具進行環境變量的配置,才方便使用。打開/etc/profile配置文件:vim /etc/profile。在最后arm-linux-gcc環境的配置的前面加上:
export PATH=$PATH:/opt/arm-linux-gdb/bin。注意必須是在arm-linux-gcc的前面配置。這是因為工具鏈里面也有arm-linux-gdb工具。為了確保使用的是現在安裝的arm-linux-gdb。圖1-7:
該版本是6.8的:
圖1-7
測試一下安裝是否成功:在命令行執行:arm-linux-gdb,看到剛才安裝的gdb是7.5版本的。圖1-8:
圖1-8
安裝JLink軟件:
先解壓:tar -zxvf JLink_Linux_V434a.tgz。圖1-9:
圖1-9
解壓完成時候進入該文件夾:圖1-10:
圖1-10
接下來就是把對應的文件拷貝到對應的文件夾。相當于安裝:圖1-11:
圖1-11
由于我前面已經裝了一次,所以直接覆蓋即可。這樣就安裝好了JLink了。從前面知道,當安裝好了JLink之后,就可以來連接開發板了。下面進行測試。
首先是給開發板上電,圖2-1:
圖2-1
給開發板上電后,把JLink接到開發板的JLink接口:圖2-2:
圖2-2
這樣硬件就連接好了。接下來就是把JLink從windows 7拉到虛擬機:
在vbox虛擬機的右下角的usb口里找到JLink,把它從windows拉到虛擬機:圖2-3:
圖2-3
然后運行一下JLinkGDBServer,看看能夠檢測到內核:圖2-4:
圖2-4
上面看到JLink成功連接了開發板,檢測到了內核ARM11.
安裝eclipse:
所謂的安裝就是解壓:tar -zxvf eclipse-cpp-helios-SR2-linux-gtk.tar.gz -C /usr/local/。完成如下圖2-5:
圖2-5
解壓完成后就是等于安裝完成。接下來運行eclipse,第一次運行的時候會出現指定默認工程路徑的選項,我選的是是:圖2-6:
cd /usr/local/eclipse
[root@FORFISH eclipse]# ./eclipse
圖2-6
當然在上面中你也可以選擇你要保存工程的目錄。然后點擊OK即可。這樣就啟動了eclipse:圖2-7:
圖2-7
這要eclipse就安裝好了。這只是簡單的安裝好了。為了eclipse能夠協調JLink,arm-linux-gdb等工具來方便裸機開發工作。必須安裝一個插件。所以需要虛擬機電腦可以連接網絡。
安裝插件CDT:
打開eclipse后,選擇工具欄的Help,在下拉菜單選擇Install New Software:會出現Install窗口。圖2-8:
圖2-8
然后在Work with框里輸入插件的位置:http://opensource.zylin.com/zylincdt。輸入完成之后回車,會看到要下載的插件:圖2-9:
圖2-9
然后選中插件點擊Next:圖2-10:
圖2-10
再點擊Next:圖2-11:
圖2-11
接著選中我接受協議,然后點擊Finish,就進行安裝了:圖2-12:
圖2-12
安裝圖2-13:
圖2-13
安裝好了執行需要重啟:圖2-14,選擇Restart Now。
圖2-14
這樣就安裝好了插件。
Eclipse裸機調試:
測試eclipse裸機調試的代碼在:/home/samba/OK6410_bare,所以直接導入eclipse即可。選擇eclipse的工具欄File->New->Makefile Project with Existing Code.圖3-1:
圖3-1
在新打開的窗口里選擇Browse,找到已經存在工程的目錄:然后點右下角的OK:圖3-2:
圖3-2
回到原來的界面,點擊Finish即可:圖3-3:
圖3-3
這樣就把一個工程導入到了eclipse里面。圖3-4:
圖3-4
上面成功導入一個工程。
接下來就是編譯了:
編譯也很簡單,用鼠標,選擇該工程名字,右鍵,然后選擇Build project,進行編譯:圖3-5:
圖3-5
其實eclipse的編譯是調用了工程里面的Makefile文件。
上面就編譯好了,接下來就是利用剛剛安裝的CDT插件來調試該工程。調試之前需要配置一下調試參數。
參數設置:
首先是點擊eclipse的工具欄下面有一個像蟲子的圖標:點擊它的下拉箭頭之后會看見選項,選擇Debug Configurations。圖3-6:
圖3-6
點擊之后會出現下面的界面:圖3-7:
圖3-7
然后雙擊Zylin Embedded debug (Native),會生成一個默認的調試配置,名字是OK6410_bare Default,會出現下面的窗口。圖3-8:
圖3-8
然后在C/C++ Application里選擇Browse,找到要調試的過程,然后選擇過程里的elf文件。點擊OK圖3-9:
圖3-9
然后切換到Debugger選項窗口。把默認停在main函數的選項去掉。把GDB debugger改為:arm-linux-gdb:圖3-10:
改后:
圖3-10
無論調試那一款開發板,在裸機調試之前都必須會開發板進行初始化,這里,初始化的命令,我使用的是飛凌標配的OK6410的,它的名字叫init-6410:圖3-11:
圖3-11
Init-6410的內容:
# 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
把這些內容拷貝到Commands窗口里,然后點擊Apply,再點擊Close關閉窗口:圖3-12:
圖3-12
到這里才配置好了整個工程的工作。呼呼……接下來運行一下。
在啟動調試之前,確保JLInk成功連接開發板:圖4-1:
圖4-1
然后再次點擊:Debug Configuretions:圖4-2。
圖4-2
雙擊配置工程的名字:OK6410_bare Defunct:如果裸機調試啟動成功的話,eclipse會自動跳轉到Debug模式:圖4-3:
圖4-3
第一次界面有點亂,可以自己調整:調整后的界面:圖4-4:
圖4-4
可以看見界面下面紅黑交替的就是在Conmands配置的,初始化板子的硬件平臺的。接下來就可以真正地進行裸機單步調試了。
調試:
在菜單欄的Run里有各種調試命令:圖5-1:
圖5-1
可以看到單步調試可以按F5(進入函數調試),F6(不進入函數)等。
按下F5:進入reset函數,圖5-2:
在按F5,進入set_svc函數:圖5-3:
圖5-3
在運行的過程中,可以查看寄存器,參數等信息的變化:圖5-4:
圖5-4
轉化為16進制的:選中要轉換的參數,右鍵,選擇Format->Hexadecimal.圖5-5:
圖5-5
上面就實現了eclipse裸機調試工程了。當完成調試之后,不要直接關掉eclipse,先關掉調試,紅色方塊。因為這樣,當你需要在再次調試的時候,直接選擇調試圖標,再選擇調試工程即可:圖5-6:
圖5-6
點擊上面的調試工程名就可以實現調試了。不用才去配置。到這里,一個簡單的工程的調試操作完成了。看是一個簡單的過程,做個筆記也做了半天。菜鳥加油。
接下來就是試一試直接點擊調試里的工程名:正確啟動圖6-1:
圖6-1
接下來試著跳轉到light_led函數去點燈:圖6-2:
這一次為了看到效果,把mov r0,#0xe改為mov r0,#0x3.
還沒運行這一句之前:
圖6-2
運行之后:
圖6-3
記得退出按:
最后就是,eclipse快捷方式的創建,因為前面老是要經過命令行去啟動eclipse,有點煩:創建的過程如下:圖6-4:
圖6-4
如上,鼠標右鍵,選擇Create Launcher..,會出現:圖6-5:
圖6-5
填寫好信息,在Command的Browse里選擇你自己的eclipse可執行文件:圖6-6:
圖6-6
然后點擊Open,得到下圖6-5:
圖6-5
最后點擊OK,這樣在桌面就多了一個圖標,這就是eclipse的快捷方式。直接雙擊就可以打開eclipse軟件:圖6-6:
圖6-6
今天的筆記到此了。明天繼續。
推薦閱讀最新更新時間:2025-06-07 23:47

