久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ARM ADS中的AXD 調(diào)試經(jīng)驗集錦

 創(chuàng)科之龍 2012-01-05

 

1、如何設(shè)置AXD連接的Target,。
在菜單的Configure Target…選項中可以設(shè)置,。一般選擇MutiIce或者ARMUL兩種。

ARMUL是一種ARM的模擬器,。一般的算法或者一些無需和硬件中斷等設(shè)備打交道的程序都可以通過這個進行調(diào)試,。使用上非常簡單。

我們一般上板子進行調(diào)試都是通過MutiICE來進行,。在剛剛安裝了系統(tǒng)的時候,,菜單中沒有MutiICE,需要我們手動添加:

點擊ADD按鈕,,然后在彈出的文件瀏覽中,,選擇“C:\Program Files\ARM\Multi-ICE\Muti-ICE.dll”(默認安裝的話)。然后點擊“確定”,。這樣就把MutiICE的調(diào)試接口安裝上了,。

2、如何保存當(dāng)前的調(diào)試現(xiàn)場,。
我們在調(diào)試過程中,,經(jīng)常需要在不同的地方設(shè)置斷點、設(shè)置Watchpoint或者打開很多source文件,。但是,,一旦我們關(guān)閉了AXD,所有的工 作都白費了,。當(dāng)我們再次打開AXD后,,我們得到的仍然是沒有任何斷點、只打開一個entry文件的調(diào)試環(huán)境,。這里介紹一種方法可以自動保存上一次的調(diào)試現(xiàn) 場(寄存器的數(shù)據(jù)都是保存的),。

        Options->General tab. 這里確認Save and load default sessions 選項 是選中的。然后打開Session File,,確保Rselect Target和Reload images 選項是選中的,。

        在設(shè)置保存后,,我們在關(guān)閉AXD后,再次啟動,,就會自動加載上次的image,,恢復(fù)寄存器了。

        如果需要保存多個現(xiàn)場,,那么就在設(shè)置保存后,,在File菜單中選擇Save Session來進行保存,。不過注意,,保存的路徑中不能 有空格和特殊字符。最好保存在ClearCase上,。在需要恢復(fù)現(xiàn)場的時候,,只需要Load Session就一切OK。你以前辛辛苦苦設(shè)置的斷點,、 Watchpoint全都回來了,。 

3、不能設(shè)置斷點,,怎么辦,?
不能設(shè)置斷點時,我僅知有幾種解決方案,,這里列舉一下:

A:清空CPU的Vector Catch ,。

        在Options->Configure Process..中清除。

B:Run一下,,馬上暫停,。

        這種方式對要求不高的斷點(諸如設(shè)置在APP層中的斷點)比較合適。方便,。

C:清除以前的斷點,。

        一般發(fā)生在Flash調(diào)試的情況。首先清除以前的斷點,,然后才能設(shè)置新的斷點,。

D:命令行 spp vector_catch 0

     其實和A相同。如果寫在開機中,,那么就可以自動排除開機無法設(shè)置斷點問題,。

E:啟動AXD的時候使用—debug這個參數(shù),這樣就可以添加一個自動斷點在Main()上,。 

4,、         如何不reload image就可以重新從頭開始調(diào)試。
很多時候我們需要讓代碼重頭跑起來復(fù)現(xiàn)一個bug,。但是,,一般來說,,都是reload一下。如果image比較小還可以忍受,,但是想660那種16M左右的巨型image,,這種代價就未免太大。這里介紹幾種我所知道的方法,,可以從頭開始調(diào)試:

A:設(shè)置Current寄存器,。

        點擊 打開process register->current 組。設(shè)置pc為0 ,, cpsr為 svc模式下,。關(guān)閉Thumb模式。這時F5即可運行下去,。

B:運行腳本

        這種方式速度更快,,也方便。上上之選,。

setpc 0

sreg cpsr 0xd3 

 5,、         如何無條件跳轉(zhuǎn)?
一般這種事情最好是在同一個函數(shù)中,,某條語句無條件跳到另一條語句上時使用,。最好不要跨函數(shù)使用(否則有堆棧錯誤,很難查的) 

把光標(biāo)定在需要跳轉(zhuǎn)到的代碼上,,右鍵菜單execute->Set Next Statement . 

6,、         AXD有沒有什么輔助工具?
有的,。 

IDA pro ,,非常好的axf解析工具??梢越y(tǒng)計axf文件中的函數(shù),、全局變量、調(diào)用關(guān)系等,。界面非常友好,,代碼界面可以清楚看出函數(shù)引用關(guān)系、變量初始話,、變量引用,、修改的統(tǒng)計。

可以說,,IDA Pro是匯編級的Source insight ,。大家可以在網(wǎng)絡(luò)上下載它的最新版安裝使用。 

7,、 如何調(diào)試需要加載到Flash上的代碼
以下是我的經(jīng)驗:

1,、   在有jTag調(diào)試口的板子上Download一個版本,。

2、   選擇 File->load debug symbols ,。然后選擇CodeWarrior上Release版生成的那個AXF,。

3、 現(xiàn)在就可以調(diào)試Flash上的程序了,。和Debug完全一樣,。不過注意,在這種情況下,,一般只能設(shè)置2個斷點,。
 
8、 使用fromelf命令
fromelf命令可以對我們生成的axf文件進行進一步操作的命令,。 

諸如:

從axf文件中抽出二進制代碼:fromelf –bin –output a.bin a.axf

從axf文件中抽出二進制代碼:fromelf –m32 –output a.s32 a.axf

9,、 FAQ

Q:   生成的ram方式的redboot映像文件,,應(yīng)該使用什么工具調(diào)試編譯的ram方式的redboot,。

用ADS調(diào)試工具只能加載.axf格式的文件

A:   用ADS還可以加載bin文件(File->Load Memory From Memory...),可以使用ADS命令行或腳本初始化SDRAM

load bin文件時需要指定載入地址,對于s3c44b0x通常為0x0c040000,即在相應(yīng)的ldi文件中指定的
SECTION_rom_vectors (ram, 0x0c040000, LMA_EQ_VMA)

將BIN程序Load后,,將PC指針修改為0X0C040000即可

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多