引言
今天嵌入式系统开发不再局限于只能由相关应用领域的专家来完成,各种优秀集成开发环境(IDE)可大大降低工程人员的开发门槛[1],使嵌入式系统的开发变得相对简单。目前,嵌入式系统开发使用的开发平台多种多样,从ARM公司的SDT到ADS,再到RVDS,以及风河公司的Tornado和其他公司提供的各种专用开发工具;这些IDE一般都是由文件管理器、编译器、汇编器、链接器、调试器等组件和工具组成。在这些开发环境中,编译程序起着核心作用,链接程序、调试程序、程序管理等工具直接依靠编译程序所产生的结果工作,而且其它工具的构造也常常要用到编译的原理、方法和技术,因此,IDE与编译器是密不可分的。
本文针对空间SPARC高性能处理器的IDE及其C编译器进行研究,从而完成SPARC处理器的软件开发环境的设计和实现。
处理器体系构架
空间SPARC高性能处理器是一款SPARC v8兼容[1-3]的高性能SoC(图1),它在片上包含整数处理单元、浮点处理单元、独立的指令和数据Cache、硬件乘法器和除法器等,具有支持PROM、SM、SDM和I/O映射空间访问的外部存储器控制器,并有软件可控的省电工作模式,还有可实现PCI主机桥(Host bridge)和从属桥(Guestbridge)功能的PCI控制器等,只要加上存储器和与应用相关的外围电路,就可以构成完整的单板计算机系统。
集成开发环境
好的IDE可以提供设计、仿真、验证、分析、并行开发的能力,嵌入式系统IDE更是整合了各方资源于一身。由于系统设计的各个环节彼此之间是相互联系的,设计的好坏要在仿真和验证后才知道,仿真验证的数据又可以反过来指导设计,所以单纯的隔离设计并不一定合理,集成环境可使设计者和验证者共享数据,彼此之间协同工作。
总体设计
SPARC嵌入式IDE能提供给系统开发工程师一个比较完备的、易用的开发工具(图2),主要功能如下:应用程序开发,包括编辑、编译;应用程序调试;软件工程管理;软件仿真环境; *** 作系统配置管理;集成环境配置管理。
集成开发环境实现
作为高性能控制SPARC高性能处理器的专用集成开发环境,设计实现了软件开发环境SPE-C(图3),使用C语言作为编程语言,运用SPARC V8平台适用的BMSPARC编译套件,能在本地Win32的环境下运行。它具备集成开发环境所有必要的功能,包括集成的源代码编辑、工程管理、编译调试、环境设置等功能,方便用户基于SPARC v8兼容处理器的应用开发和程序调试。它还具有一般开发环境所具有的易用性和方便性。调试部分功能包括断点、逐语句/过程运行、查看和修改寄存器/存储器/片上寄存器、指令跟踪等,实现了调用栈和变量的查看等。
BMSPARC编译器
BMSPARC是基于GNU工具链并进行优化设计的一款编译器套件。其中编译器是将一种语言编译成为另一种语言的计算机程序,该程序以源语言编写的程序作为输入,翻译生成等价的目标语言程序。编译器可分成只依赖于源语言的编译器前端和只依赖于目标语言的编译器后端两大部分。前端主要对源代码进行扫描、语法分析和语义分析,生成中间代码;而后端主要是优化器和代码生成器。在进行基于SPARC的嵌入式软件系统开发之前,要先建立交叉编译环境。目标机的交叉编译环境是一个由编译器、链接器和解释器组成的综合开发环境,主要由 binuTIls、gcc 和glibc 几个部分组成。有时出于减小libc 库大小的考虑,也可以用别的 c库来代替 glibc,例如 uClibc、dietlibc和 newlib。建立一个交叉编译工具链是一个复杂的过程,交叉编译器的最终成功运行,取决于很多因素,包括:主机系统配置、GNU工具版本配合、参数配置、库选择等,一个成功的、稳定的交叉编译环境是需要花费大量时间的,幸运的是现在针对很多处理器都有比较成熟和稳定的编译配置。
BMSPARC还提供对硬件CORDIC的支持,主要通过库函数修改的方式完成。通过使用库替换的方法,可以简化移植过程,实现软件兼容及编译器的快速开发和使用,并可以快速完成针对超越函数的编译器优化。SPE-C与BMSPARC编译器的集成SPE-C中编译系统的基本规则为:针对工程中的源文件及链接文件,包括用户指定的库文件,按照指定的规则,并参考用户设置,生成一个符合要求的Makefile文件,然后用make.exe对Makefile文件进行解释执行,从而生成需要的目标文件,或完成相应的动作[6-8]。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)