SPARC高性能處理器集成開發(fā)環(huán)境及其編譯器設計與實現(xiàn)
引言
本文引用地址:http://butianyuan.cn/article/114746.htm今天嵌入式系統(tǒng)開發(fā)不再局限于只能由相關應用領域的專家來完成,各種優(yōu)秀集成開發(fā)環(huán)境(IDE)可大大降低工程人員的開發(fā)門檻[1],使嵌入式系統(tǒng)的開發(fā)變得相對簡單。目前,嵌入式系統(tǒng)開發(fā)使用的開發(fā)平臺多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風河公司的Tornado和其他公司提供的各種專用開發(fā)工具;這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調試器等組件和工具組成。在這些開發(fā)環(huán)境中,編譯程序起著核心作用,鏈接程序、調試程序、程序管理等工具直接依靠編譯程序所產生的結果工作,而且其它工具的構造也常常要用到編譯的原理、方法和技術,因此,IDE與編譯器是密不可分的。
本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發(fā)環(huán)境的設計和實現(xiàn)。
處理器體系構架
空間SPARC高性能處理器是一款SPARC v8兼容[1-3]的高性能SoC(圖1),它在片上包含整數(shù)處理單元、浮點處理單元、獨立的指令和數(shù)據(jù)Cache、硬件乘法器和除法器等,具有支持PROM、SM、SDM和I/O映射空間訪問的外部存儲器控制器,并有軟件可控的省電工作模式,還有可實現(xiàn)PCI主機橋(Host bridge)和從屬橋(Guestbridge)功能的PCI控制器等,只要加上存儲器和與應用相關的外圍電路,就可以構成完整的單板計算機系統(tǒng)。
好的IDE可以提供設計、仿真、驗證、分析、并行開發(fā)的能力,嵌入式系統(tǒng)IDE更是整合了各方資源于一身。由于系統(tǒng)設計的各個環(huán)節(jié)彼此之間是相互聯(lián)系的,設計的好壞要在仿真和驗證后才知道,仿真驗證的數(shù)據(jù)又可以反過來指導設計,所以單純的隔離設計并不一定合理,集成環(huán)境可使設計者和驗證者共享數(shù)據(jù),彼此之間協(xié)同工作。
總體設計
SPARC嵌入式IDE能提供給系統(tǒng)開發(fā)工程師一個比較完備的、易用的開發(fā)工具(圖2),主要功能如下:應用程序開發(fā),包括編輯、編譯;應用程序調試;軟件工程管理;軟件仿真環(huán)境;操作系統(tǒng)配置管理;集成環(huán)境配置管理。
集成開發(fā)環(huán)境實現(xiàn)
作為高性能控制SPARC高性能處理器的專用集成開發(fā)環(huán)境,設計實現(xiàn)了軟件開發(fā)環(huán)境SPE-C(圖3),使用C語言作為編程語言,運用SPARC V8平臺適用的BMSPARC編譯套件,能在本地Win32的環(huán)境下運行。它具備集成開發(fā)環(huán)境所有必要的功能,包括集成的源代碼編輯、工程管理、編譯調試、環(huán)境設置等功能,方便用戶基于SPARC v8兼容處理器的應用開發(fā)和程序調試。它還具有一般開發(fā)環(huán)境所具有的易用性和方便性。調試部分功能包括斷點、逐語句/過程運行、查看和修改寄存器/存儲器/片上寄存器、指令跟蹤等,實現(xiàn)了調用棧和變量的查看等。
BMSPARC編譯器
BMSPARC是基于GNU工具鏈并進行優(yōu)化設計的一款編譯器套件。其中編譯器是將一種語言編譯成為另一種語言的計算機程序,該程序以源語言編寫的程序作為輸入,翻譯生成等價的目標語言程序。編譯器可分成只依賴于源語言的編譯器前端和只依賴于目標語言的編譯器后端兩大部分。前端主要對源代碼進行掃描、語法分析和語義分析,生成中間代碼;而后端主要是優(yōu)化器和代碼生成器。在進行基于SPARC的嵌入式軟件系統(tǒng)開發(fā)之前,要先建立交叉編譯環(huán)境。目標機的交叉編譯環(huán)境是一個由編譯器、鏈接器和解釋器組成的綜合開發(fā)環(huán)境,主要由 binutils、gcc 和glibc 幾個部分組成。有時出于減小libc 庫大小的考慮,也可以用別的 c庫來代替 glibc,例如 uClibc、dietlibc和 newlib。建立一個交叉編譯工具鏈是一個復雜的過程,交叉編譯器的最終成功運行,取決于很多因素,包括:主機系統(tǒng)配置、GNU工具版本配合、參數(shù)配置、庫選擇等,一個成功的、穩(wěn)定的交叉編譯環(huán)境是需要花費大量時間的,幸運的是現(xiàn)在針對很多處理器都有比較成熟和穩(wěn)定的編譯配置。
c語言相關文章:c語言教程
評論