ARM Linux学习,从宿主机传程序到ARM——环境搭建2

上一篇文章中介绍了如何通过一根交叉网线将PC和ARM板组成局域网,网络环境搭建完成之后,本文将继续介绍如何在宿主机编译程序,然后传到ARM开发板上运行,即交叉编译。
在PC上,用gcc编译生成的程序,在ARM上运行会出错,在PC机上要使用交叉编译链arm-linux-gcc对程序进行编译。交叉编译链运行在宿主机上,这里使用的是ubuntu14.04的笔记本电脑。
在进行交叉编译之前,首先需要安装交叉工具链,使用如下步骤:、

  1. 解压工具链到某一目录下
    下载的工具链为arm-linux-gcc-4.4.3.tar.gz,将其解压到根目录下,sudo tar xvzf arm-linux-gcc-.4.4.3.tar.gz -C / ,在根目录下会生成opt文件夹。
  2. 修改/etc/profile,添加环境变量
    修改/etc/profile文件,在文件末尾加上:
    export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH
  3. 让第2步对环境变量的修改生效
    source /etc/profile
    查看:
    echo $PATH

    交叉编译工具的使用:
    编译器 : arm-linux-gcc 和gcc用法一样
    如:arm-linux-gcc hello.c -o hello
    反编译工具:arm-linux-objdump
    如:arm-linux-objdump -D -S hello
    生成汇编代码
    ELF文件查看工具:arm-linux-readelf
    如:arm-linux-readelf -a hello 全部信息 -d hello查看hello使用的动态库等。

工具准备好之后,开始在宿主机进行程序编译,写一个hello.c文件,用arm-linux-gcc进行编译,生成hello文件。下一步就是将该hello文件传到ARM板上运行。
开始想通过NFS(网络文件系统)在PC和ARM之间进行挂载,但是没有成功。后来使用FTP服务进行传输。传输过程如下图所示:
这里写图片描述
ftp 192.168.0.2以ftp客户端身份登录开发板
输入用户名和密码,均为plg.
bin,设置文件传送格式
put /home/vincent/linuxstudy/armlinuxstudy/hello /linuxstudy/hello将hello文件传到ARM板的/linuxstudy目录下
by,退出ftp。
注意文件夹的权限问题,可通过chmod -R 777赋予读写权限,否则会报权限出错问题。
文件传输完成之后,通过串口超级终端查看/linuxstudy目录下会有hello文件。然后通过./hello运行该hello文件。
至此,在宿主PC机上进行交叉编译,并将可执行文件通过ftp传到ARM开发板并运行的过程已介绍完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值