999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SPARC高性能處理器集成開(kāi)發(fā)環(huán)境及其編譯器設(shè)計(jì)與實(shí)現(xiàn)

2010-04-29 00:00:00王建永蘭利東于立新
電子產(chǎn)品世界 2010年11期

摘要:針對(duì)SPARC高性能處理器,在集成開(kāi)發(fā)環(huán)境(SPE-c)中集成工程管理、編輯、編譯、調(diào)試等基本功能,并針對(duì)sPARc特點(diǎn)優(yōu)化其編譯環(huán)境,添加CORDIC指令支持,從而完成高性能處理器軟件開(kāi)發(fā)環(huán)境的設(shè)計(jì)和集成工作。

關(guān)鍵詞:SPRAC;集成開(kāi)發(fā)環(huán)境;編譯器;SPE-C;CORDIC

引言

今天嵌入式系統(tǒng)開(kāi)發(fā)不再局限于只能由相關(guān)應(yīng)用領(lǐng)域的專家來(lái)完成,各種優(yōu)秀集成開(kāi)發(fā)環(huán)境(IDE)可大大降低工程人員的開(kāi)發(fā)門檻,使嵌入式系統(tǒng)的開(kāi)發(fā)變得相對(duì)簡(jiǎn)單。目前,嵌入式系統(tǒng)開(kāi)發(fā)使用的開(kāi)發(fā)平臺(tái)多種多樣,從ARM公司的SDT到ADS,再到RVDS,以及風(fēng)河公司的Tornado和其他公司提供的各種專用開(kāi)發(fā)工具:這些IDE一般都是由文件管理器、編譯器、匯編器、鏈接器、調(diào)試器等組件和工具組成。在這些開(kāi)發(fā)環(huán)境中,編譯程序起著核心作用,鏈接程序、調(diào)試程序、程序管理等工具直接依靠編譯程序所產(chǎn)生的結(jié)果工作,而且其它工具的構(gòu)造也常常要用到編譯的原理、方法和技術(shù),因此,IDE與編譯器是密不可分的。

本文針對(duì)空間SPAKC高性能處理器的IDE及其c編譯器進(jìn)行研究,從而完成SPARC處理器的軟件開(kāi)發(fā)環(huán)境的設(shè)計(jì)和實(shí)現(xiàn)。

處理器體系構(gòu)架

空間SPAKC高性能處理器是一款SPARC v8兼容的高性能SoC(圖1),它在片上包含整數(shù)處理單元、浮點(diǎn)處理單元、獨(dú)立的指令和數(shù)據(jù)Cache、硬件乘法器和除法器等,具有支持PROM、SRAM、SDRAM和I/O映射空間訪問(wèn)的外部存儲(chǔ)器控制器,并有軟件可控的省電工作模式,還有可實(shí)現(xiàn)PCI主機(jī)橋(Host bridge)和從屬橋(Guestbridge)功能的PCI控制器等,只要加上存儲(chǔ)器和與應(yīng)用相關(guān)的外圍電路,就可以構(gòu)成完整的單板計(jì)算機(jī)系統(tǒng)。

好的IDE可以提供設(shè)計(jì)、仿真、驗(yàn)證、分析、并行開(kāi)發(fā)的能力,嵌入式系統(tǒng)IDB更是整合了各方資源于一身。由于系統(tǒng)設(shè)計(jì)的各個(gè)環(huán)節(jié)彼此之間是相互聯(lián)系的,設(shè)計(jì)的好壞要在仿真和驗(yàn)證后才知道,仿真驗(yàn)證的數(shù)據(jù)又可以反過(guò)來(lái)指導(dǎo)設(shè)計(jì)、所以單純的隔離設(shè)計(jì)并不一定合理,集成環(huán)境可使設(shè)計(jì)者和驗(yàn)證者共享數(shù)據(jù),彼此之間協(xié)同工作。

總體設(shè)計(jì)

SPAKC嵌入式IDE能提供給系統(tǒng)開(kāi)發(fā)工程師一個(gè)比較完備的、易用的開(kāi)發(fā)工具(圖2),主要功能如下:應(yīng)用程序開(kāi)發(fā),包括編輯、編譯:應(yīng)用程序調(diào)試;軟件工程管理;軟件仿真環(huán)境;操作系統(tǒng)配置管理:集成環(huán)境配置管理。

集成開(kāi)發(fā)環(huán)境實(shí)現(xiàn)

作為高性能控制SPARC高性能處理器的專用集成開(kāi)發(fā)環(huán)境,設(shè)計(jì)實(shí)現(xiàn)了軟件開(kāi)發(fā)環(huán)境SPE-C(圖3),使用c語(yǔ)言作為編程語(yǔ)言,運(yùn)用SPAKC v8平臺(tái)適用的BMSPAKC編譯套件,能在本地win32的環(huán)境下運(yùn)行。它具備集成開(kāi)發(fā)環(huán)境所有必要的功能,包括集成的源代碼編輯、工程管理、編譯調(diào)試、環(huán)境設(shè)置等功能,方便用戶基于SPARC v8兼容處理器的應(yīng)用開(kāi)發(fā)和程序調(diào)試。它還具有一般開(kāi)發(fā)環(huán)境所具有的易用性和方便性。調(diào)試部分功能包括斷點(diǎn)、逐語(yǔ)句/過(guò)程運(yùn)行、查看和修改寄存器/存儲(chǔ)器/片上寄存器、指令跟蹤等,實(shí)現(xiàn)了調(diào)用棧和變量的查看等。

BMSPARC編譯器

BMSPARC是基于GNUI具鏈并進(jìn)行優(yōu)化設(shè)計(jì)的一款編譯器套件。其中編譯器是將一種語(yǔ)言編譯成為另一種語(yǔ)言的計(jì)算機(jī)程序,該程序以源語(yǔ)言編寫(xiě)的程序作為輸入,翻譯生成等價(jià)的目標(biāo)語(yǔ)言程序。編譯器可分成只依賴于源語(yǔ)言的編譯器前端和只依賴于目標(biāo)語(yǔ)言的編譯器后端兩大部分。前端主要對(duì)源代碼進(jìn)行掃描、語(yǔ)法分析和語(yǔ)義分析,生成中間代碼;而后端主要是優(yōu)化器和代碼生成器。

在進(jìn)行基于SPARC的嵌入式軟件系統(tǒng)開(kāi)發(fā)之前,要先建立交叉編譯環(huán)境。目標(biāo)機(jī)的交叉編譯環(huán)境是一個(gè)由編譯器、鏈接器和解釋器組成的綜合開(kāi)發(fā)環(huán)境,主要由binutils、gcc和glibc幾個(gè)部分組成。有時(shí)出于減小libc庫(kù)大小的考慮,也可以用別的c庫(kù)來(lái)代替glibc,例如uClibc、dietlibc和newlib。建立一個(gè)交叉編譯工具鏈?zhǔn)且粋€(gè)復(fù)雜的過(guò)程,交叉編譯器的最終成功運(yùn)行,取決于很多因素,包括:主機(jī)系統(tǒng)配置、GNU工具版本配合、參數(shù)配置、庫(kù)選擇等,一個(gè)成功的、穩(wěn)定的交叉編譯環(huán)境是需要花費(fèi)大量時(shí)間的。幸運(yùn)的是現(xiàn)在針對(duì)很多處理器都有比較成熟和穩(wěn)定的編譯配置。

BMSPARC還提供對(duì)硬件CORDIC的支持,主要通過(guò)庫(kù)函數(shù)修改的方式完成。通過(guò)使用庫(kù)替換的方法,可以簡(jiǎn)化移植過(guò)程,實(shí)現(xiàn)軟件兼容及編譯器的快速開(kāi)發(fā)和使用,并可以快速完成針對(duì)超越函數(shù)的編譯器優(yōu)化。

SPE-C與BMSPARC編譯器的集成

SPE-c中編譯系統(tǒng)的基本規(guī)則為:針對(duì)工程中的源文件及鏈接文件,包括用戶指定的庫(kù)文件,按照指定的規(guī)則,并參考用戶設(shè)置,生成一個(gè)符合要求的Makefile文件,然后用make.exe對(duì)Makefile文件進(jìn)行解釋執(zhí)行,從而生成需要的目標(biāo)文件,或完成相應(yīng)的動(dòng)作。

如果在整個(gè)過(guò)程中有錯(cuò)誤發(fā)生,則編譯/鏈接終止,IDE系統(tǒng)將套件提供的錯(cuò)誤原因反饋給用戶。

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

1)當(dāng)集成開(kāi)發(fā)環(huán)境通過(guò)界面交互得到用戶編譯某一工程或源碼文件的指令后,首先發(fā)起一個(gè)后臺(tái)線程:

2)后臺(tái)線程創(chuàng)建一個(gè)匿名管道,發(fā)起一個(gè)命令子進(jìn)程以執(zhí)行編譯整個(gè)工程或某個(gè)源碼文件的make命令,直接將該命令子進(jìn)程的標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出均重定向到由父進(jìn)程創(chuàng)建的匿名管道的“寫(xiě)”端,SPE-C的后臺(tái)線程通過(guò)該匿名管道的“讀”端得到所需要的編譯信息:

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

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

結(jié)語(yǔ)

SPE-C集成開(kāi)發(fā)環(huán)境已經(jīng)實(shí)現(xiàn)了與SPARC處理器的無(wú)縫配合工作,也已通過(guò)第三方評(píng)測(cè),可隨時(shí)提供給用戶使用:下一步要完善軟件仿真環(huán)境及對(duì)操作系統(tǒng)的支持,為用戶進(jìn)行軟件仿真和針對(duì)操作系統(tǒng)編譯開(kāi)發(fā)提供有效的支持環(huán)境。

主站蜘蛛池模板: 99热这里只有精品5| 精品视频免费在线| 97视频在线精品国自产拍| 欧美激情视频一区| 色噜噜在线观看| 亚洲国产成人精品一二区| 欧美亚洲国产日韩电影在线| 亚洲 成人国产| 国产精品网曝门免费视频| 奇米精品一区二区三区在线观看| 午夜不卡福利| 日韩天堂在线观看| 99精品免费欧美成人小视频| 亚州AV秘 一区二区三区| 久青草国产高清在线视频| 日韩毛片在线播放| 亚洲精品男人天堂| 色哟哟色院91精品网站| 在线观看免费AV网| 国产99视频精品免费观看9e| 无码国内精品人妻少妇蜜桃视频| 2021国产精品自产拍在线| 97免费在线观看视频| 在线看片免费人成视久网下载| 国产va免费精品| 欧美在线视频不卡| 在线观看免费国产| 免费不卡在线观看av| 国产丰满成熟女性性满足视频| 国产爽歪歪免费视频在线观看| 国产麻豆福利av在线播放| 久久网综合| 日韩视频福利| 久久一本精品久久久ー99| 丁香婷婷久久| 无码视频国产精品一区二区| 永久毛片在线播| 97国产精品视频自在拍| 国产精品无码影视久久久久久久| 国产精品任我爽爆在线播放6080| 天堂成人av| 欧美精品H在线播放| 国产精品爽爽va在线无码观看 | 国产剧情无码视频在线观看| 伊人久久影视| 农村乱人伦一区二区| 日韩欧美高清视频| 色婷婷亚洲综合五月| 欧美精品啪啪| 99视频在线看| 午夜国产理论| 成人年鲁鲁在线观看视频| 国产69囗曝护士吞精在线视频| 欧美区一区二区三| 一级全免费视频播放| 亚洲天堂视频网站| 国产成人综合久久| 亚洲欧洲一区二区三区| 亚洲免费福利视频| 毛片免费高清免费| 波多野结衣一区二区三区四区视频 | 韩国福利一区| 亚洲狠狠婷婷综合久久久久| 亚洲AV色香蕉一区二区| 一级毛片在线播放免费| 国产一级α片| 女人18毛片一级毛片在线| 国产欧美中文字幕| 欧美精品高清| 天天综合亚洲| 亚洲欧美日韩中文字幕一区二区三区| 欧美福利在线| 国产主播一区二区三区| 伊人久久大香线蕉综合影视| 啦啦啦网站在线观看a毛片| 日韩不卡高清视频| 午夜天堂视频| 全裸无码专区| 幺女国产一级毛片| 国产欧美日韩va另类在线播放| 爆操波多野结衣| 无码一区二区三区视频在线播放|