资料介绍
引言
今天嵌入式系统开发不再局限于只能由相关应用领域的专家来完成,各种优秀集成开发环境(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]。
如果在整个过程中有错误发生,则编译/链接终止,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处理器的无缝配合工作,也已通过第三方评测,可随时提供给用户使用;下一步要完善软件仿真环境及对操作系统的支持,为用户进行软件仿真和针对操作系统编译开发提供有效的支持环境。
今天嵌入式系统开发不再局限于只能由相关应用领域的专家来完成,各种优秀集成开发环境(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]。
如果在整个过程中有错误发生,则编译/链接终止,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处理器的无缝配合工作,也已通过第三方评测,可随时提供给用户使用;下一步要完善软件仿真环境及对操作系统的支持,为用户进行软件仿真和针对操作系统编译开发提供有效的支持环境。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- STM32 软件开发环境搭建
- 嵌入式软件开发环境
- LatticeCrossLinkNX软件开发入门文件 1次下载
- Linux软件开发环境 7次下载
- FPGA Nios嵌入式处理器的软件开发 0次下载
- FPGA Nios嵌入式处理器的软件开发 17次下载
- FPGA Nios嵌入式处理器的硬件开发 5次下载
- 关于SPARC微处理器综述 3次下载
- SPARC V8结构嵌入式微处理器的软件集成开发环境总体设计 1次下载
- 图象处理与分析软件开发环境选择_张昕 0次下载
- NIOSII处理器系统的软件设计流程和方法
- NORTi环境下的便携电话系统软件实现
- REMS操作系统在SPARC-V8处理器上的应用
- 嵌入式系统软件开发环境中调试器的设计
- 网络处理器软件开发模型的研究
- Vector DaVinci Team解决方案实现AUTOSAR Classic ECU软件开发 1343次阅读
- 嵌入式软件开发和软件开发的区别 2357次阅读
- 车规MCU的软件开发生态解析 5383次阅读
- 基于LEON开源微处理器IP软核实现SoC系统基本平台的构建 2871次阅读
- 基于UML嵌入式软件开发环境的自动取款机系统的应用方案 3777次阅读
- 基于VFW软件开发包实现声呐图像压缩存储系统的应用方案 3374次阅读
- 详解嵌入式软件开发到FPGA开发 6473次阅读
- 关于嵌入式ARM多核处理器的并行方法 4279次阅读
- 电机控制软件开发套件启动新设计 1675次阅读
- 协处理器的介绍及应用 4136次阅读
- 基于ASF开发库进行ATWINC1500软件开发 4019次阅读
- mbed软件开发平台入门学习基础 1.2w次阅读
- Xilinx 软件定义开发环境 SDAccel上线 AWS 5588次阅读
- 32位嵌入式处理器与8位处理器应用开发的区别 1579次阅读
- 基于微处理器的车载导航电子地图的设计和实现 2232次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论