名稱填寫: zylincdt
URL填寫: http://opensource.zylin.com/zylincdt
然後選中軟件包,一直下一步,直到安裝完成。根據網絡環境的不同,這一步大約需要5-10分鐘。 3、jLink驅動:https://www.segger.com/jlink-software.html 我的jLink是jLink V8,這裡需要確定您的jLink可以聯網升級固件,固件過低可能無法調試Cortex-A9內核。 根據自己平台選擇驅動下載。 安裝過程不再贅述。 安裝完成之後,會有以下幾個程序, 好像windows平台上的工具要比Mac的多。 4、gdb:https://launchpad.net/gcc-arm-embedded/+download 注意:以eclipse的安裝平台為標准,如果你的eclipse是直接安裝在Linux下的,那麼你可以直接使用開發板光盤裡交叉編譯工具底下的這個程序: 而無需重復下載。 其它情況:在windows、Mac上安裝eclipse,均需要打開 https://launchpad.net/gcc-arm-embedded/+download 下載交叉gdb。 下載完成之後,解壓到任意位置均可。 -----------------------准備階段完成----------------------- 下面介紹eclipse怎麼通過gdb調試u-boot。 1、從服務器拉取u-boot源碼 假設你已經在服務器上完成了uboot的編譯產生了elf文件。在這裡我使用transmit(FTP工具)從服務器拉取源碼目錄到本地任意位置。 2、在eclipse裡新建工程 然後左側導航欄會出現源碼樹: 3、設置調試參數 右擊項目文件夾,找到調試參數設置: new一個本地Zylin調試: 找到elf文件: 設置初始化命令,這裡可能需要進一步討論,在這裡我們先使用這一段吧,隨後我會進行其他命令的測試。# 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
還需要設置一下源碼目錄,否則調試時候會提示找不到源碼文件:
4、啟動gdb-server
注意:每次調試之前需要保證4412的CPU處於halt狀態。
方法:板子啟動後,uboot讀秒結束之前按任意鍵使4412進入uboot界面,而不是啟動內核,啟動內核後jlink可能無法使4412暫停住。
打開JLinkExe,CPU會被成功識別,這一步至關重要,不能識別CPU的話可能是由於jlink固件版本過低,或者硬件連接有問題。
我們使用halt命令停止CPU:
退出JLinkExe。
打開JLinkGDBServer,成功的話,會顯示等待gdb連接:
5、回到eclipse執行調試
直接點擊小蟲子開始Debug
寄存器的值被成功讀出,可以進行單步調試了,enjoy。
需要解決的問題:
1、在這裡我沒有認真研究gdb的初始化命令,現在只是可以運行,還需要進行進一步修改。
2、代碼的運行地址好像有問題,gdb-server總是提示無法讀取某些位置,等檢查一下源碼,重定位代碼後再試。
3、可能需要在調試階段對CPU進行降頻處理,否則jlink很可能會停不住CPU(經驗判斷)。
4、最擔心的問題還是jlink v8能否完美支持A9的調試,但至今還未發現問題。