基于GNU工具链的ARM-MINIX嵌入式系统交叉编译环境的移植

基于GNU工具链的ARM-MINIX嵌入式系统交叉编译环境的移植

论文摘要

信息技术的发展,数字化产品的普及,导致了对嵌入式开发的巨大需求。以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和GCC
  • 5.2.2.1 添加目标target到Binutils
  • 5.2.2.2 添加目标到GCC
  • 5.2.3 移植newlib库
  • 5.2.4 构建针对arm-minix的交叉编译系统
  • 第六章 总结
  • 参考文献
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  

    基于GNU工具链的ARM-MINIX嵌入式系统交叉编译环境的移植
    下载Doc文档

    猜你喜欢