1)当集成开发环境通过界面交互得到用户编译某一工程或源码文件的指令后,首先发起一个后台线程;
2)后台线程创建一个匿名管道,发起一个命令子进程以执行编译整个工程或某个源码文件的make命令,直接将该命令子进程的标准输出和错误输出均重定向到由父进程创建的匿名管道的“写”端,SPE-C的后台线程通过该匿名管道的“读”端得到所需要的编译信息;
3)后台线程再将所有通过管道获取的编译信息实时传送回IDE界面中的信息输出(Output)窗口进行显示。
下图是采用如上技术,实现SPE-C与编译器之间的信息交互的结果示例:
显然,这种方法实现起来并不复杂,命令子进程的Stdout和Stderr都被重定向到匿名管道的写端,仅用一个匿名管道就实现了全部功能。上面程序流程图中从匿名管道读端读取的输出信息,即是由编译命令子进程的Stdout和Stderr重定向输出的内容,将其直接放入Output窗口中显示便实现了编译信息实时显示的功能。
结束语
本文讨论了针对SPARC高性能处理器的嵌入式系统专用软件集成开发环境及其编译器,介绍了集成开发环境(SPE-C)的设计及其集成的相关功能,介绍了BMSPARC编译环境及其添加CORDIC指令支持的方法,以及如何实现编译环境与集成开发环境的集成。通过上面的工作,SPE-C集成开发环境已经实现了与SPARC高性能处理器的无缝配合工作;下一步要完善软件仿真环境及对操作系统的支持,为用户进行软件仿真和针对操作系统编译开发提供有效的支持环境。
参考文献
[1] “The SPARC Architecture Manual Version 8”, SPARC International,Prentice Hall, 1992
[2] Prakash Rashinkar,Peter Paterson.孙海平译. 系统芯片(SOC)验证方法与技术. 电子工业出版社,2005
[3] 张镇,魏同立, 基于IP模块的片上系统设计 电子器件,2002
[4] 姚文刚,[硕士论文]基于GCC的交叉编译器结构分析与后端移植研究,2006
[5] 王晓栋,郑扣根,基于嵌入式系统的交叉汇编器的研究与实现,工业控制计算机,2004
[6] 朱兴泉,IDE集成GCC编译器的方法,指挥控制与仿真,2007
[7] 王荣胜,林嘉宇,张镔,嵌入式系统集成开发环境中的编译器效能研究,电子技术应用 2008
[8] 邹耀,刘佩林,基于用户描述的可配置汇编器,计算机工程,2009