資料介紹
引言
今天嵌入式系統開發不再局限于只能由相關應用領域的專家來完成,各種優秀集成開發環境(IDE)可大大降低工程人員的開發門檻[1],使嵌入式系統的開發變得相對簡單。目前,嵌入式系統開發使用的開發平臺多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風河公司的Tornado和其他公司提供的各種專用開發工具;這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調試器等組件和工具組成。在這些開發環境中,編譯程序起著核心作用,鏈接程序、調試程序、程序管理等工具直接依靠編譯程序所產生的結果工作,而且其它工具的構造也常常要用到編譯的原理、方法和技術,因此,IDE與編譯器是密不可分的。
本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發環境的設計和實現。
處理器體系構架
空間SPARC高性能處理器是一款SPARC v8兼容[1-3]的高性能SoC(圖1),它在片上包含整數處理單元、浮點處理單元、獨立的指令和數據Cache、硬件乘法器和除法器等,具有支持PROM、SM、SDM和I/O映射空間訪問的外部存儲器控制器,并有軟件可控的省電工作模式,還有可實現PCI主機橋(Host bridge)和從屬橋(Guestbridge)功能的PCI控制器等,只要加上存儲器和與應用相關的外圍電路,就可以構成完整的單板計算機系統。
集成開發環境
好的IDE可以提供設計、仿真、驗證、分析、并行開發的能力,嵌入式系統IDE更是整合了各方資源于一身。由于系統設計的各個環節彼此之間是相互聯系的,設計的好壞要在仿真和驗證后才知道,仿真驗證的數據又可以反過來指導設計,所以單純的隔離設計并不一定合理,集成環境可使設計者和驗證者共享數據,彼此之間協同工作。
總體設計
SPARC嵌入式IDE能提供給系統開發工程師一個比較完備的、易用的開發工具(圖2),主要功能如下:應用程序開發,包括編輯、編譯;應用程序調試;軟件工程管理;軟件仿真環境;操作系統配置管理;集成環境配置管理。
集成開發環境實現
作為高性能控制SPARC高性能處理器的專用集成開發環境,設計實現了軟件開發環境SPE-C(圖3),使用C語言作為編程語言,運用SPARC V8平臺適用的BMSPARC編譯套件,能在本地Win32的環境下運行。它具備集成開發環境所有必要的功能,包括集成的源代碼編輯、工程管理、編譯調試、環境設置等功能,方便用戶基于SPARC v8兼容處理器的應用開發和程序調試。它還具有一般開發環境所具有的易用性和方便性。調試部分功能包括斷點、逐語句/過程運行、查看和修改寄存器/存儲器/片上寄存器、指令跟蹤等,實現了調用棧和變量的查看等。
BMSPARC編譯器
BMSPARC是基于GNU工具鏈并進行優化設計的一款編譯器套件。其中編譯器是將一種語言編譯成為另一種語言的計算機程序,該程序以源語言編寫的程序作為輸入,翻譯生成等價的目標語言程序。編譯器可分成只依賴于源語言的編譯器前端和只依賴于目標語言的編譯器后端兩大部分。前端主要對源代碼進行掃描、語法分析和語義分析,生成中間代碼;而后端主要是優化器和代碼生成器。在進行基于SPARC的嵌入式軟件系統開發之前,要先建立交叉編譯環境。目標機的交叉編譯環境是一個由編譯器、鏈接器和解釋器組成的綜合開發環境,主要由 binutils、gcc 和glibc 幾個部分組成。有時出于減小libc 庫大小的考慮,也可以用別的 c庫來代替 glibc,例如 uClibc、dietlibc和 newlib。建立一個交叉編譯工具鏈是一個復雜的過程,交叉編譯器的最終成功運行,取決于很多因素,包括:主機系統配置、GNU工具版本配合、參數配置、庫選擇等,一個成功的、穩定的交叉編譯環境是需要花費大量時間的,幸運的是現在針對很多處理器都有比較成熟和穩定的編譯配置。
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處理器的無縫配合工作,也已通過第三方評測,可隨時提供給用戶使用;下一步要完善軟件仿真環境及對操作系統的支持,為用戶進行軟件仿真和針對操作系統編譯開發提供有效的支持環境。
?
今天嵌入式系統開發不再局限于只能由相關應用領域的專家來完成,各種優秀集成開發環境(IDE)可大大降低工程人員的開發門檻[1],使嵌入式系統的開發變得相對簡單。目前,嵌入式系統開發使用的開發平臺多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風河公司的Tornado和其他公司提供的各種專用開發工具;這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調試器等組件和工具組成。在這些開發環境中,編譯程序起著核心作用,鏈接程序、調試程序、程序管理等工具直接依靠編譯程序所產生的結果工作,而且其它工具的構造也常常要用到編譯的原理、方法和技術,因此,IDE與編譯器是密不可分的。
本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發環境的設計和實現。
處理器體系構架
空間SPARC高性能處理器是一款SPARC v8兼容[1-3]的高性能SoC(圖1),它在片上包含整數處理單元、浮點處理單元、獨立的指令和數據Cache、硬件乘法器和除法器等,具有支持PROM、SM、SDM和I/O映射空間訪問的外部存儲器控制器,并有軟件可控的省電工作模式,還有可實現PCI主機橋(Host bridge)和從屬橋(Guestbridge)功能的PCI控制器等,只要加上存儲器和與應用相關的外圍電路,就可以構成完整的單板計算機系統。
集成開發環境
好的IDE可以提供設計、仿真、驗證、分析、并行開發的能力,嵌入式系統IDE更是整合了各方資源于一身。由于系統設計的各個環節彼此之間是相互聯系的,設計的好壞要在仿真和驗證后才知道,仿真驗證的數據又可以反過來指導設計,所以單純的隔離設計并不一定合理,集成環境可使設計者和驗證者共享數據,彼此之間協同工作。
總體設計
SPARC嵌入式IDE能提供給系統開發工程師一個比較完備的、易用的開發工具(圖2),主要功能如下:應用程序開發,包括編輯、編譯;應用程序調試;軟件工程管理;軟件仿真環境;操作系統配置管理;集成環境配置管理。
集成開發環境實現
作為高性能控制SPARC高性能處理器的專用集成開發環境,設計實現了軟件開發環境SPE-C(圖3),使用C語言作為編程語言,運用SPARC V8平臺適用的BMSPARC編譯套件,能在本地Win32的環境下運行。它具備集成開發環境所有必要的功能,包括集成的源代碼編輯、工程管理、編譯調試、環境設置等功能,方便用戶基于SPARC v8兼容處理器的應用開發和程序調試。它還具有一般開發環境所具有的易用性和方便性。調試部分功能包括斷點、逐語句/過程運行、查看和修改寄存器/存儲器/片上寄存器、指令跟蹤等,實現了調用棧和變量的查看等。
BMSPARC編譯器
BMSPARC是基于GNU工具鏈并進行優化設計的一款編譯器套件。其中編譯器是將一種語言編譯成為另一種語言的計算機程序,該程序以源語言編寫的程序作為輸入,翻譯生成等價的目標語言程序。編譯器可分成只依賴于源語言的編譯器前端和只依賴于目標語言的編譯器后端兩大部分。前端主要對源代碼進行掃描、語法分析和語義分析,生成中間代碼;而后端主要是優化器和代碼生成器。在進行基于SPARC的嵌入式軟件系統開發之前,要先建立交叉編譯環境。目標機的交叉編譯環境是一個由編譯器、鏈接器和解釋器組成的綜合開發環境,主要由 binutils、gcc 和glibc 幾個部分組成。有時出于減小libc 庫大小的考慮,也可以用別的 c庫來代替 glibc,例如 uClibc、dietlibc和 newlib。建立一個交叉編譯工具鏈是一個復雜的過程,交叉編譯器的最終成功運行,取決于很多因素,包括:主機系統配置、GNU工具版本配合、參數配置、庫選擇等,一個成功的、穩定的交叉編譯環境是需要花費大量時間的,幸運的是現在針對很多處理器都有比較成熟和穩定的編譯配置。
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處理器的無縫配合工作,也已通過第三方評測,可隨時提供給用戶使用;下一步要完善軟件仿真環境及對操作系統的支持,為用戶進行軟件仿真和針對操作系統編譯開發提供有效的支持環境。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32 軟件開發環境搭建
- 嵌入式軟件開發環境
- LatticeCrossLinkNX軟件開發入門文件 1次下載
- Linux軟件開發環境 7次下載
- FPGA Nios嵌入式處理器的軟件開發 0次下載
- FPGA Nios嵌入式處理器的軟件開發 17次下載
- FPGA Nios嵌入式處理器的硬件開發 5次下載
- 關于SPARC微處理器綜述 3次下載
- SPARC V8結構嵌入式微處理器的軟件集成開發環境總體設計 1次下載
- 圖象處理與分析軟件開發環境選擇_張昕 0次下載
- NIOSII處理器系統的軟件設計流程和方法
- NORTi環境下的便攜電話系統軟件實現
- REMS操作系統在SPARC-V8處理器上的應用
- 嵌入式系統軟件開發環境中調試器的設計
- 網絡處理器軟件開發模型的研究
- Vector DaVinci Team解決方案實現AUTOSAR Classic ECU軟件開發 1343次閱讀
- 嵌入式軟件開發和軟件開發的區別 2357次閱讀
- 車規MCU的軟件開發生態解析 5383次閱讀
- 基于LEON開源微處理器IP軟核實現SoC系統基本平臺的構建 2871次閱讀
- 基于UML嵌入式軟件開發環境的自動取款機系統的應用方案 3777次閱讀
- 基于VFW軟件開發包實現聲吶圖像壓縮存儲系統的應用方案 3374次閱讀
- 詳解嵌入式軟件開發到FPGA開發 6473次閱讀
- 關于嵌入式ARM多核處理器的并行方法 4279次閱讀
- 電機控制軟件開發套件啟動新設計 1675次閱讀
- 協處理器的介紹及應用 4136次閱讀
- 基于ASF開發庫進行ATWINC1500軟件開發 4019次閱讀
- mbed軟件開發平臺入門學習基礎 1.2w次閱讀
- Xilinx 軟件定義開發環境 SDAccel上線 AWS 5588次閱讀
- 32位嵌入式處理器與8位處理器應用開發的區別 1579次閱讀
- 基于微處理器的車載導航電子地圖的設計和實現 2232次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多