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


/**
******************************************************************************
* @author    Maoxiao Hu
* @version   V1.0.1
* @date       Dec-2014
******************************************************************************
* < COPYRIGHT 2014 ISE of SHANDONG UNIVERSITY >
*******************************************************************************
**/
 
首先說一下我實驗室的網絡環境:一台搭載ubuntu系統的公用Linux服務器,數台客戶機使用ssh連接到服務器。
我個人的開發環境:使用Mac OS X系統,ssh遠程連接Linux服務器。USB轉串連接4412開發板,USB經jLink連接開發板,暫時別無其它線纜連接。
 
這里我就以Mac系統為例,說一下軟硬件環境搭建,windows與Linux下搭建方法基本相同。
 
首先准備軟件包:
1、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
2、eclipse CDT zylincdt插件
打開eclipse CDT,選擇help->Install New Software
在彈出的對話框,點擊Add...按鈕。
NewImage

名稱填寫:  zylincdt

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

NewImage
然后選中軟件包,一直下一步,直到安裝完成。根據網絡環境的不同,這一步大約需要5-10分鍾。
NewImage
3、jLink驅動:https://www.segger.com/jlink-software.html
我的jLink是jLink V8,這里需要確定您的jLink可以聯網升級固件,固件過低可能無法調試Cortex-A9內核。
根據自己平台選擇驅動下載。
NewImage
安裝過程不再贅述。
安裝完成之后,會有以下幾個程序,
NewImage
好像windows平台上的工具要比Mac的多。
4、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。
1、從服務器拉取u-boot源碼
假設你已經在服務器上完成了uboot的編譯產生了elf文件。在這里我使用transmit(FTP工具)從服務器拉取源碼目錄到本地任意位置。
NewImage
2、在eclipse里新建工程
NewImage
 
NewImage
 
然后左側導航欄會出現源碼樹:
NewImage
3、設置調試參數
右擊項目文件夾,找到調試參數設置:
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

4、啟動gdb-server

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

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

NewImage

打開JLinkExe,CPU會被成功識別,這一步至關重要,不能識別CPU的話可能是由於jlink固件版本過低,或者硬件連接有問題。

NewImage

我們使用halt命令停止CPU:

NewImage

退出JLinkExe。

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

NewImage

5、回到eclipse執行調試

直接點擊小蟲子開始Debug

NewImage

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

NewImage

 

需要解決的問題:

1、在這里我沒有認真研究gdb的初始化命令,現在只是可以運行,還需要進行進一步修改。

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

3、可能需要在調試階段對CPU進行降頻處理,否則jlink很可能會停不住CPU(經驗判斷)。

4、最擔心的問題還是jlink v8能否完美支持A9的調試,但至今還未發現問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM