构建嵌入式liunx系统.doc

构建嵌入式liunx系统.doc

ID:55266969

大小:47.00 KB

页数:18页

时间:2020-05-08

构建嵌入式liunx系统.doc_第1页
构建嵌入式liunx系统.doc_第2页
构建嵌入式liunx系统.doc_第3页
构建嵌入式liunx系统.doc_第4页
构建嵌入式liunx系统.doc_第5页
资源描述:

《构建嵌入式liunx系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、构建嵌入式liunx系统4.1.1基础知识由于一般嵌入式开发系统存储容量有限,在裁减和定制Linux,运用于嵌入式系统前,通常需要在PC机上建立一个用于目标机的交叉编译环境,也就是将各种二进制工具程序集成为工具链,其中包括如GNU的链接器(ld)、GNU的汇编器(as)、ar(产生修改和解开一个存档文件)、C编译器(gcc)以及C链接库(glibc)。本文以在Linux系统上针对目标机arm为例,介绍了跨平台开发工具链的建立过程。2什么是交叉编译?简单地说,交叉编译就是在一个平台上生成在另一个平台上执行的代码。这里的平台包括体系结构(Architecture)和操作系统(OS)。同一个

2、体系结构可以运行不同的操作系统,同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,x86Linux平台是Intelx86体系结构和Linuxforx86操作系统的统称。为什么要用交叉编译?原因有两个。一是目标平台所需要的bootloader以及OS核心还没有建立时,需要作交叉编译。二是目标机设备不具备一定的处理器能力和存储空间,即单独在目标板上无法完成程序开发,所以只好求助宿主机。这样可以在宿主机上对即将在目标机上运行的应用程序进行编译,生成可以在目标机上运行的代码格式,然后移植到目标板上,也就是目前嵌入式程序开发的Host/Target模式。3对于i386的理解如果单纯说i

3、386、i686,就是指平时所说的CPU类型。从Linux内核设计上讲,i386是架构,i486/586/686这些CPU的架构都是i386,所以很多linux方面的设计都是基于i386。简单地说,i386跟ppc,alpha,arm等放在一起时就是指架构,跟i586,i686放在一起指处理器型号,一个是横向的,一个是纵向的。4.1.2GUN跨平台开发链的建立过程1选定软件版本要想选用适当的版本,以保证建立的工具链可用,就必须找到适合主机和目标板的组合。这些可以自己测试,也可以从网上寻找已经测试过的版本组合,即binutils、gcc、glibc的版本组合。我用的宿主机为redhat-

4、9.0,目标机arm,选择的版本如下:-----------------------------------------------------------------------------binutils-2.11.2.tar.gz包含有ld、ar、as等一些产生或者处理二进制文件的工具。gcc-core-2.95.3.tar.gz包含GCC的主体部分。gcc-g++2.95.3.tar.gz可以使GCC编译C++程序。glibc-2.2.4.tar.gzlibc是很多用户层应用都要用到的库,即C链接库。glibc-linuxthreads-2.2.4.tar.gzlibc用于支持

5、Posix线程单独发布的压缩包。linux-2.4.21.tar.gz+rmk1Linux的内核及其支持ARM的补丁包。-----------------------------------------------------------------------------你可以尝试选定更新的版本,编译无法通过时,依次使用较旧的版本。即时发现新版本组合能够编译成功,仍然需要测试建立的工具链是否可以使用。你可以从FTP网站ftp://ftp.gnu.org/gnu/或者任何其他的镜像网站下载GNU工具链的各个组件:binutils包位于binutils目录,gcc包位于gcc目录,而gl

6、ibc包与glibc-linuxthreads包放在glibc目录。下面给出上面选用的各个版本的下载路径。-----------------------------------------------------------------------------binutils-2.11.2.tar.gzftp://ftp.gnu.org/gnu/binutils/binutils-2.11.2.tar.gzgcc-core-2.95.3.tar.gzftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gzgcc-g++2.9

7、5.3.tar.gzftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-g++-2.95.3.tar.gzglibc-2.2.4.tar.gzftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gzglibc-linuxthreads-2.2.4.tar.gzftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.4.tar.gzli

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。