使用AXD除錯u boot

2021-06-20 15:44:05 字數 1704 閱讀 8416

**:

用ads(axd debugger),實現u-boot的源**級除錯(c語言級)

——————————————————————————————————————————————

如果板子沒有網口,在除錯u-boot和uclinux時就沒法用gdb除錯。

這時只能利用串列埠和jtag口進行除錯,linux下可以用bdi這個玩意除錯,可是bdi非常昂貴,不適合大眾需求。

我總結了下,根據我的除錯經驗,可以用ads除錯linux的程式。

開啟axd,按下 alt + l ;或者點system views下command line inte***ce,就可以開啟乙個命令列:

輸入help檢視幫助檔案。

比較有用的命令如:

loadbinary = 將乙個檔案匯入ram   

loadsymbols = 匯入符號表               

setpc = 設定pc暫存器                      

run = 開始執行

ob + 檔名 = 按照批處理檔案執行

所有的命令在gui裡面也是有的,可以利用批處理檔案(ob命令)來免去敲命令和點選單的麻煩,

以除錯u-boot為例,寫乙個批處理檔案放在d盤,檔名為u-boot.txt,內容如下:

loadbinary y:\u-boot-1.1.4\u-boot.bin 0x00100000

loadsymbols y:\u-boot-1.1.4\u-boot

setpc 0x00100000

run開啟axd,按下alt+l,鍵盤輸入:ob d:\u-boot.txt

那麼axd會自動執行批處理檔案內的命令,自動載入u-boot的二進位制**,自動載入符號表,設定指標為0x00100000,並開始執行。

在除錯時,最後自己一步步輸入命令做

loadbinary簡寫lb,只能將二進位制檔案載入到ram中,不能將位址指定到flash中

在loadsymbols之後,等待進度條顯示載入完成,將setpc (pc)指到u-boot.bin的載入位置,即可單步除錯。

這時ads會提示尋找u-boot的入口檔案start.s位址,此時需要手動指定start.s的位置,通常這時可以在linux下建立smaba服務共享,將整個u-boot的資料夾對映成windows下乙個碟符,這樣就可以指定目錄位址了。

在進入c語言**中後,ads還可能出現提示指定board.c、string.c等其他檔案的位址,這都需要手動做。

此後就可以用ads進行c語言級的u-boot原始碼除錯了!

這種方法應該沒問題的,因為我實驗了很多次了,都成功了,這可是偶找了近乙個月才弄清楚的方法..........

同樣,這種方法不知道是否可以用在uclinux上除錯,正在進行試驗。

可以請問為什麼一定要用 ads 編譯呢?用版子的 cross-compiler 不行嗎?還是您希望可以在 ads 中來單步執行、追蹤 u-boot,所以想用 ads來編譯。

必須注意的是因為 gnu 與 arm 的 assembler 有差異, 所以 rvd

無法解釋 .s file, 但是會有 symbol 在 disassemble 視窗內直接

提供 debug. 而 .c source 可以做 source trace, 第一次會要求

為什麼會不知道 source 在哪? 因為 armboot 是在 linux 下面編譯,

所以對應的路徑是參考 linux 下的路徑.

axd 除錯入門

ads1.2是針對arm架構的整體開發環境,包括編輯 編譯 和模擬執行以及除錯。codewarrior整合開發環境 ide 為管理和開發專案提供了簡單多樣化的圖形使用者介面,使用者可以使用ads的codewarrior ide為arm和thumb處理器開發用c c 或者arm組合語言編寫的程式 ad...

使用QEMU除錯u boot

參考 qemu uboot kernel nfs檔案系統 qemu system arm vexpress a9踩坑記 u boot 分析 2 在qemu環境下的除錯 1.安裝交叉編譯和除錯工具 sudo apt get install gcc arm linux gnueabi sudo apt ...

關於AXD除錯的詳細探索

沒有意義,沒有意義,沒有意義。千奇百怪的問題,然後有時過一會又不出現。當bug不可復現的時候,就是你都有某些東西一無所知的時候。從一開始就對這些東西一無所知。迷得很。1.使用擦除成空的flash 3.command line inte ce不顯示sdram時序配置命令 需要先給開發板上電,連線好jt...