论文摘要
信息技术的发展,数字化产品的普及,导致了对嵌入式开发的巨大需求。以Linux为宿主机系统,搭配一个交叉编译环境,为嵌入式设备生成可执行程序己成为现在日益流行的编译嵌入式软件的解决方案。而开放源代码的GNU工具链是一套开源的开发环境,是嵌入式软件开发中理想的交叉编译器。但现有GNU工具链支持的平台并不能满足层出不穷的嵌入式产品的开发需要,仍有许多平台得不到支持,例如我们进行的minix向ARM-MINIX平台的移植。本文以在linux环境下构建MINIX嵌入式系统的交叉编译工具链为背景,首先介绍了交叉编译系统的基本组成和结构,以及利用GCC构建交叉编译环境的优越性。然后对目标平台作了介绍,分析了GCC编译器,说明了GCC的设计思想,系统结构,介绍了GNU Binutils的功能,使用方法;接着分析了GNU工具链中的GAS和GLD的实现机制及源代码结构,由于BFD是GNUBinutils的基础,GAS和GLD都是使用BFD库来操作目标文件,因此在这一部分本文对BFD库的工作机制,数据结构也作了重点分析。紧接着说明了GCC交叉编译系统的移植思路和方法,实现难点,以及一些相关技术细节,这涉及到了若干重要的C源文件,Makefile,配置文件的修改,重点给出了BFD库,GAS和GLD的分析及其重定向(通常GCC生成的目标程序是针对GNU/Linux系统的)的实现;然后本文给出了在GNU/Linux宿主机上构建针对ARM-MINIX的参数设置及过程;最后对本文所做的工作进行了总结。
论文目录
摘要Abstract第一章 概论1.1 嵌入式系统介绍1.2 ARM to minix项目介绍1.3 交叉编译系统1.3.1 编译器的结构1.3.2 交叉编译的必要性1.3.3 主流平台开发工具1.4 利用GNU工具链构建ARM-MINIX嵌入式系统的开发环境1.4.1 利用GNU工具链构建嵌入式系统开发环境的优越性1.4.2 利用GNU工具链构建ARM-MINIX嵌入式系统的开发环境第二章 目标平台和GNU工具链2.1 ARM体系结构和minix的a.out格式2.1.1 ARM体系结构2.1.1.1 内存空间2.1.1.2 ARM的内部寄存器2.1.2 minix的a.out格式剖析2.1.2.1 a.out格式目标文件的结构2.1.2.2 minix的a.out格式2.2 GNU工具链2.2.1 GCC简介2.2.2 GCC编译系统的结构及其工作流程2.2.2.1 GCC编译系统的工作流程2.2.2.2 GCC编译器的结构2.2.3 GNU Binutils工具包和make项目管理工具2.2.3.1 GNU Binutils工具包2.2.3.2 GNU make项目管理工具第三章 GAS和GLD的实现机制分析3.1 BFD库3.1.1 BFD的顶层结构3.1.2 BFD内部工作机制分析3.1.2.1 BFD前端3.1.2.2 BFD库代码3.1.2.3 BFD的后端3.1.3 BFD的重要数据结构3.2 GAS的分析3.2.1 GAS的数据类型3.2.2 GAS源代码分析3.2.2.1 GAS的目录结构3.2.2.2 GAS源代码的主要文件及作用3.2.3 GAS的结构3.2.4 GAS的工作流程3.3 连接器GLD的分析3.3.1 连接器GLD的作用3.3.2 连接器GLD的工作机制3.3.3 GNU LD的数据结构3.3.4 GLD的实现机制分析第四章 移植GCC交叉编译系统4.1 交叉编译器移植的思路4.1.1 GCC各模块分析:4.1.2 GCC交叉编译器移植的一般过程4.2 BFD地移植4.3 GAS地移植4.4 GLD地移植第五章 交叉编译环境的构建5.1 建立交叉编译系统的一般步骤5.2 交叉编译系统的构建5.2.1 准备阶段5.2.2 修改Binutils和GCC5.2.2.1 添加目标target到Binutils5.2.2.2 添加目标到GCC5.2.3 移植newlib库5.2.4 构建针对arm-minix的交叉编译系统第六章 总结参考文献致谢
相关论文文献
标签:嵌入式系统论文; 交叉编译论文; 工具链论文;
基于GNU工具链的ARM-MINIX嵌入式系统交叉编译环境的移植
下载Doc文档