SPARC高性能處理器集成開發環境及其編譯器設計與實現
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語言相關文章:c語言教程
評論