SPARC高性能處理器集成開發(fā)環(huán)境及其編譯器設(shè)計與實現(xiàn)
顯然,通過使用庫替換的方法,可以簡化移植過程,實現(xiàn)軟件兼容及編譯器的快速開發(fā)和使用,并可以快速的完成針對超越函數(shù)的編譯器優(yōu)化。
本文引用地址:http://2s4d.com/article/113735.htmSPE-C中編譯系統(tǒng)的基本規(guī)則為:針對工程中的源文件及鏈接文件,包括用戶指定的庫文件,按照指定的規(guī)則,并參考用戶設(shè)置,生成一個符合要求的Makefile文件,然后用make.exe對Makefile文件進行解釋執(zhí)行,從而生成需要的目標(biāo)文件,或完成相應(yīng)的動作。[6] [7] [8]
如果在整個過程中有錯誤發(fā)生,則編譯/鏈接終止,IDE系統(tǒng)將套件提供的錯誤原因反饋給用戶。
為了將BMSPARC編譯工具鏈集成到SPE-C中,必須使BMSPARC工具鏈的輸出信息包括警告和錯誤信息最終輸出(Output)在SPE-C的顯示窗口中。由于BMSPARC工具鏈的各個執(zhí)行文件都是基于控制臺的執(zhí)行程序(基于命令窗口的命令行程序),而SPE-C是圖形用戶界面(GUI)程序,因此要將它們執(zhí)行的各種輸出信息收集并放到SPE-C的輸出窗口中顯示,需要一些實現(xiàn)技巧。本系統(tǒng)中實現(xiàn)在SPE-C的輸出窗口中顯示編譯信息的方法如下:
1)當(dāng)集成開發(fā)環(huán)境通過界面交互得到用戶編譯某一工程或源碼文件的指令后,首先發(fā)起一個后臺線程;
2)后臺線程創(chuàng)建一個匿名管道,發(fā)起一個命令子進程以執(zhí)行編譯整個工程或某個源碼文件的make命令,直接將該命令子進程的標(biāo)準(zhǔn)輸出和錯誤輸出均重定向到由父進程創(chuàng)建的匿名管道的“寫”端,SPE-C的后臺線程通過該匿名管道的“讀”端得到所需要的編譯信息;
3)后臺線程再將所有通過管道獲取的編譯信息實時傳送回IDE界面中的信息輸出(Output)窗口進行顯示。
下圖是采用如上技術(shù),實現(xiàn)SPE-C與編譯器之間的信息交互的結(jié)果示例:
顯然,這種方法實現(xiàn)起來并不復(fù)雜,命令子進程的Stdout和Stderr都被重定向到匿名管道的寫端,僅用一個匿名管道就實現(xiàn)了全部功能。上面程序流程圖中從匿名管道讀端讀取的輸出信息,即是由編譯命令子進程的Stdout和Stderr重定向輸出的內(nèi)容,將其直接放入Output窗口中顯示便實現(xiàn)了編譯信息實時顯示的功能。
結(jié)束語
本文討論了針對SPARC高性能處理器的嵌入式系統(tǒng)專用軟件集成開發(fā)環(huán)境及其編譯器,介紹了集成開發(fā)環(huán)境(SPE-C)的設(shè)計及其集成的相關(guān)功能,介紹了BMSPARC編譯環(huán)境及其添加CORDIC指令支持的方法,以及如何實現(xiàn)編譯環(huán)境與集成開發(fā)環(huán)境的集成。通過上面的工作,SPE-C集成開發(fā)環(huán)境已經(jīng)實現(xiàn)了與SPARC高性能處理器的無縫配合工作;下一步要完善軟件仿真環(huán)境及對操作系統(tǒng)的支持,為用戶進行軟件仿真和針對操作系統(tǒng)編譯開發(fā)提供有效的支持環(huán)境。
參考文獻
[1] “The SPARC Architecture Manual Version 8”, SPARC International,Prentice Hall, 1992
[2] Prakash Rashinkar,Peter Paterson.孫海平譯. 系統(tǒng)芯片(SOC)驗證方法與技術(shù). 電子工業(yè)出版社,2005
[3] 張鎮(zhèn),魏同立, 基于IP模塊的片上系統(tǒng)設(shè)計 電子器件,2002
[4] 姚文剛,[碩士論文]基于GCC的交叉編譯器結(jié)構(gòu)分析與后端移植研究,2006
[5] 王曉棟,鄭扣根,基于嵌入式系統(tǒng)的交叉匯編器的研究與實現(xiàn),工業(yè)控制計算機,2004
[6] 朱興泉,IDE集成GCC編譯器的方法,指揮控制與仿真,2007
[7] 王榮勝,林嘉宇,張鑌,嵌入式系統(tǒng)集成開發(fā)環(huán)境中的編譯器效能研究,電子技術(shù)應(yīng)用 2008
[8] 鄒耀,劉佩林,基于用戶描述的可配置匯編器,計算機工程,2009
c語言相關(guān)文章:c語言教程
評論