自己动手制作arm交叉编译工具

自己动手制作arm交叉编译工具

ID:9759316

大小:78.50 KB

页数:11页

时间:2018-05-08

自己动手制作arm交叉编译工具_第1页
自己动手制作arm交叉编译工具_第2页
自己动手制作arm交叉编译工具_第3页
自己动手制作arm交叉编译工具_第4页
自己动手制作arm交叉编译工具_第5页
资源描述:

《自己动手制作arm交叉编译工具》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、用于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/l

2、ocal/arm/4.4.0目录下,添加环境变量后即可使用。下载地址:http://mail.ustc.edu.cn/~honwon/cross-gcc-4.4.0-glibc-2.9.tar.bz2准备工作这个过程其实是很简单的。之所以经常会失败,大部分都是因为configure时使用的配置选项不正确导致编译出错。所以,出错时最好的解决办法是根据提示,把相关配置选项的真正含义搞明白,然后再做取舍;如果一味地去网上搜索别人的办法,即使解决了错误,自己也还是知其然而不知其所以然。工作环境:普通的x8

3、6电脑,Ubuntu9.04操作系统,目标是制作ARM交叉编译工具链,支持EABI和SoftFloat。使用的软件包版本:Binutils-2.19.1;GCC-4.4.0;Glibc-2.9;Linux-2.6.29;gmp-4.3.0;mpfr-2.4.1;所需的软件包大都可以从中国科技大学的镜像服务器上下载:http://oss.ustc.edu.cn,教育网内速度应该是很快的。工作目录结构:package存放下载到的原始文件压缩包patch存放一些补丁文件source存放解压缩后的源代码,

4、build    存放编译过程中生成的所有文件,不在源代码目录下编译是为了避免对源代码文件夹造成影响result  存放编译后生成的最终结果放在此处几个环境变量:exportPACKAGE_DIR=${PWD}/packageexportBUILD_DIR=${PWD}/buildexportPATCH_DIR=${PWD}/patchexportRESULT_DIR=${PWD}/resultexportSOURCE_DIR=${PWD}/sourceexportTARGET_PREFIX=${

5、RESULT_DIR}/${TARGET}exportHOST=i686-pc-linux-gnuexportTARGET=arm-hwleeminthen-linux-gnueabiexportPATH=$PATH:${RESULT_DIR}/binexportPATH=$PATH:${PREFIX}/bin注意这里的arm-*-linux-gnueabi,(中间的星号部分是任意的),这种写法是固定格式的,可以在Binutils软件包的README文件里找到格式说明。其中gnueabi表示创建的

6、交叉编译器支持EABI。什么是EABI?简单的说,就是C/C++源代码编译成汇编码的约定,如符号表的生成,全局变量的初始化等。我们可以把ABI理解为一套规则,这套规则一般包括定义了以下内容:1.应用程序如何发出系统调用来trap到内核态。2.如何使用机器的寄存器。比如,RISC处理器的ABI就要规定用那个通用寄存器来作stackpointer和framepointer。3.规定如何进行procedurecall。这是从网上找来的别人的介绍,等我把它搞透彻了再通过一些实验来具体说明。使用shell脚

7、本自动创建目录、下载软件包、自动解压和打补丁,本文中所叙述的所有步骤都写在Shell脚本中。该脚本将放在Blog上供参考。第一步编译BinutilsGNUBinutils是一组二进制工具集。目前最新的版本为2.19.1,可以在中国科技大学的GNU镜像服务器上下载:http://oss.ustc.edu.cn/gnu/binutils/binutils-2.19.1.tar.bz2编译完成所需时间大概为:30分钟配置选项编译前要确保主机上已经配置好了GCC编译器。配置选项为:${SOURCE_DIR

8、}/${PACKAGE_BINUTILS}/configure       --target=${TARGET}       --prefix=${RESULT_DIR}       --disable-nls       --disable-werror       --disable-multilib       --enable-shared  makeconfigure-hostmake&&makeinstall

9、

10、exit1选项详解--target=${TAR

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

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

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