论文部分内容阅读
交叉编译器作为嵌入式软件开发过程中的重要工具,其性能及可靠性直接关系到最终嵌入式产品的质量与成败,开发一款具有高优化性及高可靠性的交叉编译器对嵌入式系统应用有十分重要的意义。本论文的主要工作是针对实际项目的需要,为某系列商用8位微控制器开发一款C语言交叉编译器。
鉴于GCC是一款可支持多语言、多目标机器的编译器,具有良好的优化性及灵活的可移植性,因此本文基于GCC进行移植开发,不仅可以保证编译器的性能质量,还能缩短开发的周期。然而GCC的C语言前端并无法正确处理所开发编译器的特殊语法规则,并且GCC后端也不支持该商用8位微控制器。为此,本文在深入研究了GCC的处理流程及其基本架构的基础上,根据编译器所支持的特殊语法规则,对GCC的C语言前端进行了设计;并结合该商用8位微控制器的硬件架构以及它所支持的汇编指令集,完成了基于GCC后端的移植设计。为了分析所设计的交叉编译器系统功能,本文还设计了该交叉编译器的测试方案。测试结果表明,所设计编译器能够满足实际需求。
本论文工作解决的关键技术问题体现在以下几个方面:
(1)在前端设计方面,主要是通过添加函数属性的方式来实现对特定形式中断函数的处理,并沿用整数类型的处理机制实现对如bit等数据类型的支持,解决了GCC对特殊语法不支持的问题。
(2)在后端设计方面,主要是根据用户的需求以及机器描述文件的规则设计相关接口,实现了特定汇编信息的输出,解决了GCC标准输出与现有汇编器不兼容的问题。
(3)在测试方案设计方面,利用在线仿真器获取目标代码的执行结果与参考编译器进行比较验证,提高了测试的可靠性与灵活性;并引入代码覆盖测试工具实现对测试进展程度的客观评估,同时也使得测试更有针对性。