亚洲av岛国动作片在线观看,久久资源综合网,亚洲色图,果冻传媒一二三产区,日本少妇,com,欧美激情一,二,三区

Windows下通過(guò)ARM目標(biāo)板上的gdbserver進(jìn)行遠(yuǎn)

發(fā)布時(shí)間:2024-11-26
系統(tǒng)運(yùn)維
因某種需要,要在windows平臺(tái)上進(jìn)行程序開(kāi)發(fā),目標(biāo)板是基于micrel芯片(armv4t)做的,上面運(yùn)行有l(wèi)inux最小系統(tǒng),只有最基本的命令,需要在windows平臺(tái)上交叉編譯能在armv4t上運(yùn)行的目標(biāo)代碼,并且還要能進(jìn)行遠(yuǎn)程調(diào)試?;谶@些需求,初步計(jì)劃按以下步驟進(jìn)行:
1、先在windows平臺(tái)上交叉編譯一個(gè)簡(jiǎn)單的c語(yǔ)言程序,并上傳到開(kāi)發(fā)板上,能正常運(yùn)行即可;
2、交叉編譯gdbserver,并上傳到開(kāi)發(fā)板;
3、進(jìn)行遠(yuǎn)程調(diào)試。
按上述計(jì)劃,首先要找一個(gè)windows環(huán)境下的交叉編譯環(huán)境,參考了http://www.veryarm.com/arm-none-linux-gnueabi-gcc 下載了arm-2011.03-41-arm-none-linux-gnueabi.exe windows安裝版(個(gè)人感覺(jué)在windows下用安裝版比較好,解壓版需要設(shè)定path),安裝成功后,用c寫了一個(gè)簡(jiǎn)單的hello,world!,使用如下命令進(jìn)行編譯:
arm-none-linux-gnueabi-gcc hello.c -o hello
目標(biāo)板與windows主機(jī)通過(guò)以太網(wǎng)和串口進(jìn)行連接,以太網(wǎng)用來(lái)上傳文件,串口用于進(jìn)行終端訪問(wèn)。目標(biāo)板與windows主機(jī)使用tfpt進(jìn)行文件傳遞。windows上運(yùn)行有tftp server,如下圖:
通過(guò)串口終端在目標(biāo)板上運(yùn)行如下命令下載windows主機(jī)上編譯的hello程序:
tftp -gr hello 10.32.2.10
使用命令chmod 755 hello添加執(zhí)行權(quán)限后執(zhí)行時(shí),出現(xiàn)下述錯(cuò)誤提示:
illegal instruction
這說(shuō)明程序能運(yùn)行,但指令不對(duì),這有可能是在windows上交叉編譯時(shí)沒(méi)有指定具體目標(biāo)架構(gòu)的原因(在ubuntu下使用上述命令進(jìn)行交叉編譯的程序可以正常執(zhí)行)。為了解決這個(gè)問(wèn)題,首先通過(guò)串口終端查看了目標(biāo)板啟動(dòng)時(shí)的信息,了解到arm芯片是armv4t架構(gòu),接著使用arm-none-linux-gnueabi-gcc --target-help查看交叉編譯器支持的arm架構(gòu)類型,發(fā)現(xiàn)該命令通過(guò)-march=option可以指定目標(biāo)類型,于是,編譯命令改為:
arm-none-linux-gnueabi-gcc -march=armv4t hello.c -o hello -g
編譯成的程序在目標(biāo)機(jī)上能夠運(yùn)行!(運(yùn)氣不錯(cuò))
第一步完成,接下來(lái)交叉編譯gdbserver。先前安裝的arm-2011.03-41-arm-none-linux-gnueabi.exe包含有在windows下運(yùn)行的arm-none-linux-gnueabi-gdb.exe命令,要進(jìn)行遠(yuǎn)程調(diào)試,需要在目標(biāo)板上運(yùn)行g(shù)dbserver。于是上gdb官網(wǎng)(http://ftp.gnu.org/gnu/gdb) 下載gdb7.6的代碼。突然一想,既然arm-2011.03-41-arm-none-linux-gnueabi.exe包含有windows上執(zhí)行的gdb,那是不是也包含有在linux上運(yùn)行行的gdbserver呢?進(jìn)入安裝目錄一搜索,bingo,果然有,在安裝目錄codesourcery\\\\sourcery_g _lite\\\\arm-none-linux-gnueabi\\\\libc\\\\armv4t\\\\usr\\\\bin下,運(yùn)氣不錯(cuò)。把該目錄下的gdbserver放到目標(biāo)版上后,果真能運(yùn)行。第二步完成(俺有時(shí)還是比較懶的,在windows下就不再自己編譯了)
第三步就相對(duì)容易了,在目標(biāo)板上運(yùn)行命令啟動(dòng)gdbserver:
./gdbserver 10.32.2.80:3333 hello
上述命令中的ip是目標(biāo)板自己的ip地址,端口號(hào)自己指定,只要不沖突就行,后面的hello是包含調(diào)試信息的被調(diào)試程序。然后在windows下運(yùn)行arm-none-linux-gnueabi-gdb.exe,進(jìn)入gdb提示符后后,執(zhí)行target remote 20.32.2.80:3333就聯(lián)上目標(biāo)板的gdbserver了,然后再在gdb提示符下執(zhí)行file hello,這個(gè)是在windows下加載被調(diào)試的程序,之后就按gdb的命令設(shè)置端點(diǎn)等就可以調(diào)試了。
上一個(gè):長(zhǎng)城真空泵的3大分類
下一個(gè):UPS虛假面單風(fēng)險(xiǎn)提示(UPS發(fā)布對(duì)應(yīng)整治措施)

江蘇至美國(guó)亞馬遜海運(yùn)價(jià)格(江蘇海運(yùn)到紐約報(bào)價(jià))
鄂爾多斯冷鏈物流 鄂爾多斯冷再生機(jī)
2023年中國(guó)海關(guān)清關(guān)流程(內(nèi)附清關(guān)流程圖)
海運(yùn)鏡子美國(guó)能帶嗎多少錢
普洱茶對(duì)存放環(huán)境有什么講究
什么是網(wǎng)站空間租用以及網(wǎng)站空間的定義
好茶時(shí)光雕琢的韻
淺析電動(dòng)蝶閥的市場(chǎng)優(yōu)勢(shì)
存的普洱茶沒(méi)有香氣是什么原因?
菜地施肥應(yīng)注意的問(wèn)題