欢迎来到天天文库
浏览记录
ID:25904618
大小:117.50 KB
页数:26页
时间:2018-11-23
《第七章-嵌入式linux交叉开发环境搭建》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章嵌入式Linux交叉开发环境建立教学目标:掌握嵌入式Linux交叉开发环境的搭建过程,重点掌握交叉编译工具链的构建方法。主要内容:7.1交叉开发环境概念7.2交叉开发环境建立7.3交叉编译器的制作方法7.1交叉开发环境1.交叉开发环境嵌入式系统通常是一个资源受限的系统,无法直接在嵌入式系统的硬件平台上进行相关的软件开发工作,因此必须采用一种特殊的开发模式,目前一般采用的方法就是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再通过一些特殊的下载烧写工具,将二进制程序下载烧写到目标平台上去运行,将这种开发方法叫做交叉开发。在此过程需
2、要借助各种工具软件来完成以上工作,交叉开发环境的搭建就是安装配置各种工具软件的过程,在后面会详细讲述这个过程的实现方法。2.交叉编译器交叉开发环境的核心就是交叉编译器,交叉编译器的功能就是实现在PC平台(X86CPU)上编译出能运行在以ARM为内核的CPU平台上的程序。相对于交叉编译,平常做的编译叫本地编译,也就是在当前平台编译,编译得到的程序也是在本地执行。编译器包括各种工具软件,比如编译器,预处理器,汇编器和调试器等,以及在编译过程中依赖各种库函数,系统内核头文件等,因此也把交叉编译器称为交叉编译工具链。交叉编译工具链的制作是嵌入式系统开发的第一步,制作好了交叉编译工具链
3、,才能为目标平台制作bootloader,内核,文件系统以及应用程序,所以交叉编译工具链的制作是嵌入式系统开发的第一步。必备知识:什么是交叉开发环境?什么是交叉编译工具链?7.2交叉开发环境的建立交叉开发环境的建立是在嵌入式系统硬件模板开发完成后,最先要完成的任务,在此假设嵌入式系统硬件模版为裸板。从7-1图可以看出,交叉开发环境的建立主要是要在宿主机上建立为目标系统开发系统软件和应用软件的开发环境,主要完成如下工作:1.在宿主机上安装Linux操作系统发行版宿主机上的发行版Linux操作系统的主要任务是运行交叉编译器,以及各种应用软件,为交叉开发软硬件服务。2.是在安装了L
4、inux的PC机上,构建目标系统的交叉编译器,交叉编译器的功能是为目标系统开发各类软件,包括系统软件。宿主机Linux操作系统的选型和安装方式以方便系统开发为唯一选择标准,可以选择开发者熟悉的Linux操作系统发型版本,最好与嵌入式目标系统Linux操作系统内核版本保持一致。比如目标系统拟采用2.6内核的Linux操作系统,那么宿主机上Linux发行版最好选择2.6内核的发型版本或者更高级的版本。7.2.1宿主机上Linux操作系统安装安装过程如第二章Linux系统安装方法相同。7.2.2虚拟机Linux各种软件安装和设置第三章嵌入式Linux系统基础中详细讲过,在此不再赘述
5、。7.3交叉编译工具链制作通常构建交叉工具链有3种方法。1.直接通过网上(ftp.arm.kernel.org.uk)下载已制作好的交叉编译工具链。该方法的好处不用多说,当然是简单省事,但和此同时该方法有一定的弊端就是局限性太大,因为毕竟是别人构建好的,也就是固定的没有灵活性,所以构建所用的库及编译器的版本也许并不适合你要编译的程序,同时也许会在使用时出现许多莫名的错误,建议读者慎用此方法。2.通过Crosstool脚本工具Crosstool脚本由专业的公司制作的,生成交叉编译工具链的脚本程序,只需要进行简单的配置修改,就可以进行一次编译生成交叉编译工具链,该方法相对于方法一
6、要简单许多,并且出错的机会也非常少,建议大多数情况下使用该方法构建交叉编译工具链。3. 分步编译和安装交叉编译工具链从网上下载相关的源代码包,自己配置编译,生成交叉编译工具链。该方法相对比较困难,适合想深入学习构建交叉工具链的读者。如果只是想使用交叉工具链,建议使用方法二或方法三构建交叉工具链。7.3.1.直接通过网上下载或使用相关的硬件平台厂家提供的开发工具链本课程后续搭建交叉开发环境时,主要使用平台厂家提供的交叉编译工具链。7.3.2用Crosstool工具构建交叉工具链Crosstool是一组脚本工具集,可构建和测试不同版本的gcc和glibc,用于那些支持glibc
7、的体系结构。他也是个开源项目,下载地址是http://kegel.com/crosstool。用Crosstool构建交叉工具链要比分步编译容易得多,并且也方便许多,对于仅仅为了工作需要构建交叉编译工具链的读者建议使用此方法。1.准备构建工具链的资源文件用Crosstool脚本构建交叉编译工具链所需资源如下:crosstool-0.42.tar.gzlinux-2.6.10.tar.gzbinutils-2.15.tar.bz2gcc-3.3.6.tar.gzglibc-2.3.2.tar.gzglib
此文档下载收益归作者所有