Print

LX-1164微处理器连接程序的设计与实现

论文摘要

连接程序是CPU编译工具链中非常重要的一个环节,开地发一个新的CPU必须也要开发相应的连接程序。在开发64位LX-1164安全微处理器连接程序过程中,本文深入研究了连接程序的原理及工作过程。根据LX-1164安全微处理器体系结构的需求,设计了一个基于两遍扫描过程的连接程序LX-Linker,该连接程序在进行地址重定位时具有强制检查地址越界的功能,增强了系统的安全性。本文对连接程序的操作对象-二进制目标文件也做了一定描述,并在32位ELF的基础上改进了与LX-1164体系相适应的内容。文中也给出了LX-Linker实现过程当中的模块划分、数据结构设计以及重要函数的分析。此文对国内连接程序的开发者具有普遍参考意义。

论文目录

  • 中文摘要
  • 英文摘要
  • 第一章 引言
  • 1.1 课题背景
  • 1.2 课题主要研究内容及意义
  • 1.3 本论文的组织结构
  • 第二章 连接程序
  • 2.1 概述
  • 2.2 连接装配程序发展历史
  • 2.2.1 编译并执行装配方案
  • 2.2.2 一般的连接装配方案
  • 2.2.3 绝对装配程序方案
  • 2.2.4 子程序连接方案
  • 2.2.5 重定位装配方案
  • 2.3 GNU简介
  • 2.4 GNU LD概述
  • 2.5 GNU LD实现方法与技术
  • 第三章 二进制目标文件
  • 3.1 ELF
  • 3.1.1 ELF格式基本框架
  • 3.1.2 ELF头
  • 3.1.3 节与节头
  • 3.1.4 段与程序头
  • 3.2 LX-1164体系结构的 ELF
  • 第四章 LX-1164硬件平台
  • 4.1 处理器概述
  • 4.2 连接程序相关的处理器特征
  • 4.2.1 字节顺序和数据对齐
  • 4.2.2 指令格式
  • 4.2.3 寻址方式
  • 第五章 LX-1164连接程序设计实现
  • 5.1 模块划分
  • 5.2 重要数据结构
  • 5.3 模块连接时的存储布局设计
  • 5.4 第一遍扫描过程的设计
  • 5.5 第二遍扫描过程的设计
  • 5.6 重要函数设计与解析
  • 5.6.1 生成和释放哈希表函数
  • 5.6.2 添加符号信息到哈希表函数
  • 5.6.3 符号表的写入函数
  • 5.6.4 获取重定位节的内容函数
  • 5.6.5 查找添加字符串函数
  • 5.6.6 遍历哈希表函数
  • 5.6.7 判断是否越界函数
  • 第六章 连接程序控制脚本的编写
  • 6.1 脚本文件
  • 6.2 编写 LX-1164连接程序控制脚本
  • 6.3 添加脚本到 BINUTILS包
  • 6.3.1 添加 BFD后端
  • 6.3.2 添加修改 LD脚本文件
  • 第七章 运行结果分析
  • 7.1 连接程序运行结果
  • 7.1.1 设计一个冒泡排序程序,用 LX-1164的汇编语法实现
  • 7.1.2 用汇编程序汇编该文件
  • 7.1.3 使用连接程序连接结果
  • 7.2 使用软件模拟器测试
  • 第八章 总结与展望
  • 参考文献
  • 致谢
  • 在学期间发表的学术论文和参加科研情况
  • 相关论文文献

    本文来源: https://www.lw50.cn/article/e46e5d3b9e34b24b97b991bb.html