在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM匯編指令調(diào)試方法

            ARM匯編指令調(diào)試方法

            作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
            學(xué)習(xí)ARM匯編時,少不了對ARM匯編指令的調(diào)試。作為支持多語言的調(diào)試器,gdb自然是較好的選擇。調(diào)試器工作時,一般通過修改代碼段的內(nèi)容構(gòu)造trap軟中斷指令,實現(xiàn)程序的暫停和程序執(zhí)行狀態(tài)的監(jiān)控。為了在x86平臺上執(zhí)行ARM指令,可以使用qemu模擬器執(zhí)行ARM匯編指令。

            一、準(zhǔn)備ARM匯編程序

            首先,我們構(gòu)造一段簡單的ARM匯編程序作為測試代碼main.s。

            本文引用地址:http://www.biyoush.com/article/201611/317876.htm
            .globl _start_start:mov R0,#0swi	0x00901

            以上匯編指令完成了0號系統(tǒng)調(diào)用exit的調(diào)用。mov指令將系統(tǒng)調(diào)用號傳入寄存器R0,然后使用0x00901軟中斷陷入系統(tǒng)調(diào)用。

            為了運行ARM匯編代碼,需要使用交叉編譯器arm-linux-gcc對ARM匯編代碼進行編譯。下載交叉編譯器安裝完畢后,對ARM匯編代碼進行編譯。

            arm-linux-gcc main.s -o main -nostdlib

            編譯選項“-nostdlib”表示不使用任何運行時庫文件,編譯生成的可執(zhí)行文件main只能在ARM體系結(jié)構(gòu)的系統(tǒng)上運行。

            二、編譯安裝qemu模擬器

            為了x86的Linux系統(tǒng)內(nèi)運行ARM體系結(jié)構(gòu)的可執(zhí)行程序,需要安裝qemu模擬器。

            首先下載qemu源碼,然后保證系統(tǒng)已經(jīng)安裝了flex和bison。

            編譯安裝qemu。

            ./configure --prefix=/usrsudo make && make install

            然后使用qemu的ARM模擬器執(zhí)行ARM程序。

            qemu ./main

            三、編譯安裝arm-gdb

            為了調(diào)試ARM程序,需要使用gdb的源碼編譯生成arm-gdb。

            首先下載gdb源代碼,編譯安裝。

            ./configure --target=arm-linux --prefix=/usr/localsudo make && make install

            為了和系統(tǒng)的gdb避免沖突,我們將gdb的安裝目錄安裝到/usr/local,然后建立軟鏈接即可。

            ln -s /usr/bin/arm-gdb /usr/local/gdb/gdb

            之后便可以使用arm-gdb命令調(diào)試ARM程序了。

            四、調(diào)試ARM程序

            首先使用qemu打開遠(yuǎn)程調(diào)試端口。

            qemu-arm -g 1024 ./main

            然后導(dǎo)出環(huán)境變量QEMU_GDB。

            export QEMU_GDB=/usr/local/gdb

            最后,進入gdb調(diào)試。

            arm-gdb ./main

            進入arm-gdb后,首先連接遠(yuǎn)程調(diào)試端口。

            (gdb) target remote localhost:1024

            然后使用gdb常用的調(diào)試命令調(diào)試代碼即可。

            (gdb) disassemble			// 查看反匯編(gdb) x /8xw 0x0808e		// 查看內(nèi)存(gdb) info register			// 查看寄存器(gdb) continue				// 繼續(xù)執(zhí)行(gdb) stepi					// 匯編級逐過程(gdb) nexti					// 匯編級逐語句



            關(guān)鍵詞: ARM匯編指令調(diào)試方

            評論


            技術(shù)專區(qū)

            關(guān)閉