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