交叉编译原理.doc

交叉编译原理.doc

ID:57711947

大小:14.50 KB

页数:2页

时间:2020-09-01

交叉编译原理.doc_第1页
交叉编译原理.doc_第2页
资源描述:

《交叉编译原理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、二、交叉编译原理下面介绍一下交叉编译原理,那什么是交叉编译呢,就是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,这个编译过程就叫交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码,需要注意的是,这里所谓的平台,实际上包括两个概念,一个是体系结构,体系结构就是我们熟悉的ARM或者AMD,还有Intel的x86就是我们现在使用的PC机等等,一个是操作系统,操作系统就是指Windows、uCOSII、Linux和Unix等等,同一个体系结构可以运行不同的操作系统,比如我们在PC机上可以运行Windows和Linux等操作系统,在ARM上也可以运行Li

2、nux和WinCE等,同一个操作系统也可以在不同的体系结构上运行,比如Linux系统可以运行在PC机上也可以运行在ARM上,也可以运行在其它嵌入式平台上,但是由于体系结构的不同,操作系统的差异,那么同样的程序不可能运行在多个平台上,比如Windows平台的应用程序拿到Linux下就不能运行了,如果一个应用程序想要在另一个平台上运行,那么必须使用针对这个平台的编译器,来重新编译这个应用程序的代码,这样才能在这个平台上运行,比如我想在Linux系统下运行Windows平台的腾讯QQ程序,那首先我需要有这个QQ程序的源代码,然后使用Linux系统下的编译器来编译这个QQ的源代码,这样编译

3、出的可执行程序就可以在Linux系统下运行了,那理论上来说就是这样的,那么我们如何让程序在ARM开发板上运行呢,这就需要使用针对ARM平台的编译器来编译程序,那问题就来了,为什么我们非要使用交叉编译器呢,就以我们使用的ARM开发板来说,前面我说过你完全可以把开发板当做电脑来用,它上面可以跑操作系统,也可做好多好多事情,理论上来说在它上面也可以使用编译器来编译程序,但大家知道在编译程序时会产生大量的中间文件,这样会暂用很大的内存和磁盘空间,而且对CPU的处理速度也有一定的要求,那么我们使用的S3C2440A处理器CPU的频率也就能达到400~500MHz那样,内存和磁盘空间也只有几十

4、到一百多兆,这样完全达不到编译程序的水平,那么我们只有在PC机上编译出运行在ARM上的程序,然后再将程序下载到ARM上运行要进行交叉编译,我们需要在主机平台也就是PC机Linux系统上安装对应的交叉编译工具链(crosscompilationtoolchain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码,那PC机就是这里说的主机平台,ARM就是目标平台,他们之间可以用JTAG电缆、串口电缆、Ethernet网络交叉电缆或USB线进行链接下载程序,对于交叉编译工具链,你可以从网上下载,也可以自己制作,从网上下载很方便,你可以直接使用,但交叉编译器不是

5、万能的,一个版本的编译器可能只限于编译某些程序,那编译其它程序可能就会出错,那么你不得不再寻找其它版本的交叉编译器,比如我以前编译bootloader版本vivi的时候,只能用2.9.3版本的编译器,使用更高版本的编译器就会出错,我编译QT程序的时候,只能使用4.1.2版本的编译器进行编译,那么这时候你希望自己制作出一个交叉编译工具来满足自己的需求,那这也是非常复杂的工作,有时候会遇到很多的困难,那如果大家有兴趣的话可以自己动手做一个交叉编译工具链,那可以上网找一些好的参考文档,然后跟着它一步一步的制作那我们使用的交叉编译工具都是在网上下载的,我们直接安装就可以使用了,那这些解码包

6、在光盘资料中Linux平台工具目录下,cross-2.95.3.tar.bz2这个就是一个比较老的版本的,我们一般不使用它,但编译vivi的时候可能会用到它,arm920t-eabi-4.1.2.tar.gz的编译器,它支持eabi,它可以用来编译我们TX-2440A开发板上的所有程序,那为什么选择这个编译器呢,因为我以前使用的其它版本的编译器,像3.4.1、3.4.2版本的,用这些编译器编译QT程序的时候,在运行时会出现段错误,那后来找到的原因是交叉编译器版本的问题,所以在QT的一个官方网站上提供了这个4.1.2版本的编译器,那目前QT程序只能用这个编译器来编译,arm-linu

7、x-gcc-4.3.2.tgz也支持eabi,也可以用来编译大部分程序,那什么是EABI?其实它就是一种编译的规范,那交叉编译器在编译的时候对于浮点数运算会使用硬浮点运算,那对于没有硬浮点运算的处理器,比如S3C2440它会使用软浮点,那这样会在速度上受到很大的限制,而使用eabi就对浮点运算进行了优化,提高了浮点运算的性能,也节省了编译时间

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

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

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