《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > SPARC高性能處理器集成開發環境及其編譯器設計與實現
SPARC高性能處理器集成開發環境及其編譯器設計與實現
摘要: 本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發環境的設計和實現。
Abstract:
Key words :

引言

嵌入式系統迅猛發展的今天,廣泛的應用和需求使嵌入式系統的開發不再局限于只能由相關應用領域的專家來完成,各種優秀集成開發環境(IDE,Integration Develop Environment)的出現,大大降低了工程人員的開發門檻[1],使得嵌入式系統的開發變得相對簡單。目前,嵌入式系統開發使用的開發平臺多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風河公司的Tornado和其他公司提供的各種專用開發工具;這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調試器等組件和工具組成。在這些開發環境中,編譯程序起著核心作用,鏈接程序、調試程序、程序管理等工具直接依靠編譯程序所產生的結果工作,而且其它工具的構造也常常要用到編譯的原理、方法和技術,因此,IDE與編譯器是密不可分的。

本文針對空間SPARC高性能處理器的IDE及其C編譯器進行研究,從而完成SPARC處理器的軟件開發環境的設計和實現。

1、處理器體系構架

空間SPARC高性能處理器是一款SPARC v8兼容[1] [2] [3]的高性能SoC,它在片上包含整數處理單元,浮點處理單元,獨立的指令和數據Cache,硬件乘法器和除法器,外部可編程輸入端口的中斷控制器,帶有跟蹤緩沖器的硬件調試單元,兩個24位定時器,32個通用I/O接口,一個看門狗,三個串行通信接口,能夠支持PROM、SRAM、SDRAM和I/O映射空間訪問的外部存儲器控制器,具有軟件可控的省電工作模式,具有可實現 PCI主機橋(Host bridge)和從屬橋(Guest bridge)功能的PCI控制器等,只要加上存儲器和與應用相關的外圍電路,就可以構成完整的單板計算機系統。其體系框圖如下所示:

2、集成開發環境

好的集成開發環境可以提供設計、仿真、驗證、分析、并行開發的能力,嵌入式系統集成開發環境更是整合了各方的資源與一身。由于系統設計的各個環節彼此之間都是有相互聯系的,設計的結果好壞和正確要在仿真和驗證中取得,仿真驗證的數據又可以反過來指導設計,所以說單純的隔離設計中的各個部分的設計是不合理的,集成環境可以為設計者提供這樣一個平臺,使得設計者和驗證者共享數據,彼此之間協同工作使得設計更加的合理。

2.1 總體設計

嵌入式集成開發環境針對SPARC高性能處理器的軟件系統設計要求和設計能力進行改進,希望能夠提供給用戶和系統開發工程師一個比較完備的、易用的開發工具,其主要功能應包括以下幾個方面:

應用程序開發,包括編輯、編譯 應用程序調試 軟件工程管理 軟件仿真環境 操作系統配置管理 集成環境配置管理

集成開發環境的總體設計框圖如下所示:

2.2 集成開發環境實現

作為高性能控制SPARC高性能處理器的專用集成開發環境,設計實現了軟件開發環境SPE-C,使用C語言做為其編程語言,運用SPARC V8平臺適用的BMSPARC編譯套件,能在本地Win32的環境下運行。

它具備集成開發環境所有必要的功能,包括集成的源代碼編輯,工程管理,編譯調試,環境設置等功能,方便用戶基于SPARC v8兼容處理器的應用開發和程序調試。

它還具有一般開發環境所普遍具有的易用性和方便性。調試部分功能包括斷點、逐語句/過程運行、查看和修改寄存器堆/存儲器/片上寄存器、指令跟蹤等,實現了調用棧和變量的查看等。

SPE-C軟件開發環境實現的主要特點包括:

編程語言為C語言 支持BMSPARC編譯器 集成調試功能 新建工程提供系統初始化模版框架 提供可供修改的全定制鏈接腳本 創建生成文件腳本 工程管理,分類函數預覽 支持中英文兩種語言 文件函數預覽 代碼編輯,語法高亮 變量屬性提示 函數瀏覽及快速檢索,快速定位(文內及工程)及文字替換 支持打印及系統統計 文件內書簽功能

SPE-C軟件開發環境為用戶提供了高效、便捷的開發和調試環境,現在該軟件已經設計完成并通過第三方評測,可以隨時提供給用戶使用。

3、BMSPARC編譯器

3.1 編譯器工作原理

BMSPARC是基于GNU工具鏈并進行優化設計的一款編譯器套件。GNU工具鏈一般由下面一些工具組成:編譯器GCC(GCC本身作為編譯器集合包含了對多種語言的支持,這里僅討論C編譯器);Binutils軟件包中作為匯編器的GAS,作為鏈接器和定址器的LD以及對二進制目標文件進行變化處理的其他工具;作為標準C庫的Newlib或Glibc;作為調試器的GDB。[4] [5]

其中編譯器是將一種語言編譯成為另一種語言的計算機程序,該程序以源語言編寫的程序作為輸入,翻譯生成等價的目標語言程序。編譯器可分成只依賴于源語言的編譯器前端和只依賴于目標語言的編譯器后端兩大部分。前端主要對源代碼進行掃描、語法分析和語義分析,生成中間代碼;而后端主要是優化器和代碼生成器。

3.2 BMSPARC編譯器生成

在進行基于SPARC高性能處理器的嵌入式軟件系統開發之前,要先建立交叉編譯環境。目標機的交叉編譯環境是一個由編譯器、鏈接器和解釋器組成的綜合開發環境,主要由 binutils、gcc 和 glibc 幾個部分組成。有時出于減小 libc 庫大小的考慮,也可以用別的 c 庫來代替 glibc,例如 uClibc、dietlibc 和 newlib。建立一個交叉編譯工具鏈是一個復雜的過程,交叉編譯器的最終成功運行,取決于很多因素,包括:主機系統配置、GNU工具版本配合、參數配置、庫選擇等,一個成功的、穩定的交叉編譯環境是需要花費大量額時間的,幸運的是現在針對很多處理器都有比較成熟何穩定的編譯配置,這里簡單列出本系統的交叉編譯環境的主要配置:

宿主機 i386-cygwin,目標機 sparc; 編譯環境版本

1. binutils-2.13.2.1

2. gcc-3.4.4

3. gdb-6.3

4. newlib-1.13.0

在交叉編譯器編譯的基本配置如下所示:

../gcc-3.4.4/configure --target=sparc-elf --prefix= /opt/sparc-elf-3.4.4

--with-gnu-as --with-gnu-ld

--verbose --enable-languages=c,c++ --disable-shared --disable-nls

--with-newlib --with-cpu=leon 2>&1 | tee compile-gcc-configure.out

交叉編譯環境建立過程如下:

1. 下載源文件、補丁和建立編譯的目錄

2. 建立內核頭文件

3. 建立二進制工具(binutils)

4. 建立初始編譯器(bootstrap gcc)

5. 建立c庫(glibc)

6. 建立全套編譯器(full gcc)

7. 下載源文件、補丁和建立編譯的目錄

生成的工具鏈是基于ELF格式的,全部在/opt/sparc-elf-3.4.4(這是cygwin的目錄)路徑下,完全作為集成開發環境的配套工具鏈。

3.3 CORDIC指令支持

BMSPARC還提供對硬件CORDIC的支持。CORDIC算法使用矢量的旋轉和定向運算進行三角函數、對數、開方及反三角函數等復雜運算。該算法的基本思想是通過一系列固定的與運算基數相關的角度的不斷偏擺以逼近所需的旋轉角度,由于其基本運算單元只有移位與加減法,為該算法的VLSI實現打下了良好的基礎。

下表列出了BMSPARC支持的cordic協處理器指令及其對應的指令操作碼,是對SPARC v8標準指令集中浮點協處指令操作碼的擴充。

BMSPARC編譯器提供對cordic指令的支持,主要通過庫函數修改的方式完成。首先在binutils中修改匯編器gas,主要針對匯編器的前端和BFD庫的移植,涉及到的文件包括:tc-sparc.c、tc-sparc.h、sparc.h、sparc-opc.c、sparc-dis.c和elf32- sparc.h等。通過定義相應cordic指令的宏來完成匯編級的指令生成,之后要完成newlib中超越函數相關的數學函數庫,利用匯編指令實現函數的功能,并在匯編中使用cordic指令完成的超越函數功能。最后定義頂層數據類型,針對不同的數據類型,如針對單精度和雙精度的浮點,實現其三角函數的數學庫是不同的,要分別針對其不同的類型進行實現。

顯然,通過使用庫替換的方法,可以簡化移植過程,實現軟件兼容及編譯器的快速開發和使用,并可以快速的完成針對超越函數的編譯器優化。

4、SPE-C與BMSPARC編譯器的集成

SPE-C中編譯系統的基本規則為:針對工程中的源文件及鏈接文件,包括用戶指定的庫文件,按照指定的規則,并參考用戶設置,生成一個符合要求的Makefile文件,然后用make.exe對Makefile文件進行解釋執行,從而生成需要的目標文件,或完成相應的動作。[6] [7] [8]

如果在整個過程中有錯誤發生,則編譯/鏈接終止,IDE系統將套件提供的錯誤原因反饋給用戶。

為了將BMSPARC編譯工具鏈集成到SPE-C中,必須使BMSPARC工具鏈的輸出信息包括警告和錯誤信息最終輸出(Output)在SPE-C的顯示窗口中。由于BMSPARC工具鏈的各個執行文件都是基于控制臺的執行程序(基于命令窗口的命令行程序),而SPE-C是圖形用戶界面(GUI)程序,因此要將它們執行的各種輸出信息收集并放到SPE-C的輸出窗口中顯示,需要一些實現技巧。本系統中實現在SPE-C的輸出窗口中顯示編譯信息的方法如下:

1)當集成開發環境通過界面交互得到用戶編譯某一工程或源碼文件的指令后,首先發起一個后臺線程;

2)后臺線程創建一個匿名管道,發起一個命令子進程以執行編譯整個工程或某個源碼文件的make命令,直接將該命令子進程的標準輸出和錯誤輸出均重定向到由父進程創建的匿名管道的“寫”端,SPE-C的后臺線程通過該匿名管道的“讀”端得到所需要的編譯信息;

3)后臺線程再將所有通過管道獲取的編譯信息實時傳送回IDE界面中的信息輸出(Output)窗口進行顯示。

下圖是采用如上技術,實現SPE-C與編譯器之間的信息交互的結果示例:

顯然,這種方法實現起來并不復雜,命令子進程的Stdout和Stderr都被重定向到匿名管道的寫端,僅用一個匿名管道就實現了全部功能。上面程序流程圖中從匿名管道讀端讀取的輸出信息,即是由編譯命令子進程的Stdout和Stderr重定向輸出的內容,將其直接放入Output窗口中顯示便實現了編譯信息實時顯示的功能。

結束語

本文討論了針對SPARC高性能處理器的嵌入式系統專用軟件集成開發環境及其編譯器,介紹了集成開發環境(SPE-C)的設計及其集成的相關功能,介紹了BMSPARC編譯環境及其添加CORDIC指令支持的方法,以及如何實現編譯環境與集成開發環境的集成。通過上面的工作,SPE-C集成開發環境已經實現了與SPARC高性能處理器的無縫配合工作;下一步要完善軟件仿真環境及對操作系統的支持,為用戶進行軟件仿真和針對操作系統編譯開發提供有效的支持環境。

參考文獻

[1] “The SPARC Architecture Manual Version 8”, SPARC International,Prentice Hall, 1992

[2] Prakash Rashinkar,Peter Paterson.孫海平譯. 系統芯片(SOC)驗證方法與技術. 電子工業出版社,2005

[3] 張鎮,魏同立, 基于IP模塊的片上系統設計 電子器件,2002

[4] 姚文剛,[碩士論文]基于GCC的交叉編譯器結構分析與后端移植研究,2006

[5] 王曉棟,鄭扣根,基于嵌入式系統的交叉匯編器的研究與實現,工業控制計算機,2004

[6] 朱興泉,IDE集成GCC編譯器的方法,指揮控制與仿真,2007

[7] 王榮勝,林嘉宇,張鑌,嵌入式系統集成開發環境中的編譯器效能研究,電子技術應用 2008

[8] 鄒耀,劉佩林,基于用戶描述的可配置匯編器,計算機工程,2009

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产偷国产偷精品高清尤物| 亚洲无亚洲人成网站77777| 欧美亚洲自偷自偷| 国产亚洲精品bt天堂精选| 欧美α欧美αv大片| 亚洲精品乱码| 亚洲国产中文字幕在线观看| 在线国产日韩| 国产日韩欧美在线播放不卡| 性色一区二区| 亚洲精品在线观看视频| 国产一区二区三区免费观看| 国产日产高清欧美一区二区三区| 欧美成人国产va精品日本一级| 欧美精品系列| 亚洲电影在线播放| 亚洲三级性片| 亚洲欧美国产不卡| 欧美午夜宅男影院在线观看| 亚洲在线成人精品| 日韩视频欧美视频| 欧美三区在线观看| 欧美日韩精品伦理作品在线免费观看| 欧美视频一区二区三区…| 亚洲尤物影院| 国产美女在线精品免费观看| 国产婷婷色一区二区三区在线| 欧美人与性动交a欧美精品| 欧美三级视频在线观看| 亚洲免费在线电影| 欧美日韩国产首页| 欧美夫妇交换俱乐部在线观看| 国产一区二区三区观看| 欧美少妇一区| 亚洲一区二区三区高清不卡| 欧美精品一区二区三区一线天视频| 久久福利影视| 欧美一级午夜免费电影| 另类欧美日韩国产在线| 久久一二三四| 99精品久久免费看蜜臀剧情介绍| 欧美国产精品人人做人人爱| 亚洲精品专区| 国产无一区二区| 亚洲最快最全在线视频| 久久久av水蜜桃| 国产欧美视频一区二区三区| 亚洲午夜av电影| 欧美精品亚洲| 国产热re99久久6国产精品| 亚洲黄色视屏| 葵司免费一区二区三区四区五区| 在线视频亚洲欧美| 久久精品国内一区二区三区| 亚洲第一在线视频| 国内精品久久久久伊人av| 久久成人av少妇免费| 亚洲电影在线| 在线播放一区| 欧美日韩国产精品| aa日韩免费精品视频一| 久久精品国产久精国产一老狼| 午夜亚洲性色福利视频| 亚洲国产精品va| 免费观看30秒视频久久| 久久亚洲欧美国产精品乐播| 国产精品伦理| 欧美在线首页| 亚洲天堂av综合网| 国产一区二区精品在线观看| 久久久久久久综合日本| 欧美视频一区在线观看| 在线观看一区二区精品视频| 亚洲精品欧美在线| 亚洲欧洲一区二区三区久久| 欧美精品免费看| 欧美v亚洲v综合ⅴ国产v| 国产精品网站在线观看| 亚洲激情在线播放| 在线视频日韩| 国产精品永久入口久久久| 狠狠干成人综合网| 在线视频观看日韩| 午夜精品美女自拍福到在线| 亚洲日本一区二区三区| 欧美日韩亚洲一区二区三区| 欧美男人的天堂| 欧美激情一区二区三区| 久久久久久伊人| 伊人色综合久久天天五月婷| 国产精品久久久久久久7电影| 午夜精品福利视频| 国产精品―色哟哟| 欧美在线免费播放| 国产亚洲欧美一区在线观看| 亚洲美女免费视频| 欧美午夜精品久久久久久久| 欧美二区在线看| 99国产一区| 久久九九99| 久久嫩草精品久久久精品一| 欧美激情成人在线| 亚洲欧美日韩国产成人精品影院| 99在线观看免费视频精品观看| 欧美在线日韩| 久久精品一区二区三区不卡| 国产精品免费一区二区三区在线观看| 久久香蕉国产线看观看网| 国产精品视频你懂的| 国产精品男gay被猛男狂揉视频| 亚洲另类在线一区| 亚洲电影免费观看高清| 一区二区三区偷拍| 亚洲自拍偷拍麻豆| 亚洲一区二区三区在线观看视频| 亚洲欧美在线高清| 久久综合五月天婷婷伊人| 国产精品丝袜久久久久久app| 欧美日韩国产欧美日美国产精品| 国产精品黄页免费高清在线观看| 亚洲国产激情| 在线视频你懂得一区二区三区| 国产精品久久97| 国产精品资源| 亚洲国内欧美| 亚洲精品中文字| 夜夜爽99久久国产综合精品女不卡| 国产女精品视频网站免费| 亚洲一区精品视频| 欧美日韩精品一二三区| 中国成人亚色综合网站| 亚洲第一精品影视| 亚洲欧美久久久久一区二区三区| 欧美激情偷拍| 亚洲一区日本| 欧美日韩成人| 亚洲桃色在线一区| 亚洲级视频在线观看免费1级| 欧美aaaaaaaa牛牛影院| 一本色道久久综合亚洲精品不卡| 亚洲三级毛片| 国产精品日韩欧美一区二区三区| 欧美日韩综合精品| 国内精品久久久久久久果冻传媒| 午夜欧美大尺度福利影院在线看| 亚洲第一成人在线| 亚洲午夜国产成人av电影男同| 亚洲国产精彩中文乱码av在线播放| 欧美三级午夜理伦三级中视频| 欧美性色aⅴ视频一区日韩精品| 国产欧美亚洲视频| 亚洲国产精品成人一区二区| 欧美日韩一卡| 国产精品视频成人| 亚洲欧美色婷婷| 国产精品国产三级国产a| 一区二区三区四区五区精品| 国内精品美女在线观看| 国产精品久久久久久超碰| 久久亚洲综合色一区二区三区| 亚洲一区二区精品在线观看| 亚洲午夜一区二区三区| 亚洲国产天堂久久国产91| 极品日韩av| 国产欧美日韩不卡免费| 久久精品午夜| 久久综合久久综合这里只有精品| 激情成人av| 久久国产手机看片| 国产一区二区三区在线观看精品| 久久综合中文| 午夜精品久久久久| 国产精品视频最多的网站| 欧美一区二区三区免费在线看| 一区二区欧美在线观看| 亚洲综合精品一区二区| 亚洲精品在线观看视频| 国产精品久久久久一区二区三区| 久久精品国产免费看久久精品| 亚洲午夜精品视频| 免费成人网www| 久久久久国色av免费看影院| 亚洲精品在线视频观看| 欧美视频在线播放| 欧美一区二区免费观在线| 国产日韩亚洲| 欧美日韩一区视频| 国产精品国产成人国产三级| 欧美另类高清视频在线| 激情成人亚洲| 在线观看91精品国产麻豆| 亚洲综合首页| 亚洲美女免费精品视频在线观看| 亚洲天堂激情| 免费短视频成人日韩| 蜜臀av国产精品久久久久| 欧美日韩1区| 国产一区清纯| 国产精品亚洲第一区在线暖暖韩国| 欧美在线视频免费观看| 久久aⅴ国产欧美74aaa| 久久久人成影片一区二区三区观看| 久久久欧美精品| 麻豆91精品| 欧美黄色日本| 国产精品久久久久久久久久三级| 欧美不卡在线| 欧美日韩免费在线视频| 久久综合色综合88| 亚洲欧美国产不卡| 亚洲永久字幕| 欧美视频网站| 久久精品一区蜜桃臀影院| 伊人成人在线视频| 国产精品欧美激情| 欧美一区网站| 欧美一区观看| 久久综合婷婷| 国产精品高清免费在线观看| 久久综合伊人77777麻豆| 欧美日韩国产限制| 欧美日韩18| 久久综合色天天久久综合图片| 久久久久9999亚洲精品| 国产精品嫩草影院一区二区| 免费毛片一区二区三区久久久| 久久精品国产视频| 欧美日韩美女在线观看| 欧美亚洲视频一区二区| 精品电影一区| 久久精品av麻豆的观看方式| 久久精品国产999大香线蕉| 在线成人h网| 老司机午夜精品视频在线观看| 亚洲欧洲在线看| 亚洲新中文字幕| 一区二区三区亚洲| 国产精品久久久一区二区| 国产在线视频不卡二| 国产视频一区二区三区在线观看| 国产一在线精品一区在线观看| 国产三级欧美三级| 男人天堂欧美日韩| 亚洲欧洲综合另类在线| 亚洲国产日韩欧美综合久久| 韩国av一区二区| 韩国精品一区二区三区| 久热综合在线亚洲精品| 国内久久视频| 国产精品久久久久久久久久妞妞| 久久国产精品色婷婷| 狠狠色综合网站久久久久久久| 国内一区二区在线视频观看| 久久天堂av综合合色| 欧美日韩在线一区二区三区| 香蕉久久一区二区不卡无毒影院| 欧美高清一区二区| 亚洲午夜极品| 午夜精品一区二区三区在线播放| 久久久精品视频成人| 日韩视频二区| 一区二区三区我不卡| 激情欧美亚洲| 在线视频你懂得一区二区三区| 在线观看日韩| 亚洲女同同性videoxma| 久久福利毛片| 亚洲欧洲中文日韩久久av乱码| 国产精品久久综合| 亚洲国产va精品久久久不卡综合| 亚洲视频免费在线观看| 欧美一级在线亚洲天堂| 久久久久久网站| 国产精品www| 欧美在线视频网站| 亚洲美女色禁图| 久久久久久婷| 久久久九九九九| 亚洲欧美日韩综合一区| 午夜精品久久久久久久久久久久久| 欧美日韩在线播放| 亚洲精品一区二区三区在线观看| 亚洲午夜一区二区| 黄色日韩网站视频| 亚洲欧洲一区二区在线播放| 欧美午夜精品理论片a级大开眼界| 国产精品一区免费观看| 亚洲第一级黄色片| 国产精品久久久久一区二区三区| 在线免费观看日韩欧美| 亚洲风情在线资源站| 亚洲自拍偷拍色片视频| 美乳少妇欧美精品| 久久久久国产精品麻豆ai换脸| 在线欧美不卡| 久久精品日产第一区二区| 一区二区三区自拍| 欧美fxxxxxx另类| 销魂美女一区二区三区视频在线| 亚洲欧美在线网| 国产精品久久99| 欧美福利专区| 国产网站欧美日韩免费精品在线观看| 欧美一区二区三区四区夜夜大片| 欧美成人综合网站| 国产精品久久婷婷六月丁香| 国产精品日韩欧美| 亚洲日本欧美日韩高观看| 国产日韩在线一区二区三区| 中日韩午夜理伦电影免费| 精品999在线观看| 蜜臀久久99精品久久久画质超高清| 一区二区三区四区国产| 老牛影视一区二区三区| 国产精品电影网站| 亚洲人成网站在线观看播放| 欧美日韩中文精品| 欧美日韩国产在线播放网站| 亚洲免费在线视频| 欧美成人有码| 老司机久久99久久精品播放免费| 狠狠色香婷婷久久亚洲精品| 欧美一级久久久久久久大片| 极品尤物av久久免费看| 欧美午夜欧美| 亚洲精品午夜| 亚洲一区二区免费| 欧美日韩另类在线|