




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、ARM 簡介及編程1.ARM 簡介 (摘錄 )ARM ( AdvancedRISCMachines )是微處理器行業(yè)的一家知名企業(yè),設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的 RISC 處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點(diǎn)。適用于多種領(lǐng)域,比如嵌入控制、消費(fèi) / 教育類多媒體、 DSP 和移動式應(yīng)用等。ARM 將其技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和 OEM 廠商,每個(gè)廠商得到的都是一套獨(dú)一無二的 ARM 相關(guān)技術(shù)及服務(wù)。利用這種合伙關(guān)系, ARM 很快成為許多全球性 RISC 標(biāo)準(zhǔn)的締造者。目前, 總共有 30 家半導(dǎo)體公司與ARM 簽訂了硬件技術(shù)使用許可協(xié)議, 其中包括
2、Intel 、IBM、LG半導(dǎo)體、NEC、SONY、菲利浦和國民半導(dǎo)體這樣的大公司。至于軟件系統(tǒng)的合伙人,則包括微軟、升陽和 MRI 等一系列知名公司。ARM 架構(gòu)是面向低預(yù)算市場設(shè)計(jì)的第一款RISC 微處理器。2. 產(chǎn)品介紹ARM 提供一系列內(nèi)核、體系擴(kuò)展、微處理器和系統(tǒng)芯片方案。由于所有產(chǎn)品均采用一個(gè)通用的軟件體系, 所以相同的軟件可在所有產(chǎn)品中運(yùn)行 (理論上如此) 。 典型的產(chǎn)品如下。- CPU 內(nèi)核- -ARM7 :小型、快速、低能耗、集成式RISC 內(nèi)核,用于移動通信。- -ARM7TDMI(Thumb):這是公司授權(quán)用戶最多的一項(xiàng)產(chǎn)品,將ARM7 指令集同ICE 調(diào)試技Thumb
3、擴(kuò)展組合在一起,以減少內(nèi)存容量和系統(tǒng)成本。同時(shí),它還利用嵌入式術(shù)來簡化系統(tǒng)設(shè)計(jì),并用一個(gè)DSP 增強(qiáng)擴(kuò)展來改進(jìn)性能。該產(chǎn)品的典型用途是數(shù)字蜂窩電話和硬盤驅(qū)動器。- -ARM9TDMI: 采用 5 階段管道化 ARM9 內(nèi)核, 同時(shí)配備 Thumb 擴(kuò)展、 調(diào)試和 Harvard總線。 在生產(chǎn)工藝相同的情況下, 性能可達(dá) ARM7TDMI 的兩倍之多。 常用于連網(wǎng)和頂置盒。體系擴(kuò)展- -Thumb: 以 16 位系統(tǒng)的成本,提供 32 位 RISC 性能,特別注意的是它所需的內(nèi)存容 量非常小。嵌入式 ICE 調(diào)試由于集成了類似于ICE 的 CPU 內(nèi)核調(diào)試技術(shù),所以原型設(shè)計(jì)和系統(tǒng)芯片的調(diào)試得到了
4、極大的簡化。微處理器- -ARM710 系列,包括ARM710 、 ARM710T 、 ARM720T 和 ARM740T: 低價(jià)、低能耗、封裝式常規(guī)系統(tǒng)微型處理器,配有高速緩存( Cache )、內(nèi)存管理、寫緩沖和 JTAG。廣 泛應(yīng)用于手持式計(jì)算、數(shù)據(jù)通信和消費(fèi)類多媒體。- -ARM940T 、 920T 系列 :低價(jià)、低能耗、高性能系統(tǒng)微處理器,配有Cache 、內(nèi)存管理和寫緩沖。應(yīng)用于高級引擎管理、保安系統(tǒng)、頂置盒、便攜計(jì)算機(jī)和高檔打印機(jī)。- -StrongARM: 性能很高、同時(shí)滿足常規(guī)應(yīng)用需要的一種微處理器技術(shù),與DEC 聯(lián)合研制,后來授權(quán)給Intel 。 SA110 處理器、 S
5、A1100PDA 系統(tǒng)芯片和SA1500 多媒體處理器芯片均采用了這一技術(shù)。- -ARM7500 和 ARM7500FE: 高度集成的單芯片 RISC 計(jì)算機(jī),基于一個(gè)緩存式ARM732 位內(nèi)核,擁有內(nèi)存和I/O 控制器、 3 個(gè) DMA 通道、片上視頻控制器和調(diào)色板以及立體聲端口 ;ARM7500FE 則增加了一個(gè)浮點(diǎn)運(yùn)算單元以及對 EDODRAM 的支持。 特別適合電視頂置盒和網(wǎng)絡(luò)計(jì)算機(jī)( NC ) 。WindowsCE 的 PocketPC 只支持 ARMWindowsCE 可支持多種嵌入式處理器,但基于WindowsCE 的 PocketPC 則只支持 ARM 一種。 微軟在對SH3
6、、 MIPS 、 ARM 等嵌入式處理器做了評估后認(rèn)為, ARM 是一種性價(jià)比較好的選擇。由于目前ARM 在手持設(shè)備市場占有 90% 以上的份額, 只支持 ARM ,可以有效地縮短應(yīng)用程序開發(fā)與測試的時(shí)間, 也降低了研發(fā)費(fèi)用。由于ARM 開放其處理器授權(quán),因此,用戶在市場上可以在多家整機(jī)廠商中進(jìn)行選擇,從而保證了這一市場的競爭性。2.ARM 芯片 CL-PS7111 主要特點(diǎn) BLOCKQUOTEBLOCKQUOTE電平 2.7v/3.3v. 相對應(yīng) CPU 工作頻率 13MHz/18MHz.13MHz 位節(jié)電模式,性能相當(dāng)于33MHzInter486PCARM710A 內(nèi)核ARM7CPU8K
7、4 向緩存 (cache)MMU 帶有 64 入口 TLB(TransitionLook-asideBuffer)DRAM 控制器支持 16 位和 32 位 DRAMROM/SRAM/FlashMemory 控制可譯碼 4,5 或 6 個(gè)獨(dú)立的 256M 存儲空間段每個(gè)存儲段支持8 位,16 位和 32 位操作,并支持分頁模式可編程 ROM/SRAM/FlashMemory支持兩個(gè)低功耗CL-PS6700PC 卡 (PCMCIA) 控制器2K 片內(nèi) SRAM 用于程序快速執(zhí)行片內(nèi) BootROM(128Byte)兩個(gè)同步串行接口支持SPI,或Microwire2 兼容音頻解碼器(AudioCo
8、dec)27 位通用接口 GPIO(general-purposeI/Oport)3 個(gè) 8 位和 1 個(gè) 3 位 GPIOport支持鍵盤陣列掃描(Scanningkeyboardmatrix)兩個(gè)異步串口 UARTs支持高達(dá) 115.2K 波特率(TX,RX)16BytesFIFOs 緩沖支持 MODEM 控制信號DC-to-DC 轉(zhuǎn)換器接口提供兩個(gè) 96KHz 時(shí)鐘輸出,通過編程dutyratio(1/16-15/16)操作LCD 控制器直接信號掃描板接口,單色 LCD面板的大小可編程從16 到 1024個(gè)像素 ,16 個(gè)像素為一個(gè)單位視頻幀大小可編程到128Kbyte每個(gè)像素點(diǎn)的位數(shù)可
9、編程1,2,4 位計(jì)時(shí)器和實(shí)時(shí)時(shí)鐘兩個(gè)16 位計(jì)時(shí)器 (Timercounter) 和一個(gè) 32 位實(shí)時(shí)時(shí)鐘 (RTC)/BLOCKQUOTE/BLOCKQUOTE3 .調(diào)試工具及調(diào)試方法BLOCKQUOTEARMProjectManager(APM)includeARMDebuger:這個(gè)工具由 ARM 提供主要是開發(fā)程序,編程調(diào)試ARM芯片,有相當(dāng)不錯(cuò)的開發(fā)環(huán)境和遠(yuǎn)端調(diào)試功能,支持匯編和C.它帶有一個(gè)ARM 自己的嵌入式操作系統(tǒng)ARMAngel, 用戶可以在它的上面開發(fā)自己的嵌入式軟件,不過這個(gè)操作系統(tǒng)不是實(shí)時(shí)多任務(wù)的 ./BLOCKQUOTEBLOCKQUOTE通過計(jì)算機(jī)串口與處理器UA
10、RT 相連 ,設(shè)置計(jì)算機(jī)的超級終端(HyperTerminal), 通過超級終端察看硬件情況(寄存器設(shè)置,數(shù)據(jù)等)和程序運(yùn)行情況,當(dāng)然程序重要加入向UART 送出數(shù)據(jù)的指令 ,用 Beep 報(bào)警也是經(jīng)常用的.這種調(diào)試方法是用于底層調(diào)試硬件,找出硬件存在的問題.VxWorks 在 Shell 不能正常運(yùn)行前,也是采取這種方法來調(diào)試程序,不過一般不是硬件問題,而是 BSP 中存在的問題,需要根據(jù)硬件,修改 BSP./BLOCKQUOTE4 .ARM7 編程要點(diǎn)及示例ARM 編程可參考程序示例 ARM_BootFlashROM 驅(qū)動VxWorksimage 裝入 ARM 的過程 :BLOCKQUOT
11、EARM7 有兩種運(yùn)行模式,Boot 模式和 Normal 模式 ,Boot 模式主要是把程序裝入 (download或 load)FlashROM 中用的 ,Normal 模式是一般運(yùn)行程序用的 .ARM7Boot 模式時(shí) ,Flash 的地址是 0x70000000 片選型號是CS0(Normal 模式下 ,Flash 地址為 0x00000000)ARM7 內(nèi)部有 128byte 的 BootROM 和 2K 的 SRAM , 當(dāng)需要 DownloadVxWorksimage 時(shí),ARM啟動采用Boot方式啟動運(yùn)行存在 128byteBootROM中的程序初始化 ARM內(nèi)部的 COM 口
12、,從 COM 口接受數(shù)據(jù)到 2K 的 SRAM ,這 2K 程序是用來真正LoadVxWorks的, 2K 程序 Load 完畢后系統(tǒng)自動跳轉(zhuǎn)到這2K 程序執(zhí)行,它的作用是再次初始化內(nèi)部的COM 口 ,通過 COM 口接受 VxWorks 到 DRAM ,然后由 DRAM 寫入 FLASH 。在主板2KSRAM 運(yùn)行的 BootLoad 程序執(zhí)行過程,可參看程序示例中ARMBootLoad 程序?qū)懭胪戤吅?,切換到 Normal 模式重新啟動系統(tǒng),系統(tǒng)自動跳到 FLASH0X00000000 開始 運(yùn)行 VXWORKS 。用 PC 機(jī)上的 COM1 與 ARM 內(nèi)部的 UART1 ( COM )
13、通信來DownloadVxWorks 。/BLOCKQUOTE主要管腳定義BLOCKQUOTE32 條數(shù)據(jù)線:D0D3128 條地址線:A0A27littleendian定義 ,相對應(yīng)數(shù)據(jù)排列0123456276 條片選信號腳 :CS0CS5, 其實(shí)作用相當(dāng)于地址線A28A314個(gè)8位的PORT 口 :PORTA,PORTB,PORTD 主要用于外圍芯片信號的控制.PORTE有雙作用.例如 PORTA 控制鍵盤的行信號,PORTB 用于 RS232,PORTD 用于控制MODEM,FPGA.外部中斷信號EINT,EXTFIQ.編程時(shí)要根據(jù)主板原理圖和硬件手冊進(jìn)行.BLOCKQUOTE看硬件圖紙
14、,該芯片和CPU 的那些管腳連結(jié).特別是PORT 口和片選線 .查 CPU 手冊,得到PORT 口和該片選的硬件地址 .編程:用PORT 口直接對芯片操作,如開,關(guān),RESET等,用片選地址和芯片內(nèi)地址結(jié)合對該外圍芯片操作 ./BLOCKQUOTE/BLOCKQUOTEExceptionvectors, 中斷向量表及中斷分配Vector 地址 BLOCKQUOTEException/BLOCKQUOTEExceptionModePriority(1=High)0x0BLOCKQUOTEReset/BLOCKQUOTESvc10x4BLOCKQUOTEUndefinedInstruction/B
15、LOCKQUOTEUndef60x8BLOCKQUOTESoftwareInterrupt/BLOCKQUOTESvc60xCBLOCKQUOTEPrefetchAbort/BLOCKQUOTEAbort50x10BLOCKQUOTEDataAbort/BLOCKQUOTEAbort20x14BLOCKQUOTEReserved/BLOCKQUOTENotapplicableNotapplicable0x18BLOCKQUOTEInterrupt(IRQ)/BLOCKQUOTEirq40x1CBLOCKQUOTEFastInterrupt(FIQ)/BLOCKQUOTEFiq3BLOCKQUO
16、TE/BLOCKQUOTEBLOCKQUOTE這個(gè)向量表必須要放置在系統(tǒng)地址0x00000000( 一般是邏輯地址,即經(jīng)過MMU 映射后的地址)處./BLOCKQUOTEBLOCKQUOTE一般是在這些地址上放跳轉(zhuǎn)指令BL,跳到相應(yīng)的地址空間執(zhí)行相應(yīng)的程序./BLOCKQUOTEBLOCKQUOTE如系統(tǒng)執(zhí)行從0x00000000Reset 開始 ,Reset 跳轉(zhuǎn)到某一地址開始運(yùn)行操作系統(tǒng)./BLOCKQUOTEBLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE程序示例,中斷向量表(ARMasm):_VectorStart;StartofARMprocessorvectorsLD
17、Rpc,ResetV;00-ResetLDRpc,UndefV;04-UndefinedinstructionsLDRpc,SWIV;08-SWIinstructionsLDRpc,PAbortV;0C-InstructionfetchabortsLDRpc,DAbortV;10-DataaccessabortsLDRpc,UnusedV;14-Reserved(wasaddressexception)LDRpc,IRQV;18-IRQinterruptsLDRpc,FIQV;1C-FIQinterrupts/BLOCKQUOTE中斷號分配(FIQ,IRQ) 中斷類型中斷號Name說明FIQ0
18、 外部中斷 EXTFIQ 管腳 NEXTFIQIRQ5 外部中斷EINT1 管腳 NEINT1IRQ6 外部中斷EINT2 管腳 NEINT2IRQ7 外部中斷 EINT3 管腳 NEINT3IRQ12 內(nèi)部中斷 UTXINT1UART1TXFIFO 為空BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE中斷號也是寄存器INTMR 和 INTSR 的位 ,所以在ARM 中中斷的編程要點(diǎn)是/BLOCKQUOTEBLOCKQUOTE看硬件圖紙,該外設(shè)和CPU 的那一個(gè)管腳連結(jié).查 CPU 手冊,得到中斷號及INTMR,INTSR 的地址 .編程/BLOCKQUOTEBLOCKQUOTE
19、注:如果不是寫底層 driver, 只是在系統(tǒng)上層編程(如 VxWorks,Linux) 知道中斷號即可./BLOCKQUOTEBLOCKQUOTE程序示例 (VxWorks):/BLOCKQUOTEBLOCKQUOTE/ 登記中斷號5, 和相應(yīng)的中斷例程ComISR./BLOCKQUOTEBLOCKQUOTEintConnect(VOIDFUNCPTR*)5,ComISR,0);/BLOCKQUOTEBLOCKQUOTE/ 使能這中斷/BLOCKQUOTEBLOCKQUOTEintEnable(VOIDFUNCPTR*)5);/BLOCKQUOTEBLOCKQUOTEARMInterrupt
20、s:ARMprocessorsimplementfastandnormallevelofinterrupt,signallede xternally,synchroniseinterruptsbeforeanexceptionisraised.Afastinterruptrequst(FIQ) willdesablesubsequentnormalandfastinterruptbysettingtheIandFbitinCPSR,andanor malinterruprequest(IRQ)willdisablesubsequentnormalinterruptbysettingIbitin
21、CPSR.計(jì)時(shí)器中斷編程過程BLOCKQUOTEARM7 一般內(nèi)部有兩個(gè)16位計(jì)時(shí)器(Timercounter) 和一個(gè)32位實(shí)時(shí)時(shí)鐘(RTC),計(jì)時(shí)器中斷屬于 IRQ 中斷 ,這里以計(jì)時(shí)器1 為例敘述一下中斷的編程過程設(shè)置 interrupmaskINTMR1 寄存器 0x80000240 第 8 位 TC1OI 計(jì)時(shí)器 1 為使能.在0x800000300 計(jì)時(shí)器 1 的數(shù)據(jù)寄存器TC1D 寫入指定數(shù)據(jù),這樣數(shù)據(jù)開始從這個(gè)給定的數(shù)開始遞減計(jì)數(shù),計(jì)數(shù)遞減至0 后 ,會產(chǎn)生一個(gè)溢出 underflowIRQ 中斷請求, 中斷狀態(tài)寄存器INTSR10x80000240 第 8 位 TC1OI 置
22、位.系統(tǒng)會跳到中斷向量表地址0x00000018 處,執(zhí)行相應(yīng)的中斷程序,中斷程序通過判斷中斷的類型(判斷中斷狀態(tài)寄存器的位),來執(zhí)行相應(yīng)的中斷服務(wù)程序ISR. 中斷狀態(tài)寄存器標(biāo)志位復(fù)位,計(jì)時(shí)器開始重新開始計(jì)時(shí)./BLOCKQUOTE/BLOCKQUOTE存儲空間管理單元(MMU)物理地址映射重點(diǎn)在于片選地址CS 的選取,另外 MMU 映射需要參考這個(gè)物理地址BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTEARM7 物理地址映射表/BLOCKQUOTE 地址內(nèi)容大小備注0xF000.0000Unused256Mbytes0xE000.0000Unused256Mbytes0xD0
23、00.0000DRAMBank1256Mbytes0xC000.0000DRAMBank0256Mbytes 外接 DRAM0x8000.2000Unused-1Gbytes0x8000.0000 內(nèi)部寄存器地址 8Kbytes 主要的 I/O 和控制0x7000.0000BootROM128bytes 片內(nèi) ,封有 Boot 程序0x6000.0000On-chipSRAM2Kbytes 片內(nèi) ,存放Load 程序0x5000.0000PCMCIA-1(NCS5)4*64Mbytes0x4000.0000PCMCIA-0(NCS4)4*64Mbytes0x3000.0000 外部擴(kuò)展(NCS3)256Mbytes0x2000.0000 外部擴(kuò)展(NCS2)256Mbytes0x1000.0000ROMBank1(NCS1)256Mbytes外接 FlashROM0x0000.0000ROMBank0(NCS0)256MbytesMMU 虛擬 (邏輯 )地址和物理地址的映射實(shí)例BLOCKQUOTEVxworks 支持的 ARM 架構(gòu)的處理器,一般是RAM 的起始位置為 0x0, 而實(shí)際上 ARM 的物理地址 0x0 是 ROM 的起始地址
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省龍巖市2024-2025學(xué)年高一上學(xué)期1月期末教學(xué)質(zhì)量檢測數(shù)學(xué)試題
- 箱涵混凝土施工方案
- 液壓升降壩施工方案
- 2025年證券培訓(xùn)員面試題及答案
- 2025年三違人員考試試題及答案
- 5月份黃果樹瀑布旅游美篇
- 5年級下冊第5課朗讀
- 5個(gè)英語新年祝福語
- c8h10o同分異構(gòu)體找法
- 地暖漏水維修方法
- 信號與系統(tǒng)考試試題及答案
- 2024年新人教版(精通)英語三年級上冊全冊教案
- 【短視頻侵權(quán)中的平臺責(zé)任探究的國內(nèi)外文獻(xiàn)綜述2900字】
- 血透病人合并骨折的護(hù)理查房
- 統(tǒng)編四上《中國古代神話故事》導(dǎo)讀課教學(xué)設(shè)計(jì)含反思
- 日常手部護(hù)理方法教程
- (部編版)統(tǒng)編版小學(xué)語文教材目錄(一至六年級上冊下冊齊全)
- 2024-2030年中國人絨毛膜促性腺激素(HCG)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 賀蘭山凝眸(2023年浙江臺州中考語文試卷散文閱讀題及答案)
- 境外放款合同協(xié)議書
- 江西省數(shù)字產(chǎn)業(yè)集團(tuán)有限公司招聘筆試真題2023
評論
0/150
提交評論