使用eclipse與jLink V8調試exynos 4412 u-boot

/**html

******************************************************************************linux

* @author     Maoxiao Huubuntu

* @version    V1.0.1windows

* @date        Dec-2014服務器

******************************************************************************網絡

* < COPYRIGHT 2014 ISE of SHANDONG UNIVERSITY >eclipse

*******************************************************************************ssh

**/工具

 

首先說一下我實驗室的網絡環境:一臺搭載ubuntu系統的公用Linux服務器,數臺客戶機使用ssh鏈接到服務器。測試

我我的的開發環境:使用Mac OS X系統,ssh遠程鏈接Linux服務器。USB轉串鏈接4412開發板,USB經jLink鏈接開發板,暫時別無其它線纜鏈接。

 

這裏我就以Mac系統爲例,說一下軟硬件環境搭建,windows與Linux下搭建方法基本相同。

 

首先準備軟件包:

一、eclipse CDT:http://www.eclipse.org/downloads/

根據本身的平臺選擇其中一個:

NewImage

在大約頁面中間位置有CDT的下載連接:

NewImage

下載完成以後,自行安裝便可。

若是你的系統是Mac那麼你可能不須要安裝jre jdk等環境,由於系統已經給你默認安裝好了,

若是你的系統是linux,可能會提示eclipse沒法打開,須要安裝jre jdk,終端執行命令:

sudo apt-get install openjdk-7-jre openjdk-7-jdk

二、eclipse CDT zylincdt插件

打開eclipse CDT,選擇help->Install New Software

在彈出的對話框,點擊Add...按鈕。

NewImage

名稱填寫:  zylincdt

URL填寫:  http://opensource.zylin.com/zylincdt

NewImage

而後選中軟件包,一直下一步,直到安裝完成。根據網絡環境的不一樣,這一步大約須要5-10分鐘。

NewImage

三、jLink驅動:https://www.segger.com/jlink-software.html

個人jLink是jLink V8,這裏須要肯定您的jLink能夠聯網升級固件,固件太低可能沒法調試Cortex-A9內核。

根據本身平臺選擇驅動下載。

NewImage

安裝過程再也不贅述。

安裝完成以後,會有如下幾個程序,

NewImage

好像windows平臺上的工具要比Mac的多。

四、gdb:https://launchpad.net/gcc-arm-embedded/+download

注意:以eclipse的安裝平臺爲標準,若是你的eclipse是直接安裝在Linux下的,那麼你能夠直接使用開發板光盤裏交叉編譯工具底下的這個程序:

NewImage

而無需重複下載。

其它狀況:在windows、Mac上安裝eclipse,均須要打開 https://launchpad.net/gcc-arm-embedded/+download 下載交叉gdb。

NewImage

下載完成以後,解壓到任意位置都可。

-----------------------準備階段完成-----------------------

下面介紹eclipse怎麼經過gdb調試u-boot。

一、從服務器拉取u-boot源碼

假設你已經在服務器上完成了uboot的編譯產生了elf文件。在這裏我使用transmit(FTP工具)從服務器拉取源碼目錄到本地任意位置。

NewImage

二、在eclipse裏新建工程

NewImage

 

NewImage

 

而後左側導航欄會出現源碼樹:

NewImage

三、設置調試參數

右擊項目文件夾,找到調試參數設置:

NewImage

 

new一個本地Zylin調試:

NewImage

找到elf文件:

NewImage

 

NewImage

設置初始化命令,這裏可能須要進一步討論,在這裏咱們先使用這一段吧,隨後我會進行其餘命令的測試。

# connect to the J-Link gdb server
target remote localhost:2331
# Reset the target
monitor reset
monitor sleep 10
# 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
load
break _start

NewImage

還須要設置一下源碼目錄,不然調試時候會提示找不到源碼文件:

NewImage

四、啓動gdb-server

注意:每次調試以前須要保證4412的CPU處於halt狀態。

方法:板子啓動後,uboot讀秒結束以前按任意鍵使4412進入uboot界面,而不是啓動內核,啓動內核後jlink可能沒法使4412暫停住。

NewImage

打開JLinkExe,CPU會被成功識別,這一步相當重要,不能識別CPU的話多是因爲jlink固件版本太低,或者硬件鏈接有問題。

NewImage

咱們使用halt命令中止CPU:

NewImage

退出JLinkExe。

打開JLinkGDBServer,成功的話,會顯示等待gdb鏈接:

NewImage

五、回到eclipse執行調試

直接點擊小蟲子開始Debug

NewImage

寄存器的值被成功讀出,能夠進行單步調試了,enjoy。

NewImage

 

須要解決的問題:

一、在這裏我沒有認真研究gdb的初始化命令,如今只是能夠運行,還須要進行進一步修改。

二、代碼的運行地址好像有問題,gdb-server老是提示沒法讀取某些位置,等檢查一下源碼,重定位代碼後再試。

三、可能須要在調試階段對CPU進行降頻處理,不然jlink極可能會停不住CPU(經驗判斷)。

四、最擔憂的問題仍是jlink v8可否完美支持A9的調試,但至今還未發現問題。

相關文章
相關標籤/搜索