arm-linux 交叉编译后程序,ARM交叉编译下,应用程序实践
ARM交叉編譯下,應(yīng)用程序?qū)嵺`
一。首先準(zhǔn)備一個(gè)小程序
hello.c
代碼如下:
#include
int main(void) {
printf("hello,world\n");????????????? //向終端打印字符輸出
}
二。然后編寫makefile如下:
CROSS=opt/host/armvl/bin/arm-linux-????????????????#這個(gè)是定義的宏,指向具體得
#交叉編譯工具路徑
all: hello
hello:
$(CROSS)gcc -o hello hello.c????????????????????????? ?#編譯ELF可執(zhí)行文件
clean:
@rm -vf hello *.o *~??????????????????????????????????????? #輸入make clearn時(shí)刪除編譯文件
#尤其注意這里得交叉編譯工具一定要與燒寫內(nèi)核得交叉編譯工具一致
#否則產(chǎn)生得文件armlinux內(nèi)核不能執(zhí)行
三。在終端輸入 : make 生成可執(zhí)行文件hello
四。將hello,down到目標(biāo)板得文件系統(tǒng)中
這里有三種方法:
1.解壓縮ramdisk.image.gz,把自己寫得hello文件復(fù)制進(jìn)去,重新打包,并燒錄到目標(biāo)板上,方法見我的另一篇博文。這個(gè)方法優(yōu)點(diǎn)是徹底的燒錄上去,掉電不會(huì)丟掉自己的程序,而其他方法都是將應(yīng)用程序放在ram中,重啟就沒有了。缺點(diǎn)很明顯,太復(fù)雜費(fèi)時(shí),而且不利于延長(zhǎng)flash的壽命,只需要再?gòu)氐讓懞脩?yīng)用程序后使用,調(diào)試不推薦。
2.使用USB。
首先在PC端輸入:
#mount -t vfat /dev/sdb1? /mnt/??????????? 掛載U盤到mnt文件夾,sdb1根據(jù)實(shí)際情況修改
#cp -av /hello????? /mnt/??????????????????????? 把自己寫的hello文件夾復(fù)制到u盤
#cp /????????????????????????????????????????????????? 這步確保路徑不在u盤,卸載時(shí)不會(huì)busy
#umount /mnt???????????????????????????????????? 卸載u盤
超級(jí)終端上:
#mount -t vfat /dev/sda1? /mnt/????????? 同樣掛u盤
#cp -av?? /mnt/hello????/???????????????????? 把U盤中自己寫的文件復(fù)制到根目錄
cd? /mnt/hello
./hello???????????????????????????????????????????????? 執(zhí)行自己的文件
#umount /mnt
用U盤調(diào)試前提時(shí)目標(biāo)板上的linux支持USBhost,過程簡(jiǎn)單但是比較麻煩。
2.使用NFS
首先配置NFS服務(wù),見另一篇博文,關(guān)鍵一定要關(guān)掉防火墻,在/etc/exports文件中加入允許訪問的路徑。
(1)關(guān)閉防火墻:
#setup??????????????????//進(jìn)入系統(tǒng)服務(wù),取消iptables和ipchains,選上nfs
#/etc/rc.d/init.d/iptables stop
#vim?? /etc/exports
在vim中添加 /nfs 192.168.2.120(rw,insecure,no_root_squash,no_all_squash),含義是允許下位機(jī)讀寫PC的/nfs文件夾
(2)連好網(wǎng)線,PC端,將hello復(fù)制到共享文件夾nfs:
(3)超級(jí)終端輸入:
#mount -t vfat -o onlock 192.168.2.126:/nfs /mnt?????? 掛載PC的nfs文件夾到目標(biāo)板mnt中
#cd /mnt/hello??????????????????? 遠(yuǎn)程瀏覽自己的程序
#./hello?????????????????????????????? 遠(yuǎn)程執(zhí)行
這個(gè)方法前提是下位機(jī)已經(jīng)打通了網(wǎng)口,并且支持nfs服務(wù),推薦用這種方法調(diào)試
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
總結(jié)
以上是生活随笔為你收集整理的arm-linux 交叉编译后程序,ARM交叉编译下,应用程序实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux主机电影源码,求::totem
- 下一篇: Linux如何禁用rc4加密算法,使用a