SPARC高性能处理器集成开发环境及其编译器设计与实现

发布者:EtherealBeauty最新更新时间:2013-11-06 来源: eefocus关键字:软件开发环境  C编译器  SPARC 手机看文章 扫描二维码
随时随地手机看文章
  引言

  今天嵌入式系统开发不再局限于只能由相关应用领域的专家来完成,各种优秀集成开发环境(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兼容处理器的应用开发和程序调试。它还具有一般开发环境所具有的易用性和方便性。调试部分功能包括断点、逐语句/过程运行、查看和修改寄存器/存储器/片上寄存器、指令跟踪等,实现了调用栈和变量的查看等。[page]

  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]。

  如果在整个过程中有错误发生,则编译/链接终止,IDE系统将套件提供的错误原因反馈给用户。为了将BMSPARC编译工具链集成到SPE-C中,必须使BMSPARC工具链的输出信息包括警告和错误信息最终输出在SPE-C的显示窗口中。由于BMSPARC工具链的各个执行文件都是基于控制台的执行程序(基于命令窗口的命令行程序),而SPE-C是图形用户界面(GUI)程序,因此要将它们执行的各种输出信息收集并放到SPE-C的输出窗口中显示,需要一些技巧。本系统实现在SPE-C的输出窗口中显示编译信息的方法如下:

  1)当集成开发环境通过界面交互得到用户编译某一工程或源码文件的指令后,首先发起一个后台线程;

  2)后台线程创建一个匿名管道,发起一个命令子进程以执行编译整个工程或某个源码文件的make命令,直接将该命令子进程的标准输出和错误输出均重定向到由父进程创建的匿名管道的“写”端,SPE-C的后台线程通过该匿名管道的“读”端得到所需要的编译信息;

  3)后台线程再将所有通过管道获取的编译信息实时传送回IDE界面中的信息输出(Output)窗口进行显示。显然,这种方法实现起来并不复杂,命令子进程的Stdout和Stderr都被重定向到匿名管道的写端,仅用一个匿名管道就实现了全部功能。上面程序流程图中从匿名管道读端读取的输出信息,即是由编译命令子进程的Stdout和Stderr重定向输出的内容,将其直接放入Output窗口中显示便实现了编译信息实时显示的功能。

  结语

  SPE-C集成开发环境已经实现了与SPARC处理器的无缝配合工作,也已通过第三方评测,可随时提供给用户使用;下一步要完善软件仿真环境及对操作系统的支持,为用户进行软件仿真和针对操作系统编译开发提供有效的支持环境。

关键字:软件开发环境  C编译器  SPARC 引用地址:SPARC高性能处理器集成开发环境及其编译器设计与实现

上一篇:嵌入式系统电源管理软件比较
下一篇:一种嵌入式时钟管理器的设计与实现

推荐阅读最新更新时间:2024-03-16 13:30

ARM C/C++编译器
  ARM C/C++编译器可以被使用在UNIX和Windows/MS-DOS环境下。ARM C++编译器遵守C++的国际标准ISO/IEC 14822:1998。ARM C/C++编译器可以编译多种格式的C/C++源代码,其中包括ANSI C、EC++、C++。表1列出的是ARM中各种不同的C/C++编译器。   表1 ARM中各种不同的c/c++编译器   其中,armcc用于将遵循ANSI C标准的C语言源程序编译成32位的ARM指令代码,它通过了Plum Hall C Validatin Suite测试。armcpp用于将遵循ANSI C++或者EC++标准的C++语言源程序编译成32位的ARM指令代码。too用于将
[单片机]
ARM <font color='red'>C</font>/<font color='red'>C</font>++<font color='red'>编译器</font>
C51编译器-高级编程技巧(4)-寄存器的应用
Register Usage寄存器应用 汇编程序可以在改变当前寄存器组中所有寄存器和ACC,B,DPTR以及PSW中的内容。当在汇编程序中调用C函数时,要注意这些寄存器都有可能被C函数改变。 Overlaying Segments段覆盖 如果程序在连接和定位过程中执行了覆盖过程,那么每个汇编子程序都有一个独一无二的程序段是非常重要的。这对于在段覆盖过程中,根据各个不同的段的计算函数之间的偏移是很必要的。当出情以下情况时,汇编子程序的数据区可以包括在覆盖分析之中: (1)所有的段名都用Cx51命名规则命名。 (2)每个使用局部变量的汇编函数都指定一个数据段。这个数据段可能被其他函数在传递数时访问。参数必须依次序存放。 Exa
[单片机]
Ellison:Oracle计划明年发布Sparc T4
在公布SPARC SuperCluster的同时,Oracle首席执行官Larry Ellison透露将在明年发布SPARC T4芯片。Oracle和富士通都宣布将升级面向SPARC Enterprise M系中端和高端SMP设备的SPARC64-VII+处理器,但是他并没有提供关于未来系统以及两家厂商之间协同芯片开发的任何细节。 目前我们并不完全了解SPARC T4芯片是什么样的,但看起来它似乎是现有16核代号为“Rainbow Falls”的SPARC T3处理器(由TSMC采用40nm工艺制造)的缩小版。Ellison新近透露的SPARC路线图与被Oracle收购之前的Sun路线图不尽相同,这似乎是件好事。
[嵌入式]
Ellison:Oracle计划明年发布<font color='red'>Sparc</font> T4
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved