- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自己动手制作ARM交叉编译工具.
用于 ARM 的GNU交叉编译和调试工具链,全部采用必威体育精装版版本的软件包(截止2009年5月10日):Binutils-2.19.1GCC-4.4.0Glibc-2.9Glibc-ports-2.9GMP-4.3.0MPFR-2.4.1GDB-6.8Insight-6.8各个软件包使用的配置参数可以见我Blog前几篇文章:自己动手制作交叉编译工具链(1 )到(6)特点: 支持EABI,支持Soft-Float(软浮点),包含完整的交叉调试工具 GDB、gdbserver 和 Insight 。下载后解压至 /usr/local/arm/4.4.0 目录下,添加环境变量后即可使用。下载地址: /~honwon/cross-gcc-4.4.0-glibc-2.9.tar.bz2准备工作
这个过程其实是很简单的。 之所以经常会失败, 大部分都是因为configure时使用的配置选项不正确导致编译出错。所以,出错时最好的解决办法是根据提示,把相关配置选项的真正含义搞明白,然后再做取舍;如果一味地去网上有哪些信誉好的足球投注网站别人的办法,即使解决了错误,自己也还是知其然而不知其所以然。
工作环境:普通的x86电脑,Ubuntu9.04操作系统,目标是制作ARM交叉编译工具链,支持EABI和Soft Float。
使用的软件包版本:Binutils-2.19.1; GCC-4.4.0; Glibc-2.9; Linux-2.6.29; gmp-4.3.0; mpfr-2.4.1; 所需的软件包大都可以从中国科技大学的镜像服务器上下载:, 教育网内速度应该是很快的。
工作目录结构:
package 存放下载到的原始文件压缩包patch 存放一些补丁文件source 存放解压缩后的源代码,build???? 存放编译过程中生成的所有文件,不在源代码目录下编译是为了避免对源代码文件夹造成影响result?? 存放编译后生成的最终结果放在此处
几个环境变量:
export PACKAGE_DIR=${PWD}/package
export BUILD_DIR=${PWD}/build
export PATCH_DIR=${PWD}/patch
export RESULT_DIR=${PWD}/result
export SOURCE_DIR=${PWD}/source
export TARGET_PREFIX=${RESULT_DIR}/${TARGET}
export HOST=i686-pc-linux-gnu
export TARGET=arm-hwleeminthen-linux-gnueabi
export PATH=$PATH:${RESULT_DIR}/bin
export PATH=$PATH:${PREFIX}/bin
注意这里的arm-*-linux-gnueabi,(中间的星号部分是任意的),这种写法是固定格式的,可以在Binutils软件包的README文件里找到格式说明。其中gnueabi表示创建的交叉编译器支持EABI。
什么是EABI?简单的说,就是C/C++源代码编译成汇编码的约定,如符号表的生成,全局变量的初始化等。我们可以把ABI理解为一套规则,这套规则一般包括定义了以下内容: 1.应用程序如何发出系统调用来trap到内核态。 2.如何使用机器的寄存器。比如,RISC处理器的ABI就要规定用那个通用寄存器来作stack pointer和frame pointer。3.规定如何进行procedure call。这是从网上找来的别人的介绍,等我把它搞透彻了再通过一些实验来具体说明。
使用shell脚本自动创建目录、下载软件包、自动解压和打补丁, 本文中所叙述的所有步骤都写在Shell脚本中。 该脚本将放在Blog上供参考。
第一步 编译Binutils
GNU Binutils是一组二进制工具集。 目前必威体育精装版的版本为2.19.1,可以在中国科技大学的GNU镜像服务器上下载:/gnu/binutils/binutils-2.19.1.tar.bz2
编译完成所需时间大概为:30分钟
配置选项
编译前要确保主机上已经配置好了GCC编译器。配置选项为:
${SOURCE_DIR}/${PACKAGE_BINUTILS}/configure \??????? --target=${TARGET} \??????? --prefix=${RESULT_DIR} \??????? --disable-nls \??????? --disable-werror \??????? --disable-multilib \??????? --enable-shared??
文档评论(0)