- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定制ToolChain for ARM
标题:定制ToolChain for ARM2008-01-15 17:54:481、 ToolChain 简介ToolChain包含许多部件:主要之一是GCC,它可以是本机编译工具或交叉编译工具,GCC由Binuitls工具支持,Binutils是二进制代码维护工具,这些部件是编译程序的必要工具,同时他们也需要C库(glibc)支持。认真考虑一下:定制一套编译工具并不是想像中的易事!如果你还想继续看下去,必须具备如下技能:????熟悉Linux环境????熟悉Linux的必要命令和工具的使用????知道如何配置、编译核心和应用程序以下章节将介绍怎样定制ARM交叉编译工具集,但对于大多数ARM开发者来说,没有必要亲自做这件事,完全可以用现成的工具集。除非现成的工具集不满足你的使用要求,或者你想提高开发应用的能力。总之,我们强烈建议你使用现成稳定的工具集来做应用开发!2、定制ToolChain首先来看看工作的大至步骤:????决定目标的名称????决定目标的存放位置????编译、安装Binutils????编译、安装GCC????编译、安装GLIBC????让交叉编译工具支持更多编译语言????测试定制的交叉编译工具2.1、决定目标的名称本机编译工具集编译的代码只适用本机(大多数PC是X86)运行,对于ARM开发者来说,需要一个能在本机编译、但编译却生成ARM运行代码的一套交叉编译工具集。因此,选择一个与本机工具集相异的特定含义的目标名称是非常有必要的。arm-linux:是个比较受欢迎的名称,支持ELF格式(ARMLinux标准)。除Acorn用户使用老的a.out格式外。arm-linuxaout:选择a.out格式,ARMLinux基本不支持它了。arm-aout、arm-coff、arm-elf、arm-thumb:其它的格式名。你也可以在其中插入版本信息,比如:armv2:ARMV2核,支持26bit模式。armv3l、armv3b:ARMV3核,小字节(l)或大字节(b)模式。armv4l、armv4b:ARMV4核,如:StrongARM、ARM7TDMI、ARM8、ARM9。同样也支持小字节(l)或大字节(b)模式。armv5l、armv5b:ARMV5核,如:XScale核ARM10。同样也支持小字节(l)或大字节(b)模式。选择什么名称对定制ARM交叉编译工具集没太大的影响,但用大家常用的名称会比较好些。2.2、决定目标的存放位置既然是定制ARM交叉编译工具集,那么就不能覆盖本机的编译工具集(否则,本机将不能再编译本机运行代码!),同时还要考虑本机Linux环境的多用户、多任务特征。因此,选择一个与本机编译工具集不同的多用户共享位置是必要的。ARM交叉编译工具集的存放位置:在本文中,我们让它等于/usr/local/arm????????(本机编译工具集的存放位置通常在/usr或/usr/local)ARM交叉编译工具集的名称:在本文中,我们让它等于 arm-pc-linux,表示在本?????????地pc上编译,生成的是ARM指令代码(详细规则见glibc的README文件)。????????(本机编译工具集名称通常是: i686-pc-linux-gnu,表示在本地pc上编译,??????????生成的是i686指令代码)ARM核心文件位置:本文中我们让它等于 ~/armlinux 。不过,~/armlinux在这里仅?????????????????是个联接而已,它指向真正ARM核心源代码位置(见2.4.1描述)。?????????????????(本机核心存放位置通常在/usr/src/linux)2.3、编译、安装Binutils它是GNU()工具之一,主要是二进制代码的处理维护工具。2.3.1、Binutils工具部件简介add2line:将地址转换成文件名或行号对,以便调试程序。ar:从体系文件中创建、修改、扩展程序代码。as:生成汇编程序代码。c++filt:建立低级语言和用户级语言的名称符号联接,并保持它们的相互关系。gasp:汇编宏处理器。ld:目标代码联接,联接各目标代码块,它是生成可执行代码的最终步骤。nm:从目标代码文件中枚举所有调试符号名。objcopy:使用GNU BSD库,把目标代码从一文件格试拷贝成另一种格试。objdump:显示目标文件信息。readelf:显示elf文件信息。ranlib:生成索引以加快对归档文件的访问。size:列出目标模块或文件的代码尺寸。strings:打印可打印的目标代码字符(至少4个字符),打印字符多少可以控制。对?????????于其它格试的文件,打印字符串。strip:放弃所有符号联接。2.3.2、Binutils的配置和编译安装tar -
文档评论(0)