




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、ARM設(shè)計進階長江大學(xué)計算機學(xué)院王劍.1 嵌入式開發(fā)平臺 通常嵌入式開發(fā)的平臺主要包括基于SoC 或MCU開發(fā)板,板上提供常用的外設(shè)、接口和其他功能模塊,開發(fā)者普通根據(jù)本人的運用需求選擇適宜本人板級開發(fā)平臺。在這樣的平臺上開發(fā)者可以進展硬件的擴展,操作系統(tǒng)移植和運用軟件的開發(fā)、調(diào)試及固化,并最終構(gòu)本錢人的產(chǎn)品推向市場。 .但是基于該平臺的軟件開發(fā)任務(wù)往往需求等到硬件平臺完成后才干開展,這顯然不利于縮短TTMTime to Market,同時調(diào)試的過程也是需求反復(fù)迭代和修正設(shè)計的過程,因此硬件方案的變動在所難免。.因此在系統(tǒng)方案沒有最終定型前,急于搭建硬件平臺不僅費時費力,而且也會呵斥系統(tǒng)開發(fā)本
2、錢的提高。因此在進展方案設(shè)計的時候,利用CPU或者其他外設(shè)的模型進展早期的評價是非常必要的。.1.1 ARM 的開發(fā)平臺: ARMulator仿真平臺這是一套最根底的ARM指令集仿真器,內(nèi)嵌于ADS和RVDS中,是每一位ARM開發(fā)者的很好的起點。ARMulator可以模擬執(zhí)行開發(fā)人員編寫的C或匯編程序,支持源代碼調(diào)試,協(xié)助開發(fā)者確定代碼編寫的正確性。.ARMulator仿真平臺另一方面,ARMulator還能大致統(tǒng)計出,諸如:代碼執(zhí)行周期數(shù),Cache命中率,存儲器訪問等利于我們優(yōu)化代碼的信息。但ARMulator是基于CPU的模擬,缺陷在于比較難于模擬整個芯片系統(tǒng)的行為。.RealView
3、Integrator-CP平臺 arm/products/DevTools/IntegratorFamily.htmlRealView Integrator-CP平臺RealView Integrator Compact Platform可以整合Core Module。Core Module FPGA 還整合了ARM PrimeCell 系列周邊器件和內(nèi)存控制器,包括LCD,MMC卡,音頻解碼,以及客戶本人開發(fā)AHB接口器件。 .Versatile PB/AB平臺arm/products/DevTools/VersatileFamily.htmlVersatile Platform Baseb
4、oardVersatile PB是一個可以開發(fā)軟硬件的PCB平臺,可以用LogicTile,AnalyzerTile進展擴展,用來銜接用戶開發(fā)的器件,邏輯分析儀等。而Versatile Application BaseboardVersatile AB主要區(qū)別是硬件擴展功能有限,因此主要用來進展軟件運用開發(fā)。.Emulation BaseboardEB arm/products/DevTools/EB.htmlEB平臺有一塊相對大的FPGAXilinx Virtex2 XC2V6000可以放下用戶設(shè)計的周邊器件,EB可以經(jīng)過CoreTile 和LogicTile進展擴展,運用戶做原型驗證更加方
5、便。.ESL虛擬平臺 arm/products/DevTools/RealViewCREATE_Family.htmlARM ESL虛擬平臺利用SystemC模型構(gòu)建整個SoC系統(tǒng),可以基于兩種模型構(gòu)建:時鐘準確型CA和時鐘近似型CX,CA模型提供了和實踐硬件時鐘節(jié)拍不斷的準確度,利用ESL SoC Designer工具在ESL CA模型構(gòu)建虛擬仿真平臺上,SoC硬件工程師利用ESL工具提供的強大的諸如Core運轉(zhuǎn)形狀監(jiān)視、Bus Profiling、Cache任務(wù)形狀和Memory Mapping等可視化插件對系統(tǒng)性能觀測和分析,定位系統(tǒng)性能的瓶頸,實現(xiàn)硬件的性能優(yōu)化和功能劃分。 .此外,對
6、于嵌入式軟件開發(fā)工程師而言,ESL 虛擬平臺帶來的最大益處是讓軟件開發(fā)在更早的階段開展,而不用等到在硬件平臺上進展此任務(wù)。這樣一來軟硬件開發(fā)任務(wù)可以并行提高,縮短產(chǎn)品上市時間,軟硬件的協(xié)同開發(fā)還可以盡早發(fā)現(xiàn)系統(tǒng)bug,降低開發(fā)風險和本錢。同時該虛擬平臺還提供了ARM軟件開發(fā)調(diào)試工具接口同步進展軟件調(diào)試,在ESL虛擬平臺上實現(xiàn)軟硬件的協(xié)同仿真,可以實現(xiàn)優(yōu)化軟件的目的。 .從圖1看,傳統(tǒng)流程中容易引起反復(fù)的環(huán)節(jié),而對引入ESL的開發(fā)流程,可將諸如驅(qū)動開發(fā)調(diào)試等,提早放置到虛擬開發(fā)平臺上進展,實現(xiàn)系統(tǒng)設(shè)計的優(yōu)化、縮短開發(fā)周期等。而且仿真環(huán)境所能提供的調(diào)試手段,是FPGA平臺所無法比較的。 .RTSM
7、實時系 統(tǒng)模型 arm/products/DevTools/RealTimeSystemModel1176.html對整個芯片系統(tǒng)在指令集層面上的仿真,它能提供快速、準確的指令仿真,以及與RealView Debugger 的無縫銜接。大型運用程序的開發(fā)可以運用 RTSM模擬技術(shù)來完成。 .RTSM模擬包括LCD顯示器、鍵盤和鼠標等外設(shè)的仿真。不到5s,就可以利用PC 在ARM處置器上對OS的啟動過程進展模擬,用戶可以在ARM提供的RTSM上進展快速的軟件仿真。這是OEM在開發(fā)軟件系統(tǒng)時本錢最低的方法。想象一下,芯片公司不用等到芯片消費出來,也不用把緩慢的FPGA板交給方案廠商或OEM;只需求
8、將整個芯片的模型交付,下游廠家就可以盡早盡快地將軟件方案開發(fā)終了。最終產(chǎn)品幾乎可以從芯片消費出來就預(yù)備上市。.1.2 器件選型 器件的選擇歸根結(jié)底是為嵌入式系統(tǒng)選擇適宜的處置器芯片。ARM處置器是最常見的嵌入式處置器之一,它以低功耗、低本錢和高性能而深受業(yè)界的青睞。而且ARM是目前產(chǎn)業(yè)中資源最為廣泛的嵌入式處置器,基于寬廣的ARM協(xié)作同伴方案,開發(fā)者可以在這個聯(lián)盟里尋求到各種本人意想不到的協(xié)助。 .目前在業(yè)內(nèi)廣為人知的ARM處置器主要有ARM7系列和ARM9系列,同時為了關(guān)注今后嵌入式系統(tǒng)的開展,也有必要了解一下最新的ARM11和ARM Cotex系列處置器。 .ARM7 系列ARM7TDMI
9、是ARM7系列中運用最廣泛的,它是從最早實現(xiàn)32位地址空間編程方式的ARM6內(nèi)核開展而來的,并添加了64位乘法指令,支持片上調(diào)試、16位Thumb指令集和EmbeddedICE察看點硬件。ARM7TDMI屬于ARM v4體系構(gòu)造,采用馮諾伊曼構(gòu)造,3級流水處置,平均0.9DMIPs/Mhz性能。不過ARM7TDMI沒有MMUMemory Management Unit和Cache,所以僅支持那些不需求MMU和Cahce的小型實時操作系統(tǒng),如VxWorks、uC/OS-II和uLinux等RTOS。其他的ARM7系列內(nèi)核還有ARM720T和ARM7E-S等。.ARM9 系列 ARM9TDMI相比
10、ARM7TDMI,將流水級數(shù)提高到5級從而添加了處置器的時鐘頻率,并運用指令和數(shù)據(jù)存儲器分開的哈佛構(gòu)造以改善CPI和提高處置器性能,平均可達1.1DMIPs/Mhz,但是ARM9TDMI仍屬于ARM v4T體系構(gòu)造。在ARM9TDMI根底上又有ARM920T、ARM940T和ARM922T,其中ARM940T添加了MPUMemory Protect Unit和Cache;ARM920T和ARM922T參與了MMU、Cache和ETM9方便進展CPU實時trace,從而更好的支持象Linux和WinCE這樣的多線程、多義務(wù)操作系統(tǒng)。.ARM9E 系列 ARM9E系列屬于ARM v5TE,在ARM
11、9TDMI的根底上添加了DSP擴展指令,是可綜合內(nèi)核,主要有ARM968E-S、ARM966E-S、ARM946E-S和ARM926EJ-Sv5TEJ指令體系,添加了Java指令擴展,其中ARM926EJ-S是最具代表性的。經(jīng)過DSP和Java的指令擴展,可獲得70的DSP處置才干和8x的Java處置性能提升。另外分開的指令和數(shù)據(jù)Cache構(gòu)造進一步提升了軟件性能;指令和數(shù)據(jù)TCMTightly Couple Memory:緊耦合存儲器接口支持零等待訪問存儲器;雙AMBA AHB總線接口等。ARM926EJ-S可達250Mhz以上的處置速度,很好地支持Symbian OS、Linux、Wind
12、ows CE和Palm OS等主流操作系統(tǒng)。.ARM11 系列 ARM11系列主要有ARM1、ARM1156、ARM1176和ARM11 MP-Core等,它們都是v6體系構(gòu)造,相比v5系列添加了SIMD多媒體指令,獲得1.75x多媒體處置才干的提升。另外,除了ARM1外,其他的處置器都支持AMBA3.0-AXI總線。ARM11系列內(nèi)核最高的處置速度可達500Mhz以上其中90nm工藝下,ARM1176可到達750Mhz以及600DMIPS的性能 .基于ARMv6架構(gòu)的ARM11系列處置器是根據(jù)下一代的消費類電子、無線設(shè)備、網(wǎng)絡(luò)運用和汽車電子產(chǎn)品等需求而制定的。其的媒體處置才干和低功耗特點使它
13、特別適宜于無線和消費類電子產(chǎn)品;其高數(shù)據(jù)吞吐量和高性能的結(jié)合非常適宜網(wǎng)絡(luò)處置運用;另外,在實時性能和浮點處置等方面ARM11可以滿足汽車電子運用的需求。.ARM Cotex 系列 Cortex系列是ARM公司目前最新內(nèi)核系列,屬于v7架構(gòu),主要有Cortex-A8、Cortex-R4、Cortex-M3和 Cortex-M1等處置器,其中A8是面向高性能的運用途置器,最高可達1Ghz的處置速度,更好的支持多媒體及其他高性能要求,最高可達2000DMIPS;R4主要面向嵌入式實時運用領(lǐng)域Real-Time,7級流水構(gòu)造,相對于上代ARM1156內(nèi)核,R4在性能、功耗和面積PPA:Performa
14、nce,Power and Area獲得更好的平衡,1.5DMIPS/Mhz和高于400Mhz的處置速度。 .而M3主要是面向低本錢和高性能的MCU運用領(lǐng)域,相比ARM7TDMI,M3面積更小,功耗更低,性能更高。Cortex-M3處置器的中心是基于哈佛架構(gòu)的3級流水線內(nèi)核,該內(nèi)核集成了分支預(yù)測,單周期乘法,硬件除法等眾多功能強大的特性,使其在Dhrystone benchmark上具有出色的表現(xiàn)1.25 DMIPS/MHz。根據(jù)Dhrystone benchmark的測評結(jié)果,采用新的Thumb.-2指令集架構(gòu)的Cortex-M3處置器,與執(zhí)行Thumb指令的ARM7TDMI-S.處置器相比
15、,每兆赫的效率提高了70%,與執(zhí)行ARM指令的ARM7TDMI-S處置器相比,效率提高了35%。 .目前曾經(jīng)有Cortex系列內(nèi)嵌的產(chǎn)品問世,如TI公司推出的基于Cortex-A8內(nèi)核的OMAP3430,TI、ST和Luminary也推出了基于Cortex-M3內(nèi)核的低本錢高性能32位MCU,更多概略請登陸這些公司的主頁查詢。.2 工具選擇 根據(jù)開發(fā)目的平臺的不同,ARM提供不同的工具處理方案。 .MDK-ARMRealView Microcontroller Development Kit(MDK) 支持基于ARM7,ARM9,Cortex-M3微控制處置器,例如Atmel,F(xiàn)reescal
16、e,Luminary,NXP,OKI,Samsung,Sharp,ST,TI等廠家的產(chǎn)品。MDK提供工業(yè)規(guī)范的編譯工具和強大的調(diào)試支持。MDK是專為MCU的用戶開發(fā)嵌入式軟件而設(shè)計的一套開發(fā)工具。包括根據(jù)器件定制的調(diào)試仿真支持,豐富的工程模版,固件例如以及為內(nèi)存優(yōu)化的RTOS庫。MDK上手容易,功能強大,適宜微控制器運用程序開發(fā)。.RVDS 正如前面所引見RVDS是專為SOC,F(xiàn)PGA 以及ASIC用戶開發(fā)復(fù)雜嵌入式運用程序或者和操作系統(tǒng)平臺組件接口而設(shè)計的開發(fā)工具。RVDS支持器件設(shè)計,支持多核調(diào)試,支持基于一切ARM 和Cortex系列CPU的程序開發(fā)。RVDS還可以和第三方軟件進展很好的
17、銜接。.MDK主要是為終端客戶提供價錢低廉,功能強大的開發(fā)工具。集成了RealView編譯工具,Keil uVision開發(fā)環(huán)境,支持基于ARM7,ARM9,Cortex-M1,Cortex-M3產(chǎn)品的仿真,提供非常高效的RTOSKernel,除此,提供的Real-Time庫還有TCP/IP網(wǎng)絡(luò)套件,F(xiàn)lash文件系統(tǒng),USB器件接口,CAN總線接口等,方便終端用戶進展運用開發(fā)。因此對于MDK用戶來說,他們得到的就是可以對MCU進展仿真和調(diào)試,容易運用又沒有冗余的功能,關(guān)鍵是價錢實惠,而且用戶可以先試用再購買。.對于芯片設(shè)計公司以及相關(guān)處理方案提供商來說,需求的是更加強大的工具,可以進展多核調(diào)
18、試,需求更加先進的調(diào)試和分析功能,可以支持多種操作系統(tǒng),可以進展IP整合開發(fā),可以結(jié)合ESL工具進展架構(gòu)評價,系統(tǒng)軟硬件劃分等,那么選擇RVDS可以提供完益處理方案。.3 編譯和銜接 ARM RealView 編譯工具曾經(jīng)開展了16年,不斷努力于為客戶提供最好的編譯器。RVDS 是ARM公司繼SDT 與ADS1.2之后主推的新一代開發(fā)工具,目前最高版本是3.1。它由RealView編譯器RVCT、RealView匯編器armasm、RealView銜接器armlinker,以及RealView調(diào)試器RVDebugger三部分組成。.RVDS對代碼密度的提升、代碼執(zhí)行速度的提高,都可以由ARM開
19、發(fā)工具自動實現(xiàn),而不需求軟件開發(fā)人員破費過多的時間手動優(yōu)化高級言語代碼。這是RVDS的優(yōu)勢所在。 .先前版本中的編譯器armcc,tcc,armcpp,tcpp 曾經(jīng)整合成一個編譯器armcc,可以將規(guī)范的C或C+言語源程序編譯成32位ARM指令代碼或者16位Thumb指令代碼或者Thumb-2指令代碼。編譯器輸出的ELF格式的目的文件,包含調(diào)試信息。除此之外,編譯器可以輸出所生成的匯編言語列表文件。.RVDS的編譯器根據(jù)最新的ARM架構(gòu)進展特別的優(yōu)化,針對每個ARM架構(gòu)都提供最好的代碼執(zhí)行性能,最優(yōu)的代碼密度??梢愿鶕?jù)需求選擇調(diào)試信息級別,以及不同的代碼優(yōu)化方向和優(yōu)化級別。.RVCT中C 和
20、RogueWaveC+庫包括完好ISO規(guī)范C言語庫規(guī)范C言語函數(shù)集,C言語庫需求的支持函數(shù)以及在Semihosted執(zhí)行環(huán)境中需求的目的相關(guān)的函數(shù)。ARM C言語庫構(gòu)造運用戶很容易定義目的相關(guān)函數(shù),以順應(yīng)特定的目的環(huán)境。.浮點函數(shù)庫運用ARM 在IEEE754規(guī)范二進制浮點算法上實現(xiàn)的浮點環(huán)境。RogueWaveC+庫RogueWaveC+庫包含規(guī)范C+函數(shù),編譯器需求的支持函數(shù)。各種源文件經(jīng)過ARM編譯器編譯后生成ELF 格式的目的文件。這些目的文件和相應(yīng)的C/C+運轉(zhuǎn)時庫經(jīng)過ARM銜接器處置后,生成ELF格式映像文件。 .ARM銜接器可以去除運用不到的代碼段和函數(shù),這樣可以減少內(nèi)存的運用。
21、ARM銜接器可以將不同的指令代碼和數(shù)據(jù)代碼放置到不同的內(nèi)存地址范圍。arm/support/faqdev/1245.html.通常在嵌入式系統(tǒng)中,指令和數(shù)據(jù)代碼會固化在非易失性存儲器中ROM或Flash,可以從這些地方上電啟動。從運轉(zhuǎn)速度方面思索,部分指令和數(shù)據(jù)代碼會在啟動后搬運到易失性存儲器(RAM)中,因此銜接器可以運用一些方法機制來配置調(diào)度。.這種分散裝載scatterloading的機制可以讓把不同的指令和數(shù)據(jù)分散的放到不同的地址,而且這些地址在系統(tǒng)啟動和系統(tǒng)運轉(zhuǎn)可以是不同的映射。詳細的地址分配可以是用參數(shù)來指定,或者用一個描畫文件來作為銜接器的參數(shù)。運用描畫文件會使維護起來非常簡單,
22、而且假設(shè)要改動地址分配,不需求把整個工程完全重新來做,只需把工程中需求的目的重新銜接即可。 .一個scatterloading文件的例如: LOAD_FLASH 0 x04000000 0 x80000 ; 啟動地址和長度EXE_FLASH 0 x04000000 0 x80000init.o (Init, +First) ;* (+RO) ;32bitRAM 0 x0000 0 x2000vectors.o (Vect, +First) ;int_handler.o (+RO)16bitRAM 0 x2000 0 x80000* (+RW,+ZI) ;.本文件定義了啟動區(qū)域和三個執(zhí)行區(qū)域。在
23、大括號外面定義了啟動區(qū)域LOAD_FLASH,里面三個定義了執(zhí)行區(qū)域(EXEC_FLASH,32bitRAM,16bitRAM)。為了提高運轉(zhuǎn)速度,異常向量在vectors.s和異常句柄在int_handler.c被重新放置到32bitRAM的零地址開場的地方。可以讀寫的變量被復(fù)制到16bitRAM的0 x2000地址開場的地方。零初始化的數(shù)據(jù)和可讀寫數(shù)據(jù)放在16bitRAM內(nèi)。其他不需求搬運的代碼只需求還放在Flash里就好。.3.1 RVCT 的優(yōu)化級別與優(yōu)化方向提到RVCT就不能不提ARMcc的四個優(yōu)化級別和兩個編譯選項,-O1、-O2、-O3、-O4,以及-Otime、-Ospace。
24、-Ospace與-Otime擔任給編譯器提供代碼優(yōu)化的大方向,告知編譯器編譯義務(wù)的主要目的是代碼密度-Ospace還是代碼性能-Oti me。而-O1、-O2、-O3、-O4那么分別代表4種逐次遞進的不同優(yōu)化級別。 .OSpace 還是OTime? 顯然代碼密度與代碼執(zhí)行速度在很多情況下是一對矛盾。以下面的代碼為例。例1中左右兩段代碼可以完成一樣的義務(wù),但是左邊的有較高的代碼密度,右邊的那么有較高的執(zhí)行速度。由于當expr = 0時,標志循環(huán)終了時,右邊的代碼可以順序執(zhí)行下去;而左邊代碼必需先跳轉(zhuǎn)至循環(huán)體首部判別expr的值,隨后再跳轉(zhuǎn)道循環(huán)體尾,繼續(xù)執(zhí)行下一條指令。.例1 代碼速度與尺寸的對
25、比while (expr) if (expr) do dobody; body; while (expr); .那么我們什么時候運用Otime 什么時候運用Ospace呢?Otime與Ospace需求開發(fā)人員根據(jù)系統(tǒng)實踐需求來決議,最好的情況是在兩者之間找到一個適宜的平衡點,而不是單純的追求速度或者代碼尺寸的減少。即,將不同的代碼模塊根據(jù)其特性分別運用不同的編譯選項。.此外,RVCT編譯器支持很多非常有用的編譯選項,如-no_inline取消一切代碼的內(nèi)聯(lián)函數(shù)、-split_ldm限制LDM/STM指令的最大操作存放器數(shù)目、-split_sections將每個函數(shù),而不是源文件,作為一個編譯單
26、元進展操作等等。.O3 還是O2? 老的開發(fā)工具,如ADS1.2中,只需3種遞進的代碼優(yōu)化級別,對應(yīng)3種編譯選項,即-O0Minimum optimization、-O1Restricted optimization、-O2High optimization 。運用-O0編譯選項時,RVCT編譯器只對代碼作最根本的優(yōu)化操作,編譯終了后用戶得到的代碼與用戶手寫源代碼之間的差距很小,這種特性的主要作用是為了方便用戶在程序開發(fā)階段的調(diào)試任務(wù),防止由于優(yōu)化而產(chǎn)生的調(diào)試屏障。此外,很多資深軟件工程師偏向于手寫優(yōu)化代碼,在這種情況下,由于代碼曾經(jīng)被優(yōu)化過,可以運用-O0編譯選項減少RVCT的任務(wù)量,節(jié)省編
27、譯鏈接的時間。.-O1與-O2那么分別是相對于-O0更加高級別的編譯優(yōu)化選項,前者提供有限的優(yōu)化;后者那么會對代碼進展較大程度的優(yōu)化改良操作。RVDS中新添加了-O3Maximum optimization編譯選項,它可以最大程度的發(fā)揚RVCT編譯器的優(yōu)勢,將代碼編譯成最優(yōu)。O3與O2都是較高級別的編譯優(yōu)化選項,但-O3相比較于-O2,主要優(yōu)勢有以下幾點。 .當用戶運用-O3選項時:編譯器會自動對代碼進展高階標量優(yōu)化。所謂的高階標量優(yōu)化就是編譯器對根據(jù)代碼特點,針對循環(huán)、指針等進展高階優(yōu)化。編譯器會把盡能夠多函數(shù)的編譯為內(nèi)聯(lián)inline函數(shù);Multifile compilation功能被自動
28、使能。.對于循環(huán)與指針的高階優(yōu)化High-level scalar optimizations 當編譯選項為-O3 Otime時,RVCT會根據(jù)代碼的詳細情況,針對循環(huán)、指針等部分作高階優(yōu)化任務(wù):循環(huán)解開Loop unrolling、交融fusion、位置調(diào)整interchange、指針優(yōu)化等等。以例2的函數(shù)為例。例2是一段簡單的C循環(huán)函數(shù),在循環(huán)中含有數(shù)組指針調(diào)用。.例2CodeAvoid increment(int *restrict b, int *restrict c) int i;for (i = 0; i 100; i+)ci = bi + 1;CodeBvoid incremen
29、t(int *b, int *c)int i;int *pb, *pc;int b3, b4;pb = b - 1;pc = c - 1;b3 = pb1;for (i = (100 / 2); i != 0; i-)b4 = *(pb += 2);pc1 = b3 + 1;b3 = pb1;*(pc += 2) = b4 + 1; .仔細察看可以發(fā)現(xiàn),CodeA與CodeB可以完成同樣的功能,即將數(shù)組b的每個成員加1賦值給數(shù)組c對應(yīng)成員。但是CodeB與CodeA相比,有較高的執(zhí)行速度。主要表達在以下幾點:.循環(huán)100次變成了循環(huán)50次loop unrolling,減少了跳轉(zhuǎn)次數(shù);數(shù)組變成了
30、指針,減少每次計算數(shù)組偏移量的指令;微調(diào)了不同代碼操作的執(zhí)行順序,減少了流水線stall的情況;循環(huán)從循環(huán)變成了循環(huán)。這樣可以運用ARM指令的條件位,為每次循環(huán)減少了一條判別指令。.很多程序員就是這樣,經(jīng)過這種手寫不同的C 代碼,再實現(xiàn)一樣義務(wù)的情況下,提高了代碼執(zhí)行效率。在RVDS中,運用-O3 Otime編譯選項,RVCT會自動協(xié)助程序員進展這些高階標量優(yōu)化,即,RVCT會直接將CodeA 優(yōu)化成以前由CodeB才干得到的匯編代碼。雖然優(yōu)化之后函數(shù)的代碼尺寸大于原先的函數(shù),但是執(zhí)行速度卻有大大的提高,經(jīng)過統(tǒng)計,運用EEMBC benchmarking, -O3編譯選項編譯得到的最終代碼平均
31、性能相對于-O1可以有10的提升,而總體代碼尺寸只添加了1。.3.2 Multifile compilation按照傳統(tǒng)的編譯方式,我們先把各個C或C+文件單獨編譯成.obj文件,再將這些目的文件鏈接在一同。思索到雖然在編譯單獨的C 或C+文件時,編譯器會充分發(fā)揚它的優(yōu)化特性;但此時,編譯器無法關(guān)注到大量的C 或C+文件接口之間可以優(yōu)化的部分。所以在傳統(tǒng)的編譯結(jié)果里,還有許多優(yōu)化的余地。如何才干讓編譯器同時關(guān)注和編譯一切的源代碼呢?.Multifile compilation是RVDS一個較新的特性,它可以協(xié)助開發(fā)人員將一切的源文件作為一個compilation unit進展編譯,并最終生成一
32、個大的目的文件如圖3中的file1.o。Mutifile compilation給軟件開發(fā)人員帶來的直接優(yōu)勢有以下幾點:.添加inline的能夠性。由于inline只能發(fā)生在一個compilation unit中,所以在沒有運用mutifile compilation時,inline只能發(fā)生在一個源文件范圍內(nèi)。Multifile Compilation將一個compilation unit擴展到了一切源文件的范圍上,所以直接添加了inline發(fā)生的幾率。添加了基地址與函數(shù)間優(yōu)化的能夠性。同inline一樣,一切的基地址與函數(shù)間的優(yōu)化也必需在一個compilation unit中,隨著conpi
33、lation unit的擴展這種優(yōu)化的能夠性也添加了。減少了scatter file的復(fù)雜性。.3.3 調(diào)試由前面的引見曾經(jīng)知道RealView DebuggerRVD 是RVDS的重要組件之一。RealView Debugger 可以更好的協(xié)助客戶在復(fù)雜SoC設(shè)計中方便直觀的調(diào)試軟硬件。.! 方便協(xié)調(diào)的開發(fā)軟硬件RVD運用同步機制進展多核調(diào)試,運用RVD 在一個處置器上設(shè)置的斷點,可以停頓整個系統(tǒng),這樣可以觀測復(fù)雜的多核系統(tǒng)的各種關(guān)鍵形狀信息。file1.c file2.c file3.ccompilfile1.o file2 o file3 oDummy object filesfile1
34、.c file2.c file3.ccompilfile1.o file2.o file3.ocompil compil.! 調(diào)試操作系統(tǒng)和中間件 RVD支持調(diào)試業(yè)內(nèi)各種流行的操作系統(tǒng),正如操作系一致章所述,RVD可以直觀的觀測操作系統(tǒng)的執(zhí)行文本和各種資源。.! 調(diào)試 跟蹤,性能評價RVD可以對基于ARM處置器的設(shè)計進展非插入式的實時地捕捉數(shù)據(jù)/指令和顯示,從而實現(xiàn)調(diào)試,跟蹤以及性能評價。目前業(yè)內(nèi)其他的調(diào)試工具還不能到達有如RVD這樣出色的性能。RVD可以對RealView ESL對系統(tǒng)模型進展調(diào)試,也可以運用RealView ICE以及RealView Trace對真實的硬件系統(tǒng)進展調(diào)試跟蹤
35、和性能評價。.! 調(diào)試目的設(shè)備 無論是開發(fā)一個新的軟硬件架構(gòu),一個操作系統(tǒng)還是一個運用程序,RVD可以銜接到SoC模型,指令集仿真模型,實時系統(tǒng)模型或者真實的硬件處置器來協(xié)助完成開發(fā)。如此廣泛的支持,使得RVD在整個開發(fā)周期中成為一個不可或缺的得力的開發(fā)工具。.4 操作系統(tǒng) 隨著高端電子消費類產(chǎn)品的廣泛普及,實時嵌入式操作系統(tǒng)運用越來越廣泛。而基于ARM的嵌入式操作系統(tǒng)在各個領(lǐng)域都得到了廣泛的運用,利用ARM系列產(chǎn)品的強大功能可以完成各種運用程序的開發(fā)。ARM對操作系統(tǒng)以及系統(tǒng)開發(fā)執(zhí)行環(huán)境提供最廣泛的選擇,客戶可以根據(jù)需求來選擇最順應(yīng)市場要求的基于ARM的嵌入式操作系統(tǒng)??晒┻x擇的嵌入式操作系
36、統(tǒng)有幾十種,運用較多的有Linux,WinCE,Palm,Symbian等等。 .采用WinCE更多的是OEM,以及按需進展特定的嵌入式器件開發(fā)的,例如GPS導(dǎo)航設(shè)備。采用Palm操作系統(tǒng)的廠家有聯(lián)想 三星 索尼,他們的出貨量都非常宏大。Symbian操作系統(tǒng)是先進的全球公開工業(yè)規(guī)范操作系統(tǒng),基于Symbian操作系統(tǒng)的手機有:BenQ,DoCoMo,Motorola,Nokia,Panasonic,三星,索尼愛立信等。Linux是源代碼開放的操作系統(tǒng),可以運轉(zhuǎn)在包括ARM等多種主流處置器架構(gòu)上。由于有一大批的工程師在開發(fā)開放源代碼以及相關(guān)開發(fā)工具,Linux可以更方便快捷的進展移植。.以Linux為例,選擇基于ARM 的Linux,可以得到更多的開發(fā)源代碼的運用,可以利用ARM處置器的高性能開發(fā)出更寬廣的網(wǎng)絡(luò)和無線運用,ARM的Jazelle技術(shù)帶來Linux平臺下Java程序更好的性能表現(xiàn)。ARM公司的系列開發(fā)工具和開發(fā)板,以及各種開發(fā)論壇的可利用信息帶來更快的產(chǎn)品上市時間。.4.1 哪里可以得到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CSBME 056.2-2022血液透析器用中空纖維原料第2部分:聚醚砜
- T/CMES 00005-2023流動科技館展覽教育服務(wù)規(guī)范
- T/CMA-RQ 002-2018膜式燃氣表閥蓋與閥座
- T/CIIA 026-2022農(nóng)業(yè)科學(xué)數(shù)據(jù)安全分級指南
- T/CIE 055-2018X射線脈沖星導(dǎo)航探測器試驗安裝技術(shù)要求
- T/CHTS 20030-2023公路鋅鋁復(fù)合涂層鋼護欄
- T/CHTS 10074-2022智慧高速公路路側(cè)邊緣計算框架及要求
- T/CEMIA 023-2021半導(dǎo)體單晶硅生長用石英坩堝
- T/CECS 10206-2022混凝土中氯離子和硫酸根離子的測定離子色譜法
- T/CCOA 45-2023氣膜鋼筋混凝土球形倉儲糧技術(shù)規(guī)程
- 2025年中國冷庫用叉車數(shù)據(jù)監(jiān)測研究報告
- 2025年高考第二次模擬考試物理(浙江卷)(參考答案)-20250416-113627
- 2025年化妝師職業(yè)技能考試試題及答案
- GA 1812.1-2024銀行系統(tǒng)反恐怖防范要求第1部分:人民幣發(fā)行庫
- 2025中信建投證券股份限公司校園招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年山東省泰安市新泰市中考二?;瘜W(xué)試題(原卷版+解析版)
- 2025年雞蛋市場調(diào)查報告
- 2025年職業(yè)技能競賽(計算機程序員賽項)參考試題(附答案)
- 合伙人商業(yè)保密協(xié)議書9篇
- 湖北省武漢市2025屆高中畢業(yè)生四月調(diào)研考試語文試卷及答案(武漢四調(diào))
- 2025年全國中小學(xué)生百科知識競賽題庫及答案(480題)
評論
0/150
提交評論