ARM嵌入式的方法_第1頁
ARM嵌入式的方法_第2頁
ARM嵌入式的方法_第3頁
ARM嵌入式的方法_第4頁
ARM嵌入式的方法_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

arm目錄[隱藏]ARM公司ARM的學習和開發(fā)都需要學習哪些軟件ARM公司簡介內(nèi)核種類ARM授權方魔兵傳奇里的ARM:經(jīng)濟術語ARM:ARM公司ARM的學習和開發(fā)都需要學習哪些軟件ARM公司簡介內(nèi)核種類ARM授權方魔兵傳奇里的ARM:經(jīng)濟術語ARM:arm芯片[編輯本段]ARM公司ARM(AdvancedRISCMachines)是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。技術具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。ARM將其技術授權給世界上許多著名的半導體、軟件和OEM廠商,每個廠商得到的都是一套獨一無二的ARM相關技術及服務。利用這種合伙關系,ARM很快成為許多全球性RISC標準的締造者。目前,總共有30家半導體公司與ARM簽訂了硬件技術使用許可協(xié)議,其中包括Intel、IBM、LG半導體、NEC、SONY、菲利浦和國民半導體這樣的大公司。至于軟件系統(tǒng)的合伙人,則包括微軟、升陽和MRI等一系列知名公司。ARM架構是面向低預算市場設計的第一款RISC微處理器。ARM即AdvancedRISCMachines的縮寫,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。1985年4月26日,第一個ARM原型在英國劍橋的Acorn計算機有限公司誕生,由美國加州SanJoseVLSI技術公司制造。20世紀80年代后期,ARM很快開發(fā)成Acorn的臺式機產(chǎn)品,形成英國的計算機教育基礎。1990年成立了AdvancedRISCMachinesLimited(后來簡稱為ARMLimited,ARM公司)。20世紀90年代,ARM32位嵌入式RISC(ReducedlnstructionSetComputer)處理器擴展到世界范圍,占據(jù)了低功耗、低成本和高性能的嵌入式系統(tǒng)應用領域的領先地位。ARM公司既不生產(chǎn)芯片也不銷售芯片,它只出售芯片技術授權。[編輯本段]ARM的學習和開發(fā)都需要學習哪些軟件總結起來最主要的有以下幾個吧1ADS調(diào)試用確切的說是ADS+AXD。ADS里包含AXD。原來都用SDT后來ARM公司停止對SDT支持了,改支持ADS了,還是用ADS吧。有的人的程序發(fā)布的仍然是SDT版本的,但基本都可以找到相應ADS的,新人在這里不要發(fā)蒙。ADS是編譯器,AXD是調(diào)試器。編譯成AXF以后再在ARM的RAM里調(diào)試。2FLASHPGMFLASH燒寫的軟件。AXF在RAM里調(diào)試,掉電就沒有了,方便程序修改。調(diào)試好的程序再下到FLASH里,上電直接運行。同類的軟件還有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人還問FLASH不支持BIN格式文件的問題就要看我寫的FLASHPGM使用了。3BANYANT調(diào)試代理(不知道名對不,起這么個難記的,我一般都叫它“半羊”因為知道它那幾天剛吃了烤羊)調(diào)試代理就是用它幫你使用更簡單的JTAG(便宜?。﹣韺崿F(xiàn)原本1K才賣的JTAG仿真器的大部分功能。JTAG調(diào)試原理看我另一篇筆記。簡單的就可以把他理解為你自己做的JTAG的驅(qū)動就行了。調(diào)試代理還有很多種,什么H-JTAG了、ARM7了(不知道具體叫什么,就記得可執(zhí)行文件叫ARM7.EXE)都是,BANYANT比較好。需要注意的是,每種調(diào)試代理安裝方法雖然都簡單但都不一樣,需要看說明。而且AXD調(diào)試之前都要運行。省錢了,就別怕麻煩了。4ARM-ELF-TOOLS工具鏈里面是UCLINUX開發(fā)用的工具比如ARM-ELF-GCC只類的。工具鏈就是把很多工具打包在一起發(fā)布的方便你開發(fā)的東西。具體安裝方法看我另一篇筆記。另外如果你開發(fā)LINUX就要用ARM-LINUX-TOOLS,不一樣,不通用。5U-BOOT大名鼎鼎的BOOTLOADER生成工具,同類的好象還有VIVI(名字很曖昧~~)生成的BOOTLOADER燒到FLASH里,然后就可以用BOOTLOADER下載燒寫其他了有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像電腦上的BIOS。當然UCOS的不用這個,用什么我不知道:)最新版本是1.1.4具體使用方法看我另一篇筆記吧。6UCLINUX包UCLINUX的源碼包,不用多說了吧?建議大家用現(xiàn)成的先體會一下,然后再自己編譯,裁剪。因為單獨UCLINUX的編輯技術上比較簡單,但涉及的方面還是比較廣的。7VMWARE老牌的虛擬機軟件,在一個機器上虛擬出一個機器裝LINUX(PC上用的),省得你來回開關機了。記得裝VMWARE-TOOLS,安裝方法在我另一篇筆記里。8sourceinsight代碼編輯工具linux下使用kscope[編輯本段]ARM公司簡介1991年ARM公司成立于英國劍橋,主要出售芯片設計技術的授權。目前,采用ARM技術知識產(chǎn)權(IP)核的微處理器,即我們通常所說的ARM微處理器,已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場,基于ARM技術的微處理器應用約占據(jù)了32位RISC微處理器75%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。ARM公司是專門從事基于RISC技術芯片設計開發(fā)的公司,作為知識產(chǎn)權供應商,本身不直接從事芯片生產(chǎn),靠轉讓設計許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導體生產(chǎn)商從ARM公司購買其設計的ARM微處理器核,根據(jù)各自不同的應用領域,加入適當?shù)耐鈬娐?,從而形?nbsp; IOP321  600 BogoMips @600MHzIyonix  IOP33x      IOP34x1-2核,RAID加速器32K/32KL1,512KL2,MMU    PXA210/PXA250應用處理器,七級流水線  Zaurus SL-5600  PXA255 32KB/32KB,MMU400 BogoMips @400MHzGumstix,PalmTungsten E2  PXA26x  可達400MHzPalmTungstenT3  PXA27x  800MIPS@624MHzHTC Universal, Zaurus SL-C1000,3000,3100,3200, DellAxim x30,x50,和x51系列  PXA800(E)F      Monahans  1000MIPS@1.25GHz   PXA900   Blackberry8700,BlackberryPearl(8100)  IXC1100ControlPlaneProcessor     IXP2400/IXP2800      IXP2850      IXP2325/IXP2350      IXP42x   NSLU2  IXP460/IXP465    ARM11ARMv6ARM1136J(F)-SSIMD,JazelleDBX,(VFP),八級流水線可變動,MMU??@532-665MHz(i.MX31SoC)NokiaN93,Zune,NokiaN800ARMv6T2ARM1156T2(F)-SSIMD,Thumb-2,(VFP),九級流水線可變動,MPU  ARMv6KZARM1176JZ(F)-SSIMD,JazelleDBX,(VFP)可變動,MMU+TrustZone  ARMv6KARM11MPCore1-4核對稱多處理器,SIMD,JazelleDBX,(VFP)可變動,MMU  CortexARMv7-ACortex-A8Applicationprofile,VFP,NEON,JazelleRCT,Thumb-2,13-stagepipeline可變動(L1+L2),MMU+TrustZoneupto2000(2.0DMIPS/MHz從600MHz到超過1GHz的速度)TexasInstruments OMAP3 ARMv7-RCortex-R4(F)Embeddedprofile,(FPU)可變動高速緩存,MMU可選配600DMIPSBroadcom isauser ARMv7-MCortex-M3Microcontrollerprofile無高速緩存,(MPU)120DMIPS@100MHzLuminaryMicro[3] 微控制器家族設計文件

設計文件講求精簡又快速的設計方式,整體電路化卻又不采用微碼,就像早期使用在Acorn微電腦的8位6502處理器。ARM架構包含了下述RISC特性:讀取/儲存架構不支援地址不對齊內(nèi)存存?。ˋRMv6內(nèi)核現(xiàn)已支援)正交指令集(任意存取指令可以任意的尋址方式存取數(shù)據(jù)Orthogonalinstructionset)大量的16×32-bit寄存器陣列(registerfile)固定的32bits操作碼(opcode)長度,降低編碼數(shù)量所產(chǎn)生的耗費,減輕解碼和流水線化的負擔。大多均為一個CPU周期執(zhí)行。為了補強這種簡單的設計方式,相較于同時期的處理器如Intel80286和Motorola68020,還多加了一些特殊設計:大部分指令可以條件式地執(zhí)行,降低在分支時產(chǎn)生的負重,彌補分支預測器(branchpredictor)的不足。算數(shù)指令只會在要求時更改條件編碼(conditioncode)32-bit筒型位移器(barrelshifter)可用來執(zhí)行大部分的算數(shù)指令和尋址計算而不會損失效能強大的索引尋址模式(addressingmode)精簡但快速的雙優(yōu)先級中斷子系統(tǒng),具有可切換的暫存器組有個附加在ARM設計中好玩的東西,就是使用一個4-bit 條件編碼 在每個指令前頭,表示每支指令的執(zhí)行是否為有條件式的這大大的減低了在內(nèi)存存取指令時用到的編碼位,換句話說,它避免在對小型敘述如if做分支指令。有個標準的范例引用歐幾里德的最大公因子算法:在C編程語言中,循環(huán)為:intgcd(inti,intj){while(i!=j)if(i>j)i-=j;elsej-=i;returni;}在ARM 匯編語言中,循環(huán)為:loopCMPRi,Rj;設定條件為"NE"(不等於)if(i!=j);"GT"(大於)if(i>j),;or"LT"(小於)if(i<j)SUBGTRi,Ri,Rj;若"GT"(大於),i=i-j;SUBLTRj,Rj,Ri;若"LT"(小於),j=j-i;BNEloop;若"NE"(不等於),則繼續(xù)回圈這避開了then和else子句之間的分支。另一項指令集的特色是,能將位移(shift)和回轉(rotate)等功能并成"資料處理"型的指令(算數(shù)、邏輯、和暫存器之間的搬移),因此舉例來說,一個C語言的敘述a+=(j<<2);在ARM之下,可簡化成只需一個word和一個cycle即可完成的指令ADDRa,Ra,Rj,LSL#2這結果可讓一般的ARM程式變得更加緊密,而不需經(jīng)常使用內(nèi)存存取,流水線也可以更有效地使用。即使在ARM以一般認定為慢速的速度下執(zhí)行,與更復雜的CPU設計相比它仍能執(zhí)行得不錯。ARM處理器還有一些在其他RISC的架構所不常見到的特色,例如PC-相對尋址(的確在ARM上PC為16個暫存器的其中一個)以及前遞加或后遞加的尋址模式。另外一些注意事項是ARM處理器會隨著時間,不斷地增加它的指令集。某些早期的ARM處理器(比ARM7TDMI更早),譬如可能并未具備指令可以讀取兩Bytes的數(shù)量,因此,嚴格來講,對這些處理器產(chǎn)生程式碼時,就不可能處理如C語言物件中使用"volatileshort"的資料型態(tài)。ARM7和大多數(shù)較早的設計具備三階段的流水線化(Pipeline):提取指令、解碼,并執(zhí)行。較高效能的設計,如ARM9,則有五階段的流水線化。提高效能的額外方式,包含一顆較快的加法器,和更廣的分支預測邏輯線路。這個架構使用“協(xié)處理器”提供一種非侵入式的方法來延伸指令集,可透過軟件下MCR、MRC、MRRC和MCRR等指令來對協(xié)處理器尋址。協(xié)處理器空間邏輯上通常分成16個協(xié)處理器,編號分別從0至15,而第15號協(xié)處理器(CP15)是保留用作某些常用的控制功能,像是使用高速緩存和記憶管理單元運算(若包含于處理器時)。在ARM架構的機器中,周邊裝置連接處理器的方式,通常透過將裝置的實體暫存器對應到ARM的內(nèi)存空間、協(xié)處理器空間,或是連接到另外依序接上處理器的裝置(如總線)。協(xié)處理器的存取延遲較低,所以有些周邊裝置(例如 XScale 中斷控制器)會設計成可透過不同方式存取(透過內(nèi)存和協(xié)處理器)。Thumb

較新的ARM處理器有一種16-bit指令模式,叫做Thumb,也許跟每個條件式執(zhí)行指令均耗用4位的情形有關。在Thumb模式下,較小的opcode有更少的功能性。例如,只有分支可以是條件式的,且許多opcode無法存取所有CPU的暫存器。然而,較短的opcode提供整體更佳的編碼密度(注:意指程式碼在內(nèi)存中占的空間),即使有些運算需要更多的指令。特別在內(nèi)存埠或總線寬度限制在32以下的情形時,更短的Thumbopcode能更有效地使用有限的內(nèi)存帶寬,因而提供比32位程式碼更佳的效能。典型的嵌入式硬件僅具有較小的32-bitdatapath尋址范圍以及其他更窄的16bits尋址(例如GameBoyAdvance)。在這種情形下,通??尚械姆桨甘蔷幾g成Thumb程式碼,并自行最佳化一些使用(非Thumb)32位指令集的CPU相關程式區(qū),因而能將它們置入受限的32-bit總線寬度的內(nèi)存中。首顆具備Thumb技術的處理器是ARM7TDMI。所有ARM9和后來的家族,包括 XScale 都納入了Thumb技術。Jazelle

ARM還開發(fā)出一項技術,JazelleDBX (DirectBytecodeeXecution),允許它們在某些架構的硬件上加速執(zhí)行Javabytecode,就如其他執(zhí)行模式般,當呼叫一些無法支援bytecodes的特殊軟件時,能提供某些bytecodes的加速執(zhí)行。它能在現(xiàn)存的ARM與Thumb模式之間互相執(zhí)行。首顆具備Jazelle技術的處理器是ARM926EJ-S:Jazelle以一個英文字母'J'標示于CPU名稱中。它用來讓手機制造商能夠加速執(zhí)行JavaME的游戲和應用程式,也因此促使了這項技術不斷地開發(fā)。Thumb-2

Thumb-2 技術首見于 ARM1156核心 ,并于2003年發(fā)表。Thumb-2擴充了受限的16-bitThumb指令集,以額外的32-bit指令讓指令集的使用更廣泛。因此Thumb-2的預期目標是要達到近乎Thumb的編碼密度,但能表現(xiàn)出近乎ARM指令集在32-bit內(nèi)存下的效能。Thumb-2至今也從ARM和Thumb指令集中派生出多種指令,包含位欄(bit-field)操作、分支建表(tablebranches),和條件執(zhí)行等功能。ThumbExecutionEnvironment(ThumbEE)

ThumbEE,也就是所謂的Thumb-2EE,,業(yè)界稱為JazelleRCT技術,于2005年發(fā)表,首見于 Cortex-A8 處理器。ThumbEE提供從Thumb-2而來的一些擴充性,在所處的執(zhí)行環(huán)境(ExecutionEnvironment)下,使得指令集能特別適用于執(zhí)行階段(Runtime)的編碼產(chǎn)生(例如即時編譯)。Thumb-2EE是專為一些語言如 Limbo、Java、C#、Perl 和 Python,并能讓 即時編譯器 能夠輸出更小的編譯碼卻不會影響到效能。ThumbEE所提供的新功能,包括在每次存取指令時自動檢查是否有無效指標,以及一種可以執(zhí)行陣列范圍檢查的指令,并能夠分支到分類器(handlers),其包含一小部份經(jīng)常呼叫的編碼,通常用于高階語言功能的實作,例如對一個新物件做內(nèi)存配置。進階SIMD(NEON)

進階SIMD延伸集,業(yè)界稱為NEON技術,它是一個結合64和128bit的 SIMD(SingleInstructionMultipleData單指令多重數(shù)據(jù))指令集,其針對多媒體和訊號處理程式具備標準化加速的能力。NEON可以在10MHz的CPU上執(zhí)行MP3音效解碼,且可以執(zhí)行13MHz頻率以下的 GSM AMR(AdaptiveMulti-Rate)語音編碼。NEON具有一組廣泛的指令集、各自的寄存器陣列,以及獨立執(zhí)行的硬件。NEON支援8-,16-,32-和64-bit的整數(shù)及單精度浮點數(shù)據(jù),并以SIMD 的方式運算,執(zhí)行圖形和游戲處理中關于語音/視訊的部分。SIMD在 向量超級處理機 中是個決定性的要素,它具備同時多項處理功能。在NEON技術中,SIMD最高可支援到同時16個運算。VFP

VFP 是在協(xié)同處理器針對ARM架構的衍生技術。它提供低成本的單精度和倍精度浮點運算能力,并完全相容于ANSI/IEEEStd754-1985二進制浮點算數(shù)標準。VFP提供大多數(shù)適用于浮點運算的應用,例如PDA、智慧手機、語音壓縮與解壓、3D圖像以及數(shù)位音效、打印機、機上盒,和汽車應用等。VFP架構也支援 SIMD(單指令多重數(shù)據(jù))平行化的短向量指令執(zhí)行。這在圖像和訊號處理等應用上,非常有助于降低編碼大小并增加輸出效率。在ARM-based處理器中,其他可見的浮點、或SIMD的協(xié)同處理器還包括了FPA,FPE, iwMMXt。他們提供類似VFP的功能但在opcode層面上來說并不具有相容性。安全性擴充(TrustZone)

TrustZone(TM)技術出現(xiàn)在ARMv6KZ以及較晚期的應用核心架構中。它提供了一種低成本的方案,針對系統(tǒng)單芯片(SoC)內(nèi)加入專屬的安全核心,由硬件建構的存取控制方式支援兩顆虛擬的處理器。這個方式可使得應用程式核心能夠在兩個狀態(tài)之間切換(通常改稱為領域(worlds)以避免和其他功能領域的名稱混淆),在此架構下可以避免資訊從較可信的核心領域泄漏至較不安全的領域。這種內(nèi)核領域之間的切換通常是與處理器其他功能完全無關聯(lián)性(orthogonal),因此各個領域可以各自獨立運作但卻仍能使用同一顆內(nèi)核。內(nèi)存和周邊裝置也可因此得知目前內(nèi)核運作的領域為何,并能針對這個方式來提供對裝置的機密和編碼進行存取控制。典型的TrustZone技術應用是要能在一個缺乏安全性的環(huán)境下完整地執(zhí)行操作系統(tǒng),并在可信的環(huán)境下能有更少的安全性的編碼。[編輯本段]ARM授權方ARM公司本身并不靠自有的設計來制造或出售CPU,而是將處理器架構授權給有興趣的廠家。ARM提供了多樣的授權條款,包括售價與散播性等項目。對于授權方來說,ARM提供了ARM內(nèi)核的整合硬件敘述,包含完整的軟件開發(fā)工具(編譯器、debugger、SDK),以及針對內(nèi)含ARMCPU硅芯片的銷售權。對于無晶圓廠的授權方來說,其希望能將ARM內(nèi)核整合到他們自行研發(fā)的芯片設計中,,通常就僅針對取得一份生產(chǎn)就緒的智財核心技術(IPCore)認證。對這些客戶來說,ARM會釋出所選的ARM核心的閘極電路圖,連同抽象模擬模型和測試程式,以協(xié)助設計整合和驗證。需求更多的客戶,包括整合元件制造商(IDM)和晶圓廠家,就選擇可合成的RTL(暫存器轉移層級,如 Verilog)形式來取得處理器的智財權(IP)。藉著可整合的RTL,客戶就有能力能進行架構上的最佳化與加強。這個方式能讓設計者完成額外的設計目標(如高震蕩頻率、低能量耗損、指令集延伸等)而不會受限于無法更動的電路圖。雖然ARM并不授予授權方再次出售ARM架構本身,但授權方可以任意地出售制品(如芯片元件、評估板、完整系統(tǒng)等)。商用晶圓廠是特殊例子,因為他們不僅授予能出售包含ARM內(nèi)核的硅晶成品,對其它客戶來講,他們通常也保留重制ARM內(nèi)核的權利。就像大多數(shù)IP出售方,ARM依照使用價值來決定IP的售價。在架構上而言,更低效能的ARM內(nèi)核比更高效能的內(nèi)核擁有較低的授權費。以硅芯片實作而言,一顆可整合的內(nèi)核要比一顆硬件宏(黑箱)內(nèi)核要來得貴

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論