嵌入式开发(一) Ubuntu12.04下搭建交叉编译环境,嵌入式ubuntu12.04


操作系统:Ubuntu12.04 AMD64位

交叉编译环境:arm-Linux gcc版本4.4.3

前言:

     首先理解一下交叉编译的意思。我们要给嵌入式设备写应用程序,但是又不能在嵌入式设备上完成所有的代码开发工作,只能在一台工作PC上完成然后编译成二进制文件上传到嵌入式设备上。但是我们选用的编译工具链不能是工作PC上的,应该是嵌入式设备上的编译工具链,所以,我们要在PC上搭建适用于嵌入式设备的交叉编译工具链。例如,PC上的gcc版本可能是4.6但是arm-linux-gcc的版本却是4.4.3.

搭建过程:

     一、下载适合自己开发板的交叉编译工具包 本文以arm-linux-4.4.3.tar.bz2为例

     二、解压缩到/usr/local/arm目录下面

# tar xvf arm-linux-4.4.3.tar.bz2 -C /usr/local/arm
     三、设置环境变量
# vi /etc/profile
末尾添加行export PATH=$PATH:/usr/local/arm/arm-linux-4.4.3/bin
     四、导入环境变量
# source /etc/profile
     五、测试
# arm-linux-gcc -v
出现以下画面说明是ok了。。。

但是很有可能没有这么顺利,楼主我就遇到了一个问题,在输入上面命令后,出现如下错误:

/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec: /home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found

在网上查了一下,发现是因为Ubuntu使用的是64位系统,需要安装一些32位的库:

$ sudo apt-get install ia32-libs

又因为ia32-libs是一个正在被淘汰的库,所以可能有些它的依赖包是不会被自动下载的,你可以根据他的提示先安装一下ia32-libs的依赖包,最后就可以把它装上了。

然后再用# arm-linux-gcc -v 试试就好了!

 

Ubuntu下怎构建交叉编译环境?

下面就一些问题作一个说明,以期抛砖引玉。

基于Linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。

但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独拿出一台PC机(PII以上即可,就用以前淘汰的旧机器就可以),在该PC上安装桌面的Linux操作系统(如Red Hat Linux 8.0及以上),可以采用默认的安装选项(注意要包含FTP服务),这台PC作为Linux服务器,除管理员以外,一般不直接让其他人去操作。

将该Linux服务器接入局域网,并新建一些合法用户,以便其他的PC机(在此我们将其称为工作站)的合法用户能访问到Linux服务器。而其他的PC机(工作站)仍然使用Windows操作系统,原来干啥继续干啥。

需要的软件工具包括:

1、FTP客户端程序(如Cuteftp,可到网上下载)。

2、Telnet工具(如SecureCRT,可到网上下载)。

3、移植到某一特定ARM平台的Linux操作系统内核源码(一般由销售商整理提供)。

4、GNU编译工具,可由相关网站下载,或由销售商整理提供。

在工作站安装:

在某工作站PC上安装FTP客户端程序和Telnet工具,安装完毕后应该可以在该工作站PC和Linux服务器之间进行文件的传输,并在工作站PC可以通过Telnet登陆到Linux服务器(可能需要将Linux服务器的防火墙服务关闭才能完成)。

在Linux服务器安装:

将工作站PC上的Linux操作系统内核源码压缩包和GNU编译工具通过FTP传送到Linux服务器的某个目录(如合法的用户目录),然后在该目录下解压,并将GNU编译工具安装到默认的工作目录即可,以上工作通过在工作站PC使用Telnet工具完成,而不需要在Linux服务器上进行。

Linux操作系统内核的编译:

Linux操作系统内核的编译一般有一个比较固定的步骤,会根据MakeFile文件的不同而略有差异,可参考相关文档,编译的工作在工作站PC使用Telnet工具完成。

按固定的步骤编译内核完成以后,会在相应目录生成可执行的二进制文件,通过FTP将该可执行的二进制文件传回工作站PC,然会再通过ADS或SDT下的烧写工具写入开发板的Flash即可。
 

怎搭建交叉编译环境

搭建linux交叉编译工具有以下几种:
使用crosstool-ng工具制作交叉编译工具链。www.cnblogs.com/...9.html
直接安装ELDK www.cnblogs.com/...3.html
直接下载别人制作好的交叉编译工具链,然后安装即可 wenku.baidu.com/...PxI9BK
刚刚开始接触嵌入式开发的话,不建议自己制作,可以使用第二种或者第三种方法。
对于你说的第二个问题,解压仅仅是解压,还是自己编译,然后安装的。具体安装方法你可以查看tar文件解压出来的文件README.TXT.

 

相关内容

    暂无相关文章