資料介紹
引言
今天嵌入式系統(tǒng)開發(fā)不再局限于只能由相關(guān)應(yīng)用領(lǐng)域的專家來完成,各種優(yōu)秀集成開發(fā)環(huán)境(IDE)可大大降低工程人員的開發(fā)門檻[1],使嵌入式系統(tǒng)的開發(fā)變得相對簡單。目前,嵌入式系統(tǒng)開發(fā)使用的開發(fā)平臺多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風河公司的Tornado和其他公司提供的各種專用開發(fā)工具;這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調(diào)試器等組件和工具組成。在這些開發(fā)環(huán)境中,編譯程序起著核心作用,鏈接程序、調(diào)試程序、程序管理等工具直接依靠編譯程序所產(chǎn)生的結(jié)果工作,而且其它工具的構(gòu)造也常常要用到編譯的原理、方法和技術(shù),因此,IDE與編譯器是密不可分的。
本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發(fā)環(huán)境的設(shè)計和實現(xiàn)。
處理器體系構(gòu)架
空間SPARC高性能處理器是一款SPARC v8兼容[1-3]的高性能SoC(圖1),它在片上包含整數(shù)處理單元、浮點處理單元、獨立的指令和數(shù)據(jù)Cache、硬件乘法器和除法器等,具有支持PROM、SM、SDM和I/O映射空間訪問的外部存儲器控制器,并有軟件可控的省電工作模式,還有可實現(xiàn)PCI主機橋(Host bridge)和從屬橋(Guestbridge)功能的PCI控制器等,只要加上存儲器和與應(yīng)用相關(guān)的外圍電路,就可以構(gòu)成完整的單板計算機系統(tǒng)。

集成開發(fā)環(huán)境
好的IDE可以提供設(shè)計、仿真、驗證、分析、并行開發(fā)的能力,嵌入式系統(tǒng)IDE更是整合了各方資源于一身。由于系統(tǒng)設(shè)計的各個環(huán)節(jié)彼此之間是相互聯(lián)系的,設(shè)計的好壞要在仿真和驗證后才知道,仿真驗證的數(shù)據(jù)又可以反過來指導(dǎo)設(shè)計,所以單純的隔離設(shè)計并不一定合理,集成環(huán)境可使設(shè)計者和驗證者共享數(shù)據(jù),彼此之間協(xié)同工作。
總體設(shè)計
SPARC嵌入式IDE能提供給系統(tǒng)開發(fā)工程師一個比較完備的、易用的開發(fā)工具(圖2),主要功能如下:應(yīng)用程序開發(fā),包括編輯、編譯;應(yīng)用程序調(diào)試;軟件工程管理;軟件仿真環(huán)境;操作系統(tǒng)配置管理;集成環(huán)境配置管理。
集成開發(fā)環(huán)境實現(xiàn)
作為高性能控制SPARC高性能處理器的專用集成開發(fā)環(huán)境,設(shè)計實現(xiàn)了軟件開發(fā)環(huán)境SPE-C(圖3),使用C語言作為編程語言,運用SPARC V8平臺適用的BMSPARC編譯套件,能在本地Win32的環(huán)境下運行。它具備集成開發(fā)環(huán)境所有必要的功能,包括集成的源代碼編輯、工程管理、編譯調(diào)試、環(huán)境設(shè)置等功能,方便用戶基于SPARC v8兼容處理器的應(yīng)用開發(fā)和程序調(diào)試。它還具有一般開發(fā)環(huán)境所具有的易用性和方便性。調(diào)試部分功能包括斷點、逐語句/過程運行、查看和修改寄存器/存儲器/片上寄存器、指令跟蹤等,實現(xiàn)了調(diào)用棧和變量的查看等。

BMSPARC編譯器
BMSPARC是基于GNU工具鏈并進行優(yōu)化設(shè)計的一款編譯器套件。其中編譯器是將一種語言編譯成為另一種語言的計算機程序,該程序以源語言編寫的程序作為輸入,翻譯生成等價的目標語言程序。編譯器可分成只依賴于源語言的編譯器前端和只依賴于目標語言的編譯器后端兩大部分。前端主要對源代碼進行掃描、語法分析和語義分析,生成中間代碼;而后端主要是優(yōu)化器和代碼生成器。在進行基于SPARC的嵌入式軟件系統(tǒng)開發(fā)之前,要先建立交叉編譯環(huán)境。目標機的交叉編譯環(huán)境是一個由編譯器、鏈接器和解釋器組成的綜合開發(fā)環(huán)境,主要由 binutils、gcc 和glibc 幾個部分組成。有時出于減小libc 庫大小的考慮,也可以用別的 c庫來代替 glibc,例如 uClibc、dietlibc和 newlib。建立一個交叉編譯工具鏈是一個復(fù)雜的過程,交叉編譯器的最終成功運行,取決于很多因素,包括:主機系統(tǒng)配置、GNU工具版本配合、參數(shù)配置、庫選擇等,一個成功的、穩(wěn)定的交叉編譯環(huán)境是需要花費大量時間的,幸運的是現(xiàn)在針對很多處理器都有比較成熟和穩(wěn)定的編譯配置。
BMSPARC還提供對硬件CORDIC的支持,主要通過庫函數(shù)修改的方式完成。通過使用庫替換的方法,可以簡化移植過程,實現(xiàn)軟件兼容及編譯器的快速開發(fā)和使用,并可以快速完成針對超越函數(shù)的編譯器優(yōu)化。SPE-C與BMSPARC編譯器的集成SPE-C中編譯系統(tǒng)的基本規(guī)則為:針對工程中的源文件及鏈接文件,包括用戶指定的庫文件,按照指定的規(guī)則,并參考用戶設(shè)置,生成一個符合要求的Makefile文件,然后用make.exe對Makefile文件進行解釋執(zhí)行,從而生成需要的目標文件,或完成相應(yīng)的動作[6-8]。
如果在整個過程中有錯誤發(fā)生,則編譯/鏈接終止,IDE系統(tǒng)將套件提供的錯誤原因反饋給用戶。為了將BMSPARC編譯工具鏈集成到SPE-C中,必須使BMSPARC工具鏈的輸出信息包括警告和錯誤信息最終輸出在SPE-C的顯示窗口中。由于BMSPARC工具鏈的各個執(zhí)行文件都是基于控制臺的執(zhí)行程序(基于命令窗口的命令行程序),而SPE-C是圖形用戶界面(GUI)程序,因此要將它們執(zhí)行的各種輸出信息收集并放到SPE-C的輸出窗口中顯示,需要一些技巧。本系統(tǒng)實現(xiàn)在SPE-C的輸出窗口中顯示編譯信息的方法如下:
1)當集成開發(fā)環(huán)境通過界面交互得到用戶編譯某一工程或源碼文件的指令后,首先發(fā)起一個后臺線程;
2)后臺線程創(chuàng)建一個匿名管道,發(fā)起一個命令子進程以執(zhí)行編譯整個工程或某個源碼文件的make命令,直接將該命令子進程的標準輸出和錯誤輸出均重定向到由父進程創(chuàng)建的匿名管道的“寫”端,SPE-C的后臺線程通過該匿名管道的“讀”端得到所需要的編譯信息;
3)后臺線程再將所有通過管道獲取的編譯信息實時傳送回IDE界面中的信息輸出(Output)窗口進行顯示。顯然,這種方法實現(xiàn)起來并不復(fù)雜,命令子進程的Stdout和Stderr都被重定向到匿名管道的寫端,僅用一個匿名管道就實現(xiàn)了全部功能。上面程序流程圖中從匿名管道讀端讀取的輸出信息,即是由編譯命令子進程的Stdout和Stderr重定向輸出的內(nèi)容,將其直接放入Output窗口中顯示便實現(xiàn)了編譯信息實時顯示的功能。
結(jié)語
SPE-C集成開發(fā)環(huán)境已經(jīng)實現(xiàn)了與SPARC處理器的無縫配合工作,也已通過第三方評測,可隨時提供給用戶使用;下一步要完善軟件仿真環(huán)境及對操作系統(tǒng)的支持,為用戶進行軟件仿真和針對操作系統(tǒng)編譯開發(fā)提供有效的支持環(huán)境。
?
今天嵌入式系統(tǒng)開發(fā)不再局限于只能由相關(guān)應(yīng)用領(lǐng)域的專家來完成,各種優(yōu)秀集成開發(fā)環(huán)境(IDE)可大大降低工程人員的開發(fā)門檻[1],使嵌入式系統(tǒng)的開發(fā)變得相對簡單。目前,嵌入式系統(tǒng)開發(fā)使用的開發(fā)平臺多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風河公司的Tornado和其他公司提供的各種專用開發(fā)工具;這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調(diào)試器等組件和工具組成。在這些開發(fā)環(huán)境中,編譯程序起著核心作用,鏈接程序、調(diào)試程序、程序管理等工具直接依靠編譯程序所產(chǎn)生的結(jié)果工作,而且其它工具的構(gòu)造也常常要用到編譯的原理、方法和技術(shù),因此,IDE與編譯器是密不可分的。
本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發(fā)環(huán)境的設(shè)計和實現(xiàn)。
處理器體系構(gòu)架
空間SPARC高性能處理器是一款SPARC v8兼容[1-3]的高性能SoC(圖1),它在片上包含整數(shù)處理單元、浮點處理單元、獨立的指令和數(shù)據(jù)Cache、硬件乘法器和除法器等,具有支持PROM、SM、SDM和I/O映射空間訪問的外部存儲器控制器,并有軟件可控的省電工作模式,還有可實現(xiàn)PCI主機橋(Host bridge)和從屬橋(Guestbridge)功能的PCI控制器等,只要加上存儲器和與應(yīng)用相關(guān)的外圍電路,就可以構(gòu)成完整的單板計算機系統(tǒng)。

集成開發(fā)環(huán)境
好的IDE可以提供設(shè)計、仿真、驗證、分析、并行開發(fā)的能力,嵌入式系統(tǒng)IDE更是整合了各方資源于一身。由于系統(tǒng)設(shè)計的各個環(huán)節(jié)彼此之間是相互聯(lián)系的,設(shè)計的好壞要在仿真和驗證后才知道,仿真驗證的數(shù)據(jù)又可以反過來指導(dǎo)設(shè)計,所以單純的隔離設(shè)計并不一定合理,集成環(huán)境可使設(shè)計者和驗證者共享數(shù)據(jù),彼此之間協(xié)同工作。
總體設(shè)計
SPARC嵌入式IDE能提供給系統(tǒng)開發(fā)工程師一個比較完備的、易用的開發(fā)工具(圖2),主要功能如下:應(yīng)用程序開發(fā),包括編輯、編譯;應(yīng)用程序調(diào)試;軟件工程管理;軟件仿真環(huán)境;操作系統(tǒng)配置管理;集成環(huán)境配置管理。
集成開發(fā)環(huán)境實現(xiàn)
作為高性能控制SPARC高性能處理器的專用集成開發(fā)環(huán)境,設(shè)計實現(xiàn)了軟件開發(fā)環(huán)境SPE-C(圖3),使用C語言作為編程語言,運用SPARC V8平臺適用的BMSPARC編譯套件,能在本地Win32的環(huán)境下運行。它具備集成開發(fā)環(huán)境所有必要的功能,包括集成的源代碼編輯、工程管理、編譯調(diào)試、環(huán)境設(shè)置等功能,方便用戶基于SPARC v8兼容處理器的應(yīng)用開發(fā)和程序調(diào)試。它還具有一般開發(fā)環(huán)境所具有的易用性和方便性。調(diào)試部分功能包括斷點、逐語句/過程運行、查看和修改寄存器/存儲器/片上寄存器、指令跟蹤等,實現(xiàn)了調(diào)用棧和變量的查看等。

BMSPARC編譯器
BMSPARC是基于GNU工具鏈并進行優(yōu)化設(shè)計的一款編譯器套件。其中編譯器是將一種語言編譯成為另一種語言的計算機程序,該程序以源語言編寫的程序作為輸入,翻譯生成等價的目標語言程序。編譯器可分成只依賴于源語言的編譯器前端和只依賴于目標語言的編譯器后端兩大部分。前端主要對源代碼進行掃描、語法分析和語義分析,生成中間代碼;而后端主要是優(yōu)化器和代碼生成器。在進行基于SPARC的嵌入式軟件系統(tǒng)開發(fā)之前,要先建立交叉編譯環(huán)境。目標機的交叉編譯環(huán)境是一個由編譯器、鏈接器和解釋器組成的綜合開發(fā)環(huán)境,主要由 binutils、gcc 和glibc 幾個部分組成。有時出于減小libc 庫大小的考慮,也可以用別的 c庫來代替 glibc,例如 uClibc、dietlibc和 newlib。建立一個交叉編譯工具鏈是一個復(fù)雜的過程,交叉編譯器的最終成功運行,取決于很多因素,包括:主機系統(tǒng)配置、GNU工具版本配合、參數(shù)配置、庫選擇等,一個成功的、穩(wěn)定的交叉編譯環(huán)境是需要花費大量時間的,幸運的是現(xiàn)在針對很多處理器都有比較成熟和穩(wěn)定的編譯配置。
BMSPARC還提供對硬件CORDIC的支持,主要通過庫函數(shù)修改的方式完成。通過使用庫替換的方法,可以簡化移植過程,實現(xiàn)軟件兼容及編譯器的快速開發(fā)和使用,并可以快速完成針對超越函數(shù)的編譯器優(yōu)化。SPE-C與BMSPARC編譯器的集成SPE-C中編譯系統(tǒng)的基本規(guī)則為:針對工程中的源文件及鏈接文件,包括用戶指定的庫文件,按照指定的規(guī)則,并參考用戶設(shè)置,生成一個符合要求的Makefile文件,然后用make.exe對Makefile文件進行解釋執(zhí)行,從而生成需要的目標文件,或完成相應(yīng)的動作[6-8]。
如果在整個過程中有錯誤發(fā)生,則編譯/鏈接終止,IDE系統(tǒng)將套件提供的錯誤原因反饋給用戶。為了將BMSPARC編譯工具鏈集成到SPE-C中,必須使BMSPARC工具鏈的輸出信息包括警告和錯誤信息最終輸出在SPE-C的顯示窗口中。由于BMSPARC工具鏈的各個執(zhí)行文件都是基于控制臺的執(zhí)行程序(基于命令窗口的命令行程序),而SPE-C是圖形用戶界面(GUI)程序,因此要將它們執(zhí)行的各種輸出信息收集并放到SPE-C的輸出窗口中顯示,需要一些技巧。本系統(tǒng)實現(xiàn)在SPE-C的輸出窗口中顯示編譯信息的方法如下:
1)當集成開發(fā)環(huán)境通過界面交互得到用戶編譯某一工程或源碼文件的指令后,首先發(fā)起一個后臺線程;
2)后臺線程創(chuàng)建一個匿名管道,發(fā)起一個命令子進程以執(zhí)行編譯整個工程或某個源碼文件的make命令,直接將該命令子進程的標準輸出和錯誤輸出均重定向到由父進程創(chuàng)建的匿名管道的“寫”端,SPE-C的后臺線程通過該匿名管道的“讀”端得到所需要的編譯信息;
3)后臺線程再將所有通過管道獲取的編譯信息實時傳送回IDE界面中的信息輸出(Output)窗口進行顯示。顯然,這種方法實現(xiàn)起來并不復(fù)雜,命令子進程的Stdout和Stderr都被重定向到匿名管道的寫端,僅用一個匿名管道就實現(xiàn)了全部功能。上面程序流程圖中從匿名管道讀端讀取的輸出信息,即是由編譯命令子進程的Stdout和Stderr重定向輸出的內(nèi)容,將其直接放入Output窗口中顯示便實現(xiàn)了編譯信息實時顯示的功能。
結(jié)語
SPE-C集成開發(fā)環(huán)境已經(jīng)實現(xiàn)了與SPARC處理器的無縫配合工作,也已通過第三方評測,可隨時提供給用戶使用;下一步要完善軟件仿真環(huán)境及對操作系統(tǒng)的支持,為用戶進行軟件仿真和針對操作系統(tǒng)編譯開發(fā)提供有效的支持環(huán)境。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32 軟件開發(fā)環(huán)境搭建
- 嵌入式軟件開發(fā)環(huán)境
- LatticeCrossLinkNX軟件開發(fā)入門文件 1次下載
- Linux軟件開發(fā)環(huán)境 7次下載
- FPGA Nios嵌入式處理器的軟件開發(fā) 0次下載
- FPGA Nios嵌入式處理器的軟件開發(fā) 17次下載
- FPGA Nios嵌入式處理器的硬件開發(fā) 5次下載
- 關(guān)于SPARC微處理器綜述 3次下載
- SPARC V8結(jié)構(gòu)嵌入式微處理器的軟件集成開發(fā)環(huán)境總體設(shè)計 1次下載
- 圖象處理與分析軟件開發(fā)環(huán)境選擇_張昕 0次下載
- NIOSII處理器系統(tǒng)的軟件設(shè)計流程和方法
- NORTi環(huán)境下的便攜電話系統(tǒng)軟件實現(xiàn)
- REMS操作系統(tǒng)在SPARC-V8處理器上的應(yīng)用
- 嵌入式系統(tǒng)軟件開發(fā)環(huán)境中調(diào)試器的設(shè)計
- 網(wǎng)絡(luò)處理器軟件開發(fā)模型的研究
- Vector DaVinci Team解決方案實現(xiàn)AUTOSAR Classic ECU軟件開發(fā) 1343次閱讀
- 嵌入式軟件開發(fā)和軟件開發(fā)的區(qū)別 2357次閱讀
- 車規(guī)MCU的軟件開發(fā)生態(tài)解析 5383次閱讀
- 基于LEON開源微處理器IP軟核實現(xiàn)SoC系統(tǒng)基本平臺的構(gòu)建 2871次閱讀
- 基于UML嵌入式軟件開發(fā)環(huán)境的自動取款機系統(tǒng)的應(yīng)用方案 3777次閱讀
- 基于VFW軟件開發(fā)包實現(xiàn)聲吶圖像壓縮存儲系統(tǒng)的應(yīng)用方案 3374次閱讀
- 詳解嵌入式軟件開發(fā)到FPGA開發(fā) 6473次閱讀
- 關(guān)于嵌入式ARM多核處理器的并行方法 4279次閱讀
- 電機控制軟件開發(fā)套件啟動新設(shè)計 1675次閱讀
- 協(xié)處理器的介紹及應(yīng)用 4136次閱讀
- 基于ASF開發(fā)庫進行ATWINC1500軟件開發(fā) 4019次閱讀
- mbed軟件開發(fā)平臺入門學(xué)習基礎(chǔ) 1.2w次閱讀
- Xilinx 軟件定義開發(fā)環(huán)境 SDAccel上線 AWS 5588次閱讀
- 32位嵌入式處理器與8位處理器應(yīng)用開發(fā)的區(qū)別 1579次閱讀
- 基于微處理器的車載導(dǎo)航電子地圖的設(shè)計和實現(xiàn) 2232次閱讀
下載排行
本周
- 1GD100PIX120C6SNA規(guī)格書
- 0.98 MB | 3次下載 | 免費
- 2一款入耳式耳機的仿真與分析
- 0.44 MB | 2次下載 | 免費
- 3Eurotherm TKS Temperature 用戶手冊
- 1.46 MB | 2次下載 | 免費
- 4人形機器人電機驅(qū)動和傳感報告
- 4.27 MB | 2次下載 | 免費
- 5無線系統(tǒng)中天線和RF元件電磁建模
- 7.48 MB | 1次下載 | 4 積分
- 6Multisim模擬電路仿真教程
- 1.93 MB | 1次下載 | 3 積分
- 7DMP300C1型微機變壓器保護測控裝置技術(shù)說明書
- 4.11 MB | 次下載 | 10 積分
- 8用MT3540芯片設(shè)計BOOST電路 1(可下載)
- 445.66 KB | 次下載 | 免費
本月
- 1晶體三極管的電流放大作用詳細說明
- 0.77 MB | 32次下載 | 2 積分
- 2Python從入門到精通背記手冊
- 18.77 MB | 27次下載 | 1 積分
- 3雙極型三極管放大電路的三種基本組態(tài)的學(xué)習課件免費下載
- 4.03 MB | 25次下載 | 1 積分
- 4AIWA HS-J303 MKⅡ維修手冊
- 22.47 MB | 23次下載 | 10 積分
- 5多級放大電路的學(xué)習課件免費下載
- 1.81 MB | 21次下載 | 2 積分
- 6九陽豆?jié){機高清原理圖
- 2.47 MB | 20次下載 | 1 積分
- 7AIWA HS-J202/HS-J202M/HS-J800維修手冊
- 13.60 MB | 15次下載 | 10 積分
- 81875功放原理圖
- 0.04 MB | 11次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191382次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183337次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81585次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論