分享到:

交叉编译系统的研究与实现

伴随着以计算机技术、通讯技术为主的信息技术的飞速发展和互联网的广泛应用,3C(Computer、Communication、Consumer)合一将成为必然趋势。信息家电,手持设备,移动设备等嵌入式产品的迅速发展,使得嵌入式软件开发再度成为一个研究热点。由于嵌入式设备的性能局限,往往不能通过本机编译得到所需软件的可执行程序。因此,以Linux为主机操作系统,搭配一个交叉编译系统,为嵌入式设备生成可执行程序已成为现在日益流行的编译嵌入式软件的解决方案。而开放源码的编译器GCC,经过多年的发展,已能支持几乎所有知名厂商的处理器,是嵌入式软件开发中理想的交叉编译器。但现有GCC支持的平台并不能满足层出不穷的嵌入式产品的开发需要,仍有许多平台得不到支持。本论文以交叉编译系统ZLTCG的开发为背景,详细介绍了交叉编译系统GCC的体系结构,对其高度可移植性所依赖的中间表示和机器描述技术进行深入研究,并在此基础上完成了GCC在目标机MIPSX  (本文共73页) 本文目录 | 阅读全文>>

《单片机与嵌入式系统应用》2012年07期
单片机与嵌入式系统应用

大型嵌入式软件的自动化交叉编译

引言在嵌入式Linux软件的开发当中,交叉编译基本是不可或缺的一步。如果整个系统规模较小的话,例如一些不需要其他库或者很少依赖包的系统,我们可以采取人工的办法:下载源代码、解压缩、设置参数、交叉编译然后下载运行。但是随着系统规模的不断扩大,依赖包的不断增长,人工交叉编译所需的工作量随之增长,同时需要富有经验的工程师进行操作,难以实现目前市场所要求的快速开发。例如笔者对一款Linux下的媒体管理软件mythtv进行交叉编译的时候就遇到了这个问题,整个应用软件的压缩包达到几十兆,同时还依赖于其他几十个库,而每个库又有各自的依赖,如果按照传统的交叉编译方式进行的话无疑是个灾难。幸运的是,mythtv被集成在开源框架系统Openbricks当中,这使得整个系统的交叉编译、定制、开发和发布变得简单起来。1 Openbricks框架系统介绍Openbricks是一个企业级的框架系统,内部集成了Bootloader,kernel,System...  (本文共3页) 阅读全文>>

《小型微型计算机系统》1985年Z1期
小型微型计算机系统

一个异机开发工具——交叉编译

引言 随粉计算机体系结构的不断发展,特别是徽机的迅邀开发和普及,对软件工作者不断地提出了新问题。其中最迫切的问翅是: 如何为那些自身无能力或能力有限的单板机和徽机开发软件? 于是,软件的移植问题〔”或者叫做樱序转化问翅成了“热门”课月。那么,如何利用已经在宿主机上已开发的大t的,品种挤多的径序包呢了低层移植全’是一个很好的办法,它不必考虑高层上的任何性质(如,用什么高级语言编写的等等),绝大都分宿主机上的可都以移植,当然移植后的效率问翅还值得研究。高级语言之间的转化一般也局限于向族语言〔3’之间。混合型语言t今’编译的出现,虽可以较好地解决有效利用多种语言实现的程序库的问题,但先决条件是本机上必需要有这些库程序。 那么,如何更有效地解决异机间软件转化问翅呢? 我们的实践证明,利用交叉编译手段来完成这个工作是行之有效的。 设有宿主机Host,目标机Goal,我们在这二者之间建立如下一个棋式. L语言}H~G!交叉编译,CC(Cro...  (本文共8页) 阅读全文>>

《太原师范学院学报(自然科学版)》2010年02期
太原师范学院学报(自然科学版)

基于ARM的交叉编译工具的制作

0引言在进行嵌入式开发时,需要建立交叉编译环境,其目的在于使用普通的PC作为宿主机来调试目标开发板[1].在进行嵌入式系统的开发时,运行程序的目标平台通常只有有限的存储空间和运算能力,其一般的静态存储空间比较小.针对这样的硬件环境,在ARM平台上进行本机编译就不太可能,交叉编译工具的出现正好解决了这一问题.目前常见的制作交叉编译工具链的方法有以下两种:1)分步编译Binutils,GCC,Glibc[2].这样做难度比较大,通常不容易成功.2)采用Crosstool[3]脚本工具一次编译生成,这种方法对于研发嵌入式系统来说非常有用.1交叉编译基础知识交叉编译就是在一个平台上生成可以在另一个平台上执行的代码.这里的平台,实际上包含两个概念:体系结构,操作系统.同一体系结构可以运行不同的操作系统.同样,同一个操作系统也可以在不同的体系结构上运行.我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for ...  (本文共4页) 阅读全文>>

《电子产品世界》2008年11期
电子产品世界

交叉编译:ARM搏击Intel的软肋

所谓交叉编译(CrossCompiling)是指借助主机操作系统和硬件资源开发的软件代码下载到目标系统上运行的软件环境,顾名思义交叉编译是区别于宿主机编译的,宿主机编译是在主机上完成编译-调试-运行的过程,这也是目前主流计算应用模式(如PC)。交叉编译一直是MCU和嵌入式系统开发的特色和骄傲。但到了今天它面向密集计算和应用的移动互联网时显得捉襟见肘,很难想象把大量互联网上成熟的IA二进制应用,全部再经过源代码交叉编译移植到A R M体系结构,即使在同一种操作系统架构上也是巨大工作。ARM是今天传统嵌入式系统和手机领域里的佼佼者,Intel则在PC产业占有绝对优势,预测到未来PC增长的放缓,Intel正在瞄准和互联网连接的消费电子、移动终端(MID)和超低成本上网笔记本(netbook)等嵌入式应用,依托成熟的IA处理器技术、丰富的软件、制造优势,Intel新型嵌入式Atom处理器已经在超低成本笔记本取得了成功,还正在获得一些MI...  (本文共1页) 阅读全文>>

《小型微型计算机系统》1987年02期
小型微型计算机系统

FORTH交叉编译的简单实现方案

概述 本文所说的交叉编译,是指在宿主系统下对源文本进行编译,而生成的目标程序应能脱离宿主系统而在另一环境下运行。这里宿主系统应是一般的FoRTH解释系统。而交叉编译程序则是一个专门编写的,可以成为宿主系统的扩充部分的程序,启动它之后,就可以对外存中的或键入的源文本进行交叉编译。 FoRTH语言与传统的其它高级语言相比,其独到之处是既有高的开发效率又有高的目标程序质量。特别是其目标的运行速度可以接近汇编语言开发的程序,因此,它特别适宜于在诸如过程控制这样的领域应用。但是,在这一类的领域中,实际要求的程序常常不是要在一个完备的计算机系统上运行,而是希望拿到某个专用的设备(如单板机)上去独立运行,这就需要交叉编译。 另外,如果用FoRTH语言来编写另一系统软件,而又希望该软件脱离原FoRTH系统而运行,则也需要交叉编译,特别是目标系统又是另一个FORTH解释系统时,也就是说是在对FoRTH进行自展开发或自展移植时,这又是需要交叉编译的...  (本文共12页) 阅读全文>>