学位论文 > 优秀研究生学位论文题录展示

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

作 者: 张志勇
导 师: 董国雄
学 校: 兰州大学
专 业: 计算数学
关键词: 嵌入式系统 交叉编译 GNU工具链 GCC GAS GLD
分类号: TP316
类 型: 硕士论文
年 份: 2008年
下 载: 237次
引 用: 6次
阅 读: 论文下载
 

内容摘要


信息技术的发展,数字化产品的普及,导致了对嵌入式开发的巨大需求。以Linux为宿主机系统,搭配一个交叉编译环境,为嵌入式设备生成可执行程序己成为现在日益流行的编译嵌入式软件的解决方案。而开放源代码的GNU工具链是一套开源的开发环境,是嵌入式软件开发中理想的交叉编译器。但现有GNU工具链支持的平台并不能满足层出不穷的嵌入式产品的开发需要,仍有许多平台得不到支持,例如我们进行的minix向ARM-MINIX平台的移植。本文以在linux环境下构建MINIX嵌入式系统的交叉编译工具链为背景,首先介绍了交叉编译系统的基本组成和结构,以及利用GCC构建交叉编译环境的优越性。然后对目标平台作了介绍,分析了GCC编译器,说明了GCC的设计思想,系统结构,介绍了GNU Binutils的功能,使用方法;接着分析了GNU工具链中的GASGLD的实现机制及源代码结构,由于BFD是GNUBinutils的基础,GAS和GLD都是使用BFD库来操作目标文件,因此在这一部分本文对BFD库的工作机制,数据结构也作了重点分析。紧接着说明了GCC交叉编译系统的移植思路和方法,实现难点,以及一些相关技术细节,这涉及到了若干重要的C源文件,Makefile,配置文件的修改,重点给出了BFD库,GAS和GLD的分析及其重定向(通常GCC生成的目标程序是针对GNU/Linux系统的)的实现;然后本文给出了在GNU/Linux宿主机上构建针对ARM-MINIX的参数设置及过程;最后对本文所做的工作进行了总结。

全文目录


摘要  3-4
Abstract  4-8
第一章 概论  8-14
  1.1 嵌入式系统介绍  8
  1.2 ARM to minix项目介绍  8-9
  1.3 交叉编译系统  9-12
    1.3.1 编译器的结构  9-11
    1.3.2 交叉编译的必要性  11-12
    1.3.3 主流平台开发工具  12
  1.4 利用GNU工具链构建ARM-MINIX嵌入式系统的开发环境  12-14
    1.4.1 利用GNU工具链构建嵌入式系统开发环境的优越性  12-13
    1.4.2 利用GNU工具链构建ARM-MINIX嵌入式系统的开发环境  13-14
第二章 目标平台和GNU工具链  14-27
  2.1 ARM体系结构和minix的a.out格式  14-20
    2.1.1 ARM体系结构  14-16
      2.1.1.1 内存空间  15
      2.1.1.2 ARM的内部寄存器  15-16
    2.1.2 minix的a.out格式剖析  16-20
      2.1.2.1 a.out格式目标文件的结构  16-17
      2.1.2.2 minix的a.out格式  17-20
  2.2 GNU工具链  20-27
    2.2.1 GCC简介  20
    2.2.2 GCC编译系统的结构及其工作流程  20-23
      2.2.2.1 GCC编译系统的工作流程  20-21
      2.2.2.2 GCC编译器的结构  21-23
    2.2.3 GNU Binutils工具包和make项目管理工具  23-27
      2.2.3.1 GNU Binutils工具包  23-24
      2.2.3.2 GNU make项目管理工具  24-27
第三章 GASGLD的实现机制分析  27-42
  3.1 BFD库  27-31
    3.1.1 BFD的顶层结构  27-28
    3.1.2 BFD内部工作机制分析  28-30
      3.1.2.1 BFD前端  28-29
      3.1.2.2 BFD库代码  29-30
      3.1.2.3 BFD的后端  30
    3.1.3 BFD的重要数据结构  30-31
  3.2 GAS的分析  31-36
    3.2.1 GAS的数据类型  31-32
    3.2.2 GAS源代码分析  32-34
      3.2.2.1 GAS的目录结构  32-33
      3.2.2.2 GAS源代码的主要文件及作用  33-34
    3.2.3 GAS的结构  34
    3.2.4 GAS的工作流程  34-36
  3.3 连接器GLD的分析  36-42
    3.3.1 连接器GLD的作用  36-38
    3.3.2 连接器GLD的工作机制  38-40
    3.3.3 GNU LD的数据结构  40
    3.3.4 GLD的实现机制分析  40-42
第四章 移植GCC交叉编译系统  42-50
  4.1 交叉编译器移植的思路  42-43
    4.1.1 GCC各模块分析:  42
    4.1.2 GCC交叉编译器移植的一般过程  42-43
  4.2 BFD地移植  43-46
  4.3 GAS地移植  46-47
  4.4 GLD地移植  47-50
第五章 交叉编译环境的构建  50-55
  5.1 建立交叉编译系统的一般步骤  50
  5.2 交叉编译系统的构建  50-55
    5.2.1 准备阶段  50
    5.2.2 修改Binutils和GCC  50-52
      5.2.2.1 添加目标target到Binutils  50-52
      5.2.2.2 添加目标到GCC  52
    5.2.3 移植newlib库  52-53
    5.2.4 构建针对arm-minix的交叉编译系统  53-55
第六章 总结  55-56
参考文献  56-59
致谢  59

相似论文

  1. 汽车的电动助力转向系统,U463.4
  2. 基于ARM9的Windows CE系统移植,TP316.7
  3. 基于嵌入式图像处理单元的运动目标跟踪系统研究,TP391.41
  4. 面向嵌入式超声检测系统的图形接口设计与应用,TP274.53
  5. 多线阵CCD视觉测量系统的数据采集与处理,TP274.2
  6. LXI-VXI适配器研制,TP274
  7. 高性能恒温晶体振荡器温度控制系统的研究,TN752
  8. 嵌入式中医经脉理疗仪的研究,R197.39
  9. 基于windows xp嵌入式系统的心电检测分析仪,R197.39
  10. 基于嵌入式系统钻孔成像装置的研究,P634.3
  11. 一体化能量回馈电梯驱动控制系统实现,TP273
  12. 基于DSP的双丝焊机及人机界面研究,TG409
  13. 基于WiFi的无线虚拟存储系统,TN929.5
  14. 嵌入式网络视频应用技术的研究与实现,TP368.1
  15. 小型移动机器人系统平台的模块化设计与实现,TP242
  16. 柴油机测试仪表校验仪及综合信息管理系统研究,TK426
  17. 基于CAN总线的智能传感器网络系统的研制,TN929.5
  18. 基于人体运动传感的个人定位方法及系统实现,TN95
  19. 基于Mini6410的USB虚拟存储,TP333
  20. 三维控件集的设计与实现,TP391.41
  21. 嵌入式网络视频软件的研究与实现,TP393.09

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 操作系统
© 2012 www.xueweilunwen.com