導航:首頁 > 知識科普 > arm有哪些調試方法

arm有哪些調試方法

發布時間:2022-10-23 06:52:23

如何在安卓系統上使用arm-linux-gdb調試內核

1,先下載最新版本的gdb源代碼包,我使用的是gdb-7.6.tar.gz,使用tar命令進行解包(tar -xvzf gdb-7.6.tar.gz),cd進gdb-7.6/gdb目錄,使用vi找到remote.c中的如下代碼:
if(buf_len > 2 * rsa->sizeof_g_packet)
error(_("Remote 'g' packet reply is too long: %s"),rs->buf);
將上面兩行注釋掉,添加如下代碼
if(buf_len > 2 * rsa->sizeof_g_packet)
{
rsa->sizeof_g_packet = buf_len;
for(i = 0; i < gdbarch_num_regs(gdbarch); i++)
{
if(rsa->regs[i].pnum == -1)
continue;
if(rsa->regs[i].offset >= rsa->sizeof_g_packet)
rsa->regs[i].in_g_packet = 0;
else
rsa->regs[i].in_g_packet = 1;
}
}
使用如下命令對代碼進行配置、編譯和安裝
./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v
make
make install
2,gdbserver使用android4.2模擬器中自帶的版本(v7.1)
3,將NDK編譯好的C/C++可執行程序,上傳到模擬器中/data/test目錄下,假設可執行程序的名稱為testHello。
4,使用命令:gdbserver :7000 /data/test/testHello 啟動模擬器端的調試。
5,啟動arm-linux-gdb之前,使用vi打開~/.bash_profile文件,在其中添加:
export PATH=$PATH:/usr/local/arm-gdb/bin,以便在程序的其他目錄可以直接啟動arm-linux-gdb程序
6,cd至ndk編譯好的testHello文件所在目錄
7,使用如下命令進行埠映射:adb forward tcp:7000 tcp:7000,將模擬器的7000埠和本機的7000埠進行映射
8,使用命令:arm-linux-gdb testHello啟動gdb調試
9,使用target remote :7000 鏈接模擬器中gdbserver啟動的服務。
10,自此,我們就可以使用gdb命令進行代碼調試了。

⑵ 嵌入式系統常用調試方法有幾種,各有什麼優缺點

硬體系統的調試:嵌入式系統的調試包括硬體調試1)排除邏輯故障 2)排除元器件失效 3)排除電源故障
3)實時在線模擬調試 實時在線模擬(In—Circuit Emulator。ICE)是目前最有效的調
試嵌入式系統的手段。
1)軟體調試 主機和目標板通過某種介面(一般是串口)連接,主機上提供調試界面,把調試軟體下載到目標板上運行。

2)模擬調試 所要調試的程序與調試開發工具(一般為集成開發環境)都在主機上
運行,由主機提供一個模擬的目標運行環境,可以進行語法和邏輯上的調試與開發。
4)JTAG 調試 基於JTAG(Joint test action group)的調試方法是ARM 系統調試的最常用
方法,因為ARM 處理器中集成了JTAG 調試模塊。

⑶ 馬上就是ARM11的時代了,怎麼調試ARM11

RealView? Development Suite(RVDS)是ARM公司繼SDT與ADS1.2之後主推的新一代開發工具。RVDS集成的RVCT是業內公認的能夠支持所有ARM處理器,並提供最好的執行性能的編譯器;RVD是ARM系統調試方案的核心部分,支持含嵌入式操作系統的單核和多核處理器軟體開發,可以同時提供相關聯的系統級模型構建功能和應用級軟體開發功能,為不同用戶提供最為合適的調試功效。
目前全球基於ARM處理器的40億個產品設備中,大部分的軟體開發是基於RealView開發工具。安全、可靠和高性能地設計產品的最好選擇就是購買ARM RealView開發工具。
RVDS向下兼容以前的版本(ADS v1.2.1、1.1、1.0.1)。

RealView? Development Suite的突出特性

? 支持ARM新架構下的編譯和調試,包括支持V7指令集和NEON技術,支持Cortex A8 和M3;

? Instruction Set System Models取代了舊的RV-ISS/ARMulator;

? RVD可以直接連接到SoC Designer;

? 支持CoreSight調試技術;

? 可以用RVCT編譯Linux 應用程序和共享庫;

? 支持Trustzone 技術,Secure和Non-Secure域下的代碼編譯和調試;

? Eclipse / Codewarrior集成開發環境;

? 支持MPCore;

? 支持Multi-Core調試:包括支持ZSP 400,500;支持Teak,TeakLite和OAK Ceva DSP;並且可以根據客戶要求增加對特定的DSP的支持;

? 先進的目標連接系統:可以直接連接到Model,Scanchain或DAP;RVI支持GDB (GNU Debugger);更快的下載速度1.3MB/Sec;

? 豐富的項目管理系統:基於Eclipse的項目管理器,能支持Linux,Windows 平台。

⑷ linux下面調試ARM板上的應用程序的方法有哪些

GDB,,,,,,,,,,,,,,,,,,

⑸ ARM調試和Flash調試的區別

首先說說什麼是Flash調試和RAM調試,Flash調試就是通常意義下的普通調試,即將編譯鏈接之後的code下載到單片機的ROM區,數據放到RAM區,然後進行調試;而RAM調試則是將數據放到RAM區的同時再從RAM區中額外開辟出一段空間存放可執行code,這樣就是code和數據同時運行在RAM區裡面。
至於為什麼要刻意區分出這兩種調試方式,其實在低端MCU領域是沒有RAM調試這個概念的,其中很大一部分原因是它沒有足夠大的RAM空間在存放編譯後code代碼的同時仍然可以拿出額外的空間作為數據RAM的,而在高端MCU領域中,比如ARM,動輒幾十KB的RAM是很常見的,在不運行超大工程的情況下是完全可以拿出一部分空間運行代碼的,所以也就出現了RAM調試這種方法了。
相比於Flash調試,RAM調試則與生俱來的帶來兩個最大的先天優勢,一個是RAM的可擦寫的次數理論上是無限的,在調試代碼的期間我們往往是需要不斷下載更新的,而Flash的擦寫次數是有限的(一般幾萬次、幾十萬次不等,雖然看起來足夠多,但是也心疼的慌),因此在調試期間我們可以選擇RAM調試;另一個方面,則更是RAM調試的強項(Flash真夠悲催的),在RAM區的代碼執行速率和效率遠高於需要不斷地讀寫Flash區代碼的,這點毋庸置疑,所以在當今智能手機比拼硬體的時代,我們選擇一款強大的CPU是應該的,但是要想讓系統運行的更流暢,足夠大的機載RAM是必須的,呵呵。當然RAM調試的缺點是掉電丟失,在RAM區運行的代碼在掉電的情況下是不會被保存的,下次上電單片機仍然會執行Flash區內部的老的代碼,這點是需要注意的,很多人忘記考慮這點,在RAM調試功能完畢,等拿到現場單片機獨立運行的時候卻發現程序是不對的

⑹ 如何使用arm-eabi-gdb調試android c/c++程序

1.獲取gdbserver

prebuilt/android-arm/gdbserver

2.獲取arm-eabi-gdb

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin

3.啟動emulator(即qemu虛擬機,調式linux內核時用到)

$adb remount && adb push gdbserver /system/bin

adb shell

#gdbserver 10.0.2.2:1234 /system/bin/ping

$telnet localhost 5554

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

Android Console: type 'help' for a list of commands

OK

]

KO: unknown command, try 'help'

**cmd**redir add tcp:1234:1234

OK

exit

Connection closed by foreign host.

$cdout/target/proct/generic/symbols/system/bin && arm-eabi-gdb ping

(gdb) r

Starting program:

Don't know how to run. Try "help target".

(gdb) target remote localhost:1234

Remote debugging using localhost:1234

0xb0000100 in ?? ()

(gdb) l

1779 usage();

1780 if (argc > 5)

1781 usage();

1782 } else {

1783 if (argc > 10)

1784 usage();

1785 options |= F_SOURCEROUTE;

1786 }

1787 }

1788 while (argc > 0) {

⑺ MDK 可以 調試 arm cortex A系列

可以。
打開軟體工程,編譯,調試,建議使用BuildTarget編譯工程,也可用F7。Translate是編譯當前活動文件,RebuildallTargetfiles是重新編譯所有目標文件。
軟體在線調試和硬體在線調試;由於現在硬體成本比較便宜,一般我們都使用硬體在線調試,也就是軟體直接下載到晶元,我們查看運行狀態。

⑻ 怎樣用筆記本電腦調試ARM開發板

同台式機啊,沒有串口的話去買個USB轉串口數據線,淘寶上就有,各地電腦城也有,很便宜,幾十塊錢(我買的雙晶元的USB轉串口數據線才25元)。
回答補充:
哈哈,你沒弄成功的東西別說是騙人啊,USB轉串口線調試ARM板子能不能行我不敢說,沒有arm的開發板,但是我用這個USB轉串口線調試別的版子就可以,並且USB轉串口線還可以連接步步高電子辭典之類的串口通信設備(老款4980)。
不過話又說回來,現在市場上的USB轉串口線名目繁多,很多都功能不全,要想摹擬的比較好,應該選用雙晶元方案的
我是在Vista下使用的,發現一個問題,就是模擬出來的埠名字不固定,一會兒叫com3,重啟後又成了com9,你可以強行改名鎖住他。另外,很多linux也能識別這個USB轉串口線,能不能用就沒試過了,俺不會串口編程。
FPGA怎麼聯就不清楚了,既然有並口,為什麼不試試並口?USB轉並口我沒實驗過,無法回答你的問題,不過好像FPGA板子都有電路圖,你看看電路圖啊,沒用過FPGA,不過畢業前看同學玩FPGA,也沒見什麼復雜的下載設備,都是平常用的

⑼ 如何使用arm-eabi-gdb調試android c/c++程序

用gdb調試動態鏈接庫大家都知道在Linux可以用gdb來調試應用程序,當然前提是用gcc編譯程序時要加上-g參數。我這篇文章里將討論一下用gdb來調試動態鏈接庫的問題。首先,假設我們准備這樣的一個動態鏈接庫:引用:庫名稱是:ggg

閱讀全文

與arm有哪些調試方法相關的資料

熱點內容
中式棉襖製作方法圖片 瀏覽:63
五菱p1171故障碼解決方法 瀏覽:858
男士修護膏使用方法 瀏覽:546
電腦圖標修改方法 瀏覽:607
濕氣怎麼用科學的方法解釋 瀏覽:537
910除以26的簡便計算方法 瀏覽:805
吹東契奇最簡單的方法 瀏覽:704
對腎臟有好處的食用方法 瀏覽:98
電腦四線程內存設置方法 瀏覽:512
數字電路通常用哪三種方法分析 瀏覽:13
實訓課程的教學方法是什麼 瀏覽:525
苯甲醇乙醚鑒別方法 瀏覽:82
蘋果手機微信視頻聲音小解決方法 瀏覽:700
控制箱的連接方法 瀏覽:75
用什麼簡單的方法可以去痘 瀏覽:789
快速去除甲醛的小方法你知道幾個 瀏覽:803
自行車架尺寸測量方法 瀏覽:124
石磨子的製作方法視頻 瀏覽:152
行善修心的正確方法 瀏覽:403
土豆燉雞湯的正確方法和步驟 瀏覽:276