1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > arm-linux 交叉编译后程序 ARM交叉编译下 应用程序实践

arm-linux 交叉编译后程序 ARM交叉编译下 应用程序实践

时间:2022-11-10 03:25:07

相关推荐

arm-linux 交叉编译后程序 ARM交叉编译下 应用程序实践

ARM交叉编译下,应用程序实践

一。首先准备一个小程序

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可执行文件

clean:

@rm -vf hello *.o *~ #输入make clearn时删除编译文件

#尤其注意这里得交叉编译工具一定要与烧写内核得交叉编译工具一致

#否则产生得文件armlinux内核不能执行

三。在终端输入 : make 生成可执行文件hello

四。将hello,down到目标板得文件系统中

这里有三种方法:

1.解压缩ramdisk.image.gz,把自己写得hello文件复制进去,重新打包,并烧录到目标板上,方法见我的另一篇博文。这个方法优点是彻底的烧录上去,掉电不会丢掉自己的程序,而其他方法都是将应用程序放在ram中,重启就没有了。缺点很明显,太复杂费时,而且不利于延长flash的寿命,只需要再彻底写好应用程序后使用,调试不推荐。

2.使用USB。

首先在PC端输入:

#mount -t vfat /dev/sdb1 /mnt/ 挂载U盘到mnt文件夹,sdb1根据实际情况修改

#cp -av /hello /mnt/ 把自己写的hello文件夹复制到u盘

#cp / 这步确保路径不在u盘,卸载时不会busy

#umount /mnt 卸载u盘

超级终端上:

#mount -t vfat /dev/sda1 /mnt/ 同样挂u盘

#cp -av /mnt/hello/ 把U盘中自己写的文件复制到根目录

cd /mnt/hello

./hello 执行自己的文件

#umount /mnt

用U盘调试前提时目标板上的linux支持USBhost,过程简单但是比较麻烦。

2.使用NFS

首先配置NFS服务,见另一篇博文,关键一定要关掉防火墙,在/etc/exports文件中加入允许访问的路径。

(1)关闭防火墙:

#setup//进入系统服务,取消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)连好网线,PC端,将hello复制到共享文件夹nfs:

(3)超级终端输入:

#mount -t vfat -o onlock 192.168.2.126:/nfs /mnt 挂载PC的nfs文件夹到目标板mnt中

#cd /mnt/hello 远程浏览自己的程序

#./hello 远程执行

这个方法前提是下位机已经打通了网口,并且支持nfs服务,推荐用这种方法调试

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。