SPARC V8 ( Sc a l a b l e Pr o c e s s o rArchitecture V8)是Sun Microsystems 提出的一种32位RISC微处理器结构,此结构的处理器具有指令系统简单、采用硬布线控制逻辑、处理能力强、速度快、可靠性高等特点,基于这些特点,SPARC结构处理器现在被广泛地应用于UNIX工作站、服务器等稳定性要求很高的环境中。随着SPARC V8结构处理器越来越广泛的应用,如何搭建此结构微处理器的软件和硬件开发环境是一个值得研究的课题,本文中详细地阐述了开发环境的硬件平台设计方案和软件集成开发环境设计思路。
SPARC V8结构嵌入式微处理器的硬件开发环境设计硬件开发环境以微处理器为核心,根据其内部结构特点可将外围电路分为BOOT ROM、PROGRAM ROM、SRAM、RS232 接口、复位电路、键盘接口和320*240液晶接口等部分,下面对硬件开发板的几个重要电路模块进行分析:RAM存储器部分:SPARC V8结构微处理器的数据总线为32位,地址总线为28根,有4个RAM 通道,每个通道的最大寻址空间为256Mbyte,使用时需要根据外围SRAM的容量在处理器寄存器相应位中设置每个通道容量大小,处理器根据不同的地址产生相应通道片选信号。本硬件开发板根据实际的应用需求使用了RAM通道1和RAM通道2,每个RAM通道使用2片16位的SRAM用于存储计算数据,使用1片用于存储8位校验码数据PD0-PD7。
ROM存储器部分: SPARC V8结构处理器具有2个ROM通道,每个通道的最大寻址空间同样为256Mbyte,但每个通道的容量不需在Memory Register中设置,它的2个ROM通道的地址范围被固定。基于这种特点,本开发板分别使用2个16位FLASH将ROM通道1作为存放引导系统启动程序的BOOT ROM,将通道2作为存储操作系统和应用程序的PROGRAM ROM。显示电路部分:液晶显示器作为主要的I/O设备,采用320*240分辨率的LCD,使用SED1335控制器进行显示控制,并由MC34063电路产生负电源用于LCD对比度的调节。数据输入部分:将标准的PS2键盘作为硬件开发板的输入设备,利用AT89C52单片机设计的键盘控制芯片对PS2键盘输出数据进行采集和处理,最终将处理后的键盘编码数据传送给微处理器。
根据上述的分析,硬件开发板的原理框图如图1所示。硬件开发板的如下图所示
SPARC V8结构嵌入式微处理器的软件集成开发环境总体设计
一个好的设计应该是在参考已有优秀系统的前提下,根据自身的特点和需求来定制的,这种设计思路在设计中已经被广泛使用。在设计软件集成开发环境时也是采用了这种方式,在参考了将操作系统、开发工具、仿真工具和分析工具于一身的相应开发环境之后,结合实际的设计要求和设计能力,将微处理器的软件集成开发环境分成如下几个部分:
● 工程管理环境
● 集成软件开发环境
● 嵌入式系统调试环境
● 嵌入式系统编译环境
● 软件资源可配置环境
将软件集成开发环境分成三个层次,具体的功能如图3所示:
软件集成开发环境的详细设计
软件集成开发环境管理层设计
工程管理:一般的集成开发环境如VC、VB等,这些开发环境是针对桌面系统完成的,它的工程管理能力只限于文件级别管理,但嵌入式系统的功能管理则要求更高些,因为嵌入式系统开发还涉及到目标系统的配置与管理,不同的工程是针对不同目标系统开发出的,不同目标系统开发的嵌入式软件的很多属性,例如编译器属性、输出路径、编译环境路径等都是不同的,在工程管理中都要提供给用户可以修改这些工程属性的能力,所以基于这些考虑,开发环境的工程管理采用了工程文件的形式。集成环境配置:软件集成开发环境有很多的属性,例如编辑框属性、任务栏属性、显示的属性、使用语言等等都要进行设置,这就要求在软件集成开发环境中有这样的选项,环境中应包括的编辑框、工程管理框、调试框、任务栏等一些可视控件的属性都可以在这里进行设置,如图4所示。软件开发层设计软件集成开发环境设计是为了给系统开发和系统验证工程师提供一个有效的开发和验证工具平台,为使设计者能够快速、有效地开发出嵌入式程序提供有效的支持,以提高嵌入式应用系统开发效率。由于单板测试程序没有操作系统的支持,它们运行的时候要有其它的支持库支持才能运行,将支持库封装到集成开发环境中,包括一些系统运行的头文件,系统初始化文件和软件运行的时候陷阱处理程序等,在开发者开发的时候就不用考虑这些问题,而将注意力集中到软件设计中去。
调试环境设计
调试方式一般从距离主机的位置可以分为:基于主机的调试、远程调试两种。前者调试是基于桌面系统的指令集模拟器,如ARM的SKYEYES、SPARC 的TSIM和ATI的MNT等。调试方法都是将编译好的程序下载到模拟器上,在模拟器上运行程序,并在模拟器上对程序进行调试,这样调试的好处就是加快项目进度和减少资金,缺点是在模拟器上可以运行的程序在实际的硬件中并不一定就能运行成功。后者是利用通讯某种通讯方式如网口、串口、JTAG口等连接上位机和目标机,利用在上位机的代理软件和目标机上的monitor监控程序通过某种通讯协议来完成彼此之间的通讯,从而达到调试目的,这种调试方式是基于硬件本身的,得到的调试信息准确有效,所以本文中的软件开发环境就采用了这种远程调试模式。在设计中,软件开发环境的调试任务通过第三方软件来完成,此软件包括:① Gdbtk--gdb调试软件前端图形界面(图5);② Remotedebugging monitor ---gdb调试监控软件工具。将这个调试环境整合到软件集成开发环境中,这样用户可以随时调用调试工具,在其界面上进行各种调试工作。在硬件开发板的BOOT ROM中存放着bootloader程序,此程序通过开发板上的串口与上位机的串口调试软件建立交互通道,完成程序下载、程序运行、显示存储器空间内容、执行monitor监控程序等操作。当我们运行了目标机上monitor监控程序后,这个程序在目标机上建立调试环境,当用户运行调试环境调试自己的程序时,monitor监控程序作为后台程序运行在目标机上Monitor监控程序按照指定串行协议接收上位机发来的命令,做出相应处理之后,将收集的调试信息发回到上位机,最后显示在调试界面上。整个过程可由图7来表示。
编译环境设计
在设计软件集成开发环境的编译环境时,采用Gnu提供的整套对SPARC处理器的编译环境:
① binutils 二进制文件处理工具binutils包主要包括了一些辅助开发工具,如objdump反汇编器,readelf显示elf文件、段信息,strip将不必要的代码去掉以减少可执行文件的大小,这些工具主要用于开发的初期,特别是在调试移植操作系统的时候。
② GCC编译器
gcc是gnu collection compiler的简称,它可以编译汇编、c、pascal、java等多种语言,而且还支持很多硬件开发平台,通过对gcc源码的编译,其可以成为交叉编译工具。
③ Glibc链接、运行库
在集成编译环境时,使用内含编译环境的方式,即将SPARC的编译环境集成在集成开发环境中,成为开发环境的一部分的方式来完成的,可以在集成环境工程选项中进行详细配置,在集成环境中添加编译器文件夹,用连接的方式将编译环境链接到集成开发环境中来。
结论
本文详细地阐述了基于SPARC V8结构的高性能32位RISC嵌入式微处理器的软、硬件集成开发环境的设计思路,经过实际工程应用证明系统运行良好,本文对指导类似工程项目的研究有着积极意义。