版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM-Linux交叉编译环境的创建,姓名:李京 指导教师:王伟 学院:信息工程学院 班级:电技C081,课题的研究内容,在Linux系统上针对目标机ARM9处理器,分析跨平台交叉编译的概念、原理,研究创建基于ARM-Linux的交叉编译环境。,2,3,目录,课题研究的目的意义 开发方案的选择 分步编译安装源代码与库文件方法 用crosstool-ng 构建交叉编译工具链 结论 致谢,课题研究的目的意义,市场需求:嵌入式系统是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源非常有限,并且对成本很敏感,有时对实时响应的要求很高。 条件限制:由于嵌
2、入式设备的性能局限性,cpu运算能力差,存储空间不足等原因,往往不能通过本机编译来得到所需软件的可执行程序。 解决方法:通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上编译出针对其他平台的可执行程序。,4,开发环境的选择,1、Windows+Linux+ 目标系统 2、Windows+Cygwin + 目标系统 3、Windows+Vmware 虚拟机(Linux)+目标系统,5,开发方案的选择,Linux 环境下构建交叉工具链有以下三种方法: (1)分别编译和安装交叉工具链所需要的库和源代码,最终生成交叉编译工具链 (2)通过crosstool 或crosstool-n
3、g 脚本工具来实现一次编译,生成交叉编译工具链 (3)直接通过网上下载已经制作好的交叉编译工具链,6,分步编译安装源代码与库文件方法,首先选择合适版本的软件包: Binutils-2.16.tar.bz2 Gcc-3.4.4.tar.bz2 Glibc-2.3.3.tar.bz2 Glibc-linuxthreads-2.3.3.tar.bz2 Gdb-6.4.tar.bz2 Linux-2.6.16.1.tar.bz2,7,分步编译安装源代码与库文件方法,创建编译环境 编译binutils(二进制工具) 编译一个交叉编译版本的gcc 编译一个交叉编译版本的glibc 编译完整gcc 编译完成
4、后生成的文件目录,8,创建编译环境,首先设置环境变量 创建相关目录 安装linux头文件 使用ARM平台的库文件创建相关链接。,9,编译binutils(二进制工具),安装二进制工具包是非常重要,Glibc和gcc会针对可用的连接器和汇编器进行多种测试,来决定打开一些特性。 解压二进制工具包 配置,编译和安装二进制工具包,10,编译gcc,创建交叉编译版本的gcc,需要交叉编译版本的Glibc及头文件,而交叉编译版本的Glibc是通过交叉编译版本的gcc创建的。先编译对c语言的支持,并禁止支持线程。 编译gcc之前需要进行修改,首先修改gcc源代码中的t-linux文件。 需要修改linux-
5、elf.h文件,删除文件中对LIBGCC-SPEC的定义。 接下来解压软件包、配置、编译、安装。,11,编译Glibc,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现 创建Glibc需要的时间很长,也容易出错。之前创建了arm-linux-gcc,arm-linux-ar和arm-linux-ranlib等工具。在编译Glibc前,还要进行一些修改 源代码准备好后,需要修改4个文件 然后开始编译,12,编译完整的Gcc,首先在t-linux文件中删除”-Di
6、nhibit_libc”选项,这个选项是在编译bootstrap_gcc时添加进去的,当时是为了绕过一些检查,来减少编译所花费的时间 然后开始编译,13,$PREFIX目录结构,14,arm-linux目录结构,15,用crosstool-ng 构建交叉编译工具链,Crosstool 是一套可以自动编译不同匹配版本的gcc和glibc, 并且可以作为测试的脚本程序。它是一个开源项目, 但由于其近年来停止更新, 最高只支持gcc 4.1.1 和glibc2.3.6 的版本,并且在编译超过Linux 2.6.9 以上的内核时,会出现错误。而crosstool-ng 则一直保持更新,在编译高版本的L
7、inux 内核时也不会产生错误,因此一般采用crosstool-ng 来代替crosstool。,16,制作流程,下载crosstool-ng-1.9.3 安装所必须的工具文件(这些工具文件包括:bison、flex、texinfo、automake、libtool、patch等。 ) 安装crosstool-ng 复制交叉编译文件(生成交叉编译工具之前,需要准备配置文件。可以复制对于ARM 环境编译的配置文件到安装目录,这个配置文件在sample 目录下。) 配置交叉编译工具链 编译工具链,17,配置交叉编译工具链,复制好构建交叉编译工具所需的配置文件之后,还需对其进行环境设置。 1) 下载
8、编译所需源码包并设置路径:在随后的编译过程中,需要一系列的软件包,通过查看crosstool/install/bin 目录下的.config 文件,可以得知所必需的软件包 2) 修改交叉编辑安装路径:交叉编译器的安装位置,修改为/home/crosstool-ng/build 3) 修改交叉编译体系 4) 内核源码版本修改:确定编译系统的Linux 内核版本。该文的Linux 内核为2.6.32.15。在install/bin 目录下,修改.config 文件.修改其中的内核版本。,18,编译工具链,在终端中执行sudo ./home/crosstool-ng/install/bin/ct-ng build, crosstool-ng 会经历软件包解压, 配置,编译,链接,大概需要两个小时之后,就可以得到相应的工具链了。,19,用crosstool-ng 构建交叉编译工具链,20,结论,分步编译的方法优点是:可以按照自己的需求设置一些功能,例如支持软浮点功能。缺点是:在执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年强农惠农富农政策全景解读十五五开局农业农村发展新动能
- 2026年连锁化品牌化养老服务企业培育方案
- 2026年生物基聚酯树脂在粉末涂料配方设计指南
- 2026年深海载人潜水器运维保障体系建设指南
- 2026年细胞工厂病毒载体转导与培养增殖技术
- 2026年梯度材料设计与3D打印:功能梯度零件一体成形
- 疫情下医患沟通注意事项课件
- 2026年零碳建筑碳管理平台与虚拟电厂智慧管控体系建设
- 2026江苏苏州市常熟市卫生健康系统招聘备案制人员7人备考题库及完整答案详解【有一套】
- 2026辽宁丹东国有资本投资运营集团有限公司面向社会招聘备考题库(预热题)附答案详解
- 《城市地下道路工程设计标准》DBJ41-T218-2019
- CCAA - 质量管理体系基础考前秘卷答案及解析 - 详解版(65题)
- 降脂药物应用科普
- 2026年江苏航空职业技术学院单招职业适应性测试题库新版
- 扁平化指挥调度系统解决方案
- 第16课+模块功能先划分+课件++2025-2026学年人教版初中信息科技八年级全一册
- 智能建筑专业介绍
- GB/T 17587.2-2025滚珠丝杠副第2部分:公称直径、公称导程、螺母尺寸和安装螺栓公制系列
- 2025年河南法院书记员招聘考试真题及答案
- 2026年劳动合同范本
- 租赁修井设备合同范本
评论
0/150
提交评论