论文部分内容阅读
随着新型嵌入式芯片层出不穷,相应的高级语言编译器是必不可少的。然而,编译器的复杂性决定了不可能在短时间内重新为一款新型芯片开发出高级语言编译器。因此,不断出现的新型芯片与新型芯片编译器的需求产生了尖锐的矛盾。
采用开源编译器来实现特定编译器是一个可行的方法,它满足开发时限的要求,并且具有普遍适用性。通过比较各种编译器项目的优缺点和研究大量的新型芯片的体系结构,最后选用 GCC 和 ZSP400 DSP 芯片,作为源编译器和目标机器。GCC 是目前嵌入式领域应用最为广泛的编译器,软件质量已经在工业界被反复验证过,并且文档齐全,便于开展工作;GCC使用 RTL 语言进行与目标机无关的代码优化,可以在新后端中直接使用;虽然 GCC 已经被移植到了许多经典的体系结构上,但对于芯片类型更新较快的 DSP 领域,移植 GCC 的方案还没有被广泛应用;而 ZSP400 DSP芯片是业界性能较高的一款 DSP 芯片,在移动通信领域有广泛的应用;同时,ZSP400 芯片的体系结构体现了芯片的普遍结构,具有可推广性;另外,在 GCC 中还没有实现 ZSP400 芯片的后端,这对 linux 操作系统环境下的开发是不利的。因此,实现基于 GCC 的 ZSP400 编译器,对于学术研究和工业应用都有比较深远的意义。
论文中实现了基于 GCC 的 ZSP400 编译器和一个ZSP400汇编语言模拟器。由ZSP400编译器生成的ZSP400汇编文件,可以在 ZSP400 模拟器中进行解释执行。在实现 ZSP400 芯片编译器的过程中,采用了增量编程的方法。首先为后续开发搭建了一个运行环境,将 ZSP400 的体系结构用GCC 可以接受的方式进行描述;在此基础上,分别实现 C 语言中的各种基本结构,并进行单元测试;最后在 ZSP400 模拟器上进行系统测试。从而实现了基于 GCC 的 ZSP400 DSP 芯片编译器。