ARM入門基礎._第1頁
ARM入門基礎._第2頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、獻給ARM初學者ARM簡介與編程1.ARM簡介(摘錄)ARM(AdvancedRISCMachines)是微處理器行業的一家知名企業,設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。技術具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。ARM將其技術授權給世界上許多著名的半導體、軟件和OEM廠商,每個廠商得到的都是一套獨一無二的ARM相關技術及服務。利用這種合伙關系,ARM很快成為許多全球性RISC標準的締造者。目前,總共有30家半導體公司與ARM簽訂了硬件技術使用許可協議,其中包括Intel、IBM、LG半導體、NEC、

2、SONY、菲利浦和國民半導體這樣的大公司。至于軟件系統的合伙人,則包括微軟、升陽和MRI等一系列知名公司。ARM架構是面向低預算市場設計的第一款RISC微處理器2. 產品介紹ARM提供一系列內核、體系擴展、微處理器和系統芯片方案。由于所有產品均采用一個通用的軟件體系,所以相同的軟件可在所有產品中運行(理論上如此)。典型的產品如下。 CPU內核-ARM7:小型、快速、低能耗、集成式RISC內核,用于移動通信。ARM7TDMI(Thumb):這是公司授權用戶最多的一項產品,將ARM7指令集同Thumb擴展組合在一起,以減少內存容量和系統成本。同時,它還利用嵌入式ICE調試技術來簡化系統設計,并用一

3、個DSP增強擴展來改進性能。該產品的典型用途是數字蜂窩電話和硬盤驅動器。-ARM9TDMI:采用5階段管道化ARM9內核,同時配備Thumb擴展、調試和Harvard總線。在生產工藝相同的情況下,性能可達ARM7TDMI的兩倍之多。常用于連網和頂置盒。 體系擴展Thumb:以16位系統的成本,提供32位RISC性能,特別注意的是它所需的內存容量非常小 嵌入式ICE調試由于集成了類似于ICE的CPU內核調試技術,所以原型設計和系統芯片的調試得到了極大的簡化。 微處理器-ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低價、低能耗、封裝式常規系統微型處理器,配有

4、高速緩存(Cache)、內存管理、寫緩沖和JTAG。廣泛應用于手持式計算、數據通信和消費類多媒體。ARM940T、920T系列:低價、低能耗、高性能系統微處理器,配有Cache、內存管理和寫緩沖。應用于高級引擎管理、保安系統、頂置盒、便攜計算機和高檔打印機。StrongARM:性能很高、同時滿足常規應用需要的一種微處理器技術,與DEC聯合研制,后來授權給InteloSA110處理器、SA1100PDA系統芯片和SA1500多媒體處理器芯片均采用了這一技術。-ARM7500和ARM7500FE:高度集成的單芯片RISC計算機,基于一個緩存式ARM732位內核,擁有內存和I/O控制器、3個DMA通

5、道、片上視頻控制器和調色板以及立體聲端口;ARM7500FE則增加了一個浮點運算單元以及對EDODRAM的支持。特別適合電視頂置盒和網絡計算機(NC)。WindowsCE的PocketPC只支持ARMWindowsCE可支持多種嵌入式處理器,但基于WindowsCE的PocketPC則只支持ARM一種。微軟在對SH3、MIPS、ARM等嵌入式處理器做了評估后認為,ARM是一種性價比較好的選擇。由于目前ARM在手持設備市場占有90%以上的份額,只支持ARM,可以有效地縮短應用程序開發與測試的時間,也降低了研發費用。由于ARM開放其處理器授權,因此,用戶在市場上可以在多家整機廠商中進行選擇,從而保

6、證了這一市場的競爭性。2.ARM芯片CL-PS7111主要特點電平2.7v/3.3v.相對應CPU工作頻率13MHz/18MHz.13MHz位節電模式,性能相當于33MHzInter486PCARM710A內核ARM7CPU8K4向緩存(cache)MMU帶有64入口TLB(TransitionLook-asideBuffer)DRAM控制器支持16位和32位DRAMROM/SRAM/FlashMemory控制可譯碼4,5或6個獨立的256M存儲空間段每個存儲段支持8位,16位和32位操作,并支持分頁模式可編程ROM/SRAM/FlashMemory支持兩個低功耗CL-PS6700PC卡(PC

7、MCIA)控制器2K片內SRAM用于程序快速執行片內BootROM(128Byte)兩個同步串行接口支持SPI,或Microwire2兼容音頻解碼器(AudioCodec)27位通用接口GPIO(general-purposeI/Oport)3個8位和1個3位GPIOport支持鍵盤陣列掃描(Scanningkeyboardmatrix)兩個異步串口UARTs支持高達115.2K波特率內有兩個接收發送(TX,RX)16BytesFIFOs緩沖支持MODEM控制信號DC-to-DC轉換器接口提供兩個96KHz時鐘輸出,通過編程dutyratio(l/16-15/16)操作LCD控制器直接信號掃描

8、板接口,單色LCD面板的大小可編程從16到1024個像素,16個像素為一個單位視頻幀大小可編程到128Kbyte每個像素點的位數可編程1,2,4位計時器和實時時鐘兩個16位計時器(Timercounter)和一個32位實時時鐘(RTC)3. 調試工具及調試方法ARMProjectManager(APM)includeARMDebugger:這個工具由ARM提供主要是開發程序,編程調試ARM芯片,有相當不錯的開發環境和遠端調試功能,支持匯編和C.它帶有一個ARM自己的嵌入式操作系統ARMAngel,用戶可以在它的上面開發自己的嵌入式軟件,不過這個操作系統不是實時多任務的.通過計算機串口與處理器U

9、ART相連,設置計算機的超級終端(HyperTerminal),通過超級終端察看硬件情況(寄存器設置,數據等)和程序運行情況,當然程序重要加入向UART送出數據的指令,用Beep報警也是經常用的.這種調試方法是用于底層調試硬件,找出硬件存在的問題.VxWorks在Shell不能正常運行前,也是采取這種方法來調試程序,不過一般不是硬件問題,而是BSP中存在的問題,需要根據硬件,修改BSP.需要說明的是:上述方法是在沒有硬件仿真器的情況下采用的,仿真器是底層調試硬件程序最好,最簡便直觀的辦法。4. ARM7編程要點及示例ARM編程可參考程序示例ARM_BootFlashROM驅動VxWorksim

10、age裝入ARM的過程:ARM7有兩種運行模式,Boot模式和Normal模式,Boot模式主要是把程序裝入(download或load)FlashROM中用的,Normal模式是一般運行程序用的.ARM7Boot模式時,Flash的地址是0x70000000片選型號是CS0(Normal模式下,Flash地址為0x00000000)ARM7內部有128byte的BootROM和2K的SRAM,當需要DownloadVxWorksimage時,ARM啟動采用Boot方式啟動運行存在128byteBootROM中的程序初始化ARM內部的COM口,從COM口接受數據到2K的SRAM,這2K程序是用

11、來真正LoadVxWorks的,2K程序Load完畢后系統自動跳轉到這2K程序執行,它的作用是再次初始化內部的COM口,通過COM口接受VxWorks到DRAM,然后由DRAM寫入FLASH。在主板2KSRAM運行的BootLoad程序執行過程,可參看程序示例中ARMBootLoad程序寫入完畢后,切換到Normal模式重新啟動系統,系統自動跳到FLASH0X00000000開始運行VXWORKS。用PC機上的COM1與ARM內部的UART1(COM)通信來DownloadVxWorks。主要管腳定義32條數據線:D0D3128條地址線:A0A27littleendian定義,相對應數據排列0

12、123456276條片選信號腳:CS0CS5,其實作用相當于地址線A28A314個8位的PORT口:PORTA,PORTB,PORTD主要用于外圍芯片信號的控制.PORTE有雙作用.例如PORTA控制鍵盤的行信號,PORTB用于RS232,PORTD用于控制MODEM,FPGA.外部中斷信號EINT,EXTFIQ.編程時要根據主板原理圖和硬件手冊進行.看硬件圖紙,該芯片和CPU的那些管腳連結.特別是PORT口和片選線.查CPU手冊,得到PORT口和該片選的硬件地址.編程:用PORT口直接對芯片操作,如開,關,RESET等,用片選地址和芯片內地址結合對該外圍芯片操作.Exceptionvecto

13、rs,中斷向量表及中斷分配Vector地址ExceptionExceptionModePriority(1=High)0x0ResetSvc10x4UndefinedInstructionUndef60x8SoftwareInterruptSvc60xCPrefetchAbortAbort50x10DataAbortAbort20x14ReservedNotapplicableNotapplicable0x18Interrupt(IRQ)irq40x1CFastInterrupt(FIQ)Fiq3這個向量表必須要放置在系統地址0x00000000(般是邏輯地址,即經過MMU映射后的地址)處.一

14、般是在這些地址上放跳轉指令BL,跳到相應的地址空間執行相應的程序.如系統執行從0x00000000Reset開始,Reset跳轉到某一地址開始運行操作系統.程序示例,中斷向量表(ARMasm):_VectorStart;StartofARMprocessorvectorsLDRpc,ResetV;00-ResetLDRpc,UndefV;04-UndefinedinstructionsLDRpc,SWIV;08-SWIinstructionsLDRpc,PAbortV;0C-InstructionfetchabortsLDRpc,DAbortV;10-DataaccessabortsLDRpc

15、,UnusedV;14-Reserved(wasaddressexception)LDRpc,IRQV;18-IRQinterruptsLDRpc,FIQV;1C-FIQinterrupts中斷號分配(FIQ,IRQ)中斷類型中斷號Name說明FIQ0外部中斷EXTFIQ管腳NEXTFIQIRQ5外部中斷EINT1管腳NEINT1IRQ6外部中斷EINT2管腳NEINT2IRQ7外部中斷EINT3管腳NEINT3IRQ12內部中斷UTXINT1UART1TXFIFO為空中斷號也是寄存器INTMR和INTSR的位,所以在ARM中中斷的編程要點是看硬件圖紙,該外設和CPU的那一個管腳連結.查CPU

16、手冊,得到中斷號及INTMR,INTSR的地址.編程注:如果不是寫底層driver,只是在系統上層編程(如VxWorks,Linux)知道中斷號即可.程序示例(VxWorks):/登記中斷號5,和相應的中斷例程ComISR.intConnect(VOIDFUNCPTR*)5,ComISR,0);/使能這中斷intEnable(VOIDFUNCPTR*)5);ARMInterrupts:ARMprocessorsimplementfastandnormallevelofinterrupt,signalledexternally,synchroniseinterruptsbeforeanexcep

17、tionisraised.Afastinterruptrequst(FIQ)willdesablesubsequentnormalandfastinterruptbysettingtheIandFbitinCPSR,andanormalinterruprequest(IRQ)willdisablesubsequentnormalinterruptbysettingIbitinCPSR.計時器中斷編程過程ARM7一般內部有兩個16位計時器(Timercounter)和一個32位實時時鐘(RTC),計時器中斷屬于IRQ中斷,這里以計時器1為例敘述一下中斷的編程過程設置interrupmaskINT

18、MR1寄存器0x80000240第8位TC1OI計時器1為使能.在0x800000300計時器1的數據寄存器TC1D寫入指定數據,這樣數據開始從這個給定的數開始遞減計數,計數遞減至0后,會產生一個溢出underflowIRQ中斷請求,中斷狀態寄存器INTSR10x80000240第8位TC1OI置位.系統會跳到中斷向量表地址0x00000018處,執行相應的中斷程序,中斷程序通過判斷中斷的類型(判斷中斷狀態寄存器的位),來執行相應的中斷服務程序ISR.中斷狀態寄存器標志位復位,計時器開始重新開始計時.存儲空間管理單元(MMU)物理地址映射重點在于片選地址CS的選取,另外MMU映射需要參考這個物

19、理地址ARM7物理地址映射表地址內容大小備注0xF000.0000Unused256Mbytes0xE000.0000Unused256Mbytes0xD000.0000DRAMBank1256Mbytes0xC000.0000DRAMBank0256Mbytes外接DRAM0x8000.2000Unused-1Gbytes0x8000.0000內部寄存器地址8Kbytes主要的I/O和控制0x7000.0000BootROM128bytes片內,封有Boot程序0x6000.0000On-chipSRAM2Kbytes片內,存放Load程序0x5000.0000PCMCIA-1(NCS5)4*64Mbytes0x4000.0000PCMCIA-0(NCS4)4*64Mbytes0x3000.0000外部擴展(NCS3)256Mbytes0x2000.0000外部擴展(NCS2)256Mbytes0x1000.0000ROMBank1(NCS1)256Mbytes0x0000.0000ROMBank0(NCS0)256Mbytes外接FlashROMMMU虛擬(邏輯)地址和物理地址的映射實例Vxworks支持的ARM架構的處理器,一般是RAM的起始位置為0

溫馨提示

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

評論

0/150

提交評論