目录

  • 一、概述
  • 二、arm-2009q3安装
  • 三、编译测试
  • 四、开发板运行


一、概述

现在已经完成PC端的虚拟机环境安装、完成了开发板镜像烧写。以测试的hello为例,PC端使用gcc hello.c编译得到的a.out在开发板是无法运行的。想要运行在开发板上,需要通过交叉编译才行。这篇文章就是记录安装交叉编译工具,并交叉编译一个hello.c文件。

二、arm-2009q3安装

  1. 我的安装文件在windows下,所以需要先将arm-2009q3.tar.bz2放到之前设置的共享文件夹下。进入Ubuntu查看文件,拷贝到/usr/local/arm文件夹下:
  2. 解压交叉编译工具。
cd /usr/local/arm/
tar -vxf arm-2009q3.tar.bz2

arm架构linux系统发行版 arm安装linux发行版_arm架构linux系统发行版


3. 修改交叉编译工具路径,需要修改环境变量。

cd /root
vim .bashrc

arm架构linux系统发行版 arm安装linux发行版_交叉编译_02


在文件的最后一行添加如下信息:

export PATH=$PATH:/usr/local/arm/arm-2009q3/bin

arm架构linux系统发行版 arm安装linux发行版_开发板_03


4. 更新环境变量,查看安装结果

source .bashrc
arm

输入“arm”后按 TAB 键,如果在命令行中能够看到 arm 编译器的信息,就表明交叉编译工具安装成功。

arm架构linux系统发行版 arm安装linux发行版_Ubuntu_04

三、编译测试

现在使用交叉编译工具编译我们的hello.c文件。

arm-none-linux-gnueabi-gcc -o hello hello.c

结果与想象不太一样,居然失败了:

arm架构linux系统发行版 arm安装linux发行版_交叉编译_05


跟前面一样,万能百度,不行再Google一下。最终找到了:解决方案。需要安装下32位库:

sudo apt-get install ia32-libs

显示已被废弃,然后根据提示进行新的安装即可:

arm架构linux系统发行版 arm安装linux发行版_开发板_06


安装完后再次测试,可以看到成功编译。这里也可以看到,交叉编译的文件是不能在Ubuntu上运行的。

arm架构linux系统发行版 arm安装linux发行版_arm架构linux系统发行版_07

四、开发板运行

既然交叉编译后的结果不能在PC端运行,现在就将其下载到开发板上运行。这里先使用U盘来实现。

在Ubuntu中直接将编译好的hello拷贝到U盘内,U盘插到开发板上:

arm架构linux系统发行版 arm安装linux发行版_开发板_08


然后需要对U盘进行挂载,因为第一次使用,默认没有/mnt/udisk文件夹,需要mkdir一下。之后就能够查看到hello文件:

arm架构linux系统发行版 arm安装linux发行版_交叉编译_09


运行测试一下:

arm架构linux系统发行版 arm安装linux发行版_Ubuntu_10


测试完成后umount /mnt/udisk卸载U盘即可。

我这里使用的是FAT32默认格式,如果U盘格式为NTFS,会有一点差异。后续有时间再补充一下。