




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ARM簡介及編程 1.ARM簡介ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。技術具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。ARM將其技術授權給世界上許多著名的半導體、軟件和OEM廠商,每個廠商得到的都是一套獨一無二的ARM相關技術及服務。利用這種合伙關系,ARM很快成為許多全球性RISC標準的締造者。目前,總共有30家半導體公司與ARM簽訂了硬件技術使用許可協(xié)議,其中包括Inte
2、l、IBM、LG半導體、NEC、SONY、菲利浦和國民半導體這樣的大公司。至于軟件系統(tǒng)的合伙人,則包括微軟、升陽和MRI等一系列知名公司。ARM架構是面向低預算市場設計的第一款RISC微處理器。2.產(chǎn)品介紹ARM提供一系列內核、體系擴展、微處理器和系統(tǒng)芯片方案。由于所有產(chǎn)品均采用一個通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運行(理論上如此)。典型的產(chǎn)品如下。 CPU內核 -ARM7:小型、快速、低能耗、集成式RISC內核,用于移動通信。- ARM7TDMI(Thumb):這是公司授權用戶最多的一項產(chǎn)品,將ARM7指令集同Thumb擴展組合在一起,以減少內存容量和系統(tǒng)成本。同時,它還利用嵌入
3、式ICE調試技術來簡化系統(tǒng)設計,并用一個DSP增強擴展來改進性能。該產(chǎn)品的典型用途是數(shù)字蜂窩電話和硬盤驅動器。-ARM9TDMI:采用5階段管道化ARM9內核,同時配備Thumb擴展、調試和Harvard總線。在生產(chǎn)工藝相同的情況下,性能可達ARM7TDMI的兩倍之多。常用于連網(wǎng)和頂置盒。體系擴展- Thumb:以16位系統(tǒng)的成本,提供32位RISC性能,特別注意的是它所需的內存容量非常小。嵌入式ICE調試由于集成了類似于ICE的CPU內核調試技術,所以原型設計和系統(tǒng)芯片的調試得到了極大的簡化。微處理器-ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低價、
4、低能耗、封裝式常規(guī)系統(tǒng)微型處理器,配有高速緩存(Cache)、內存管理、寫緩沖和JTAG。廣泛應用于手持式計算、數(shù)據(jù)通信和消費類多媒體。 -ARM940T、920T系列:低價、低能耗、高性能系統(tǒng)微處理器,配有Cache、內存管理和寫緩沖。應用于高級引擎管理、保安系統(tǒng)、頂置盒、便攜計算機和高檔打印機。-StrongARM:性能很高、同時滿足常規(guī)應用需要的一種微處理器技術,與DEC聯(lián)合研制,后來授權給Intel。SA110處理器、SA1100 PDA系統(tǒng)芯片和SA1500多媒體處理器芯片均采用了這一技術。-ARM7500和ARM7500FE:高度集成的單芯片RISC計算機,基于一個緩存式ARM7
5、32位內核,擁有內存和I/O控制器、3個DMA通道、片上視頻控制器和調色板以及立體聲端口;ARM7500FE則增加了一個浮點運算單元以及對EDO DRAM的支持。特別適合電視頂置盒和網(wǎng)絡計算機(NC)。Windows CE的Pocket PC只支持ARMWindows CE可支持多種嵌入式處理器,但基于Windows CE的Pocket PC則只支持ARM一種。微軟在對SH3、MIPS、ARM等嵌入式處理器做了評估后認為,ARM是一種性價比較好的選擇。由于目前ARM在手持設備市場占有90%以上的份額,只支持ARM,可以有效地縮短應用程序開發(fā)與測試的時間,也降低了研發(fā)費用。由于ARM開放其處理器
6、授權,因此,用戶在市場上可以在多家整機廠商中進行選擇,從而保證了這一市場的競爭性。2. ARM芯片CL-PS7111主要特點BLOCKQUOTEBLOCKQUOTE電平2.7v/3.3v.相對應CPU工作頻率13MHz/18MHz. 13MHz位節(jié)電模式, 性能相當于33MHz Inter 486 PCARM710A內核 ARM7 CPU 8K 4向緩存(cache) MMU 帶有64入口TLB(Transition Look-aside Buffer) DRAM控制器 支持16位和32位DRAM ROM/SRAM/Flash Mem
7、ory 控制 可譯碼4,5或6個獨立的256M存儲空間段 每個存儲段支持8位,16位和32位操作,并支持分頁模式 可編程ROM/SRAM/Flash Memory 支持兩個低功耗CL-PS6700 PC卡(PCMCIA)控制器2K 片內 SRAM用于程序快速執(zhí)行片內Boot ROM (128Byte)兩個同步串行接口 支持SPI,或Microwire2兼容 音頻解碼器(Audio Codec) 27位通用接口GPIO(general-purpose I/O port) 3個8位和1個3位GPIO port
8、;支持鍵盤陣列掃描(Scanning keyboard matrix) 兩個異步串口 UARTs 支持高達115.2K 波特率 內有兩個接收發(fā)送(TX,RX) 16Bytes FIFOs緩沖 支持MODEM控制信號 DC-to-DC轉換器接口 提供兩個96KHz時鐘輸出,通過編程duty ratio(1/16-15/16)操作 LCD控制器 直接信號掃描板接口,單色LCD 面板的大小可編程從16到1024個像素,16個像素為一個單位 視頻幀大小可編程到128K byte 每個像素點的位
9、數(shù)可編程1,2,4位 計時器和實時時鐘 兩個16位計時器(Timer counter)和一個32位實時時鐘(RTC) /BLOCKQUOTE/BLOCKQUOTE3. 調試工具及調試方法BLOCKQUOTEARM Project Manager (APM) include ARM Debuger: 這個工具由ARM提供主要是開發(fā)程序, 編程調試ARM芯片, 有相當不錯的開發(fā)環(huán)境和遠端調試功能, 支持匯編和C. 它帶有一個ARM自己的嵌入式操作系統(tǒng)ARM Angel, 用戶可以在它的上面開發(fā)自己的嵌入式軟件, 不過這個操作系統(tǒng)不是實時多任務的. /BLOC
10、KQUOTEBLOCKQUOTE通過計算機串口與處理器UART相連,設置計算機的超級終端 ( Hyper Terminal ), 通過超級終端察看硬件情況(寄存器設置,數(shù)據(jù)等)和程序運行情況,當然程序重要加入向UART送出數(shù)據(jù)的指令, 用Beep報警也是經(jīng)常用的. 這種調試方法是用于底層調試硬件,找出硬件存在的問題. VxWorks 在Shell 不能正常運行前,也是采取這種方法來調試程序,不過一般不是硬件問題,而是BSP中存在的問題,需要根據(jù)硬件,修改BSP. /BLOCKQUOTE4. ARM7 編程要點及示例 ARM編程可參考程序示例 ARM_Boot Fl
11、ash ROM驅動 VxWorks image 裝入ARM的過程: BLOCKQUOTEARM7 有兩種運行模式, Boot 模式和 Normal 模式, Boot模式主要是把程序裝入(down load 或load )Flash ROM中用的, Normal模式是一般運行程序用的.ARM7 Boot 模式時, Flash 的地址是0x70000000片選型號是CS0 (Normal模式下,Flash地址為0x00000000)ARM7內部有128byte的BootROM和2K的SRAM,當需要Download VxWorks image時,ARM啟動采用Boot方式啟動運
12、行存在128byte BootROM中的程序初始化ARM內部的COM口,從COM口接受數(shù)據(jù)到2K的SRAM,這2K程序是用來真正Load VxWorks的,2K程序Load完畢后系統(tǒng)自動跳轉到這2K程序執(zhí)行,它的作用是再次初始化內部的COM口,通過COM口接受VxWorks到DRAM,然后由DRAM寫入FLASH。在主板2K SRAM運行的Boot Load程序執(zhí)行過程,可參看程序示例中ARM Boot Load程序寫入完畢后,切換到Normal模式重新啟動系統(tǒng),系統(tǒng)自動跳到FLASH 0X00000000開始運行VXWORKS。 用PC機上的COM1與ARM內部的UART1(COM
13、)通信來Download VxWorks。/BLOCKQUOTE主要管腳定義 BLOCKQUOTE32條數(shù)據(jù)線: D0-D3128條地址線: A0-A27 little endian 定義, 相對應數(shù)據(jù)排列 0 1 2 3 4 5 6-276條片選信號腳: CS0-CS5, 其實作用相當于地址線 A28-A314個8位的PORT口: PORT A, PORT B , PORT D主要用于外圍芯片信號的控制. PORT E有雙作用.例如 PORT A 控制鍵盤的行信號, PORT B 用于RS232, PORT D 用于控制MODEM, FPGA.外部中斷信號EINT, EXTFIQ.
14、 編程時要根據(jù)主板原理圖和硬件手冊進行. BLOCKQUOTE看硬件圖紙, 該芯片和CPU的那些管腳連結. 特別是 PORT 口和片選線. 查CPU手冊, 得到PORT 口和該片選的硬件地址. 編程: 用PORT口直接對芯片操作,如開,關,RESET等, 用片選地址和芯片內地址結合對該外圍芯片操作. /BLOCKQUOTE/BLOCKQUOTE Exception vectors, 中斷向量表及中斷分配 Vector 地址 BLOCKQUOTEException/BLOCKQUOTE Exception Mode Priority(1
15、=High) 0x0 BLOCKQUOTEReset/BLOCKQUOTE Svc 1 0x4 BLOCKQUOTEUndefined Instruction/BLOCKQUOTE Undef 6 0x8 BLOCKQUOTESoftware Interrupt/BLOCKQUOTE Svc 6 0xC BLOCKQUOTEPrefetch Abort/BLOCKQUOTE Abort 5 0x10 BLOCKQUOTEData Abort/BLOCKQUOTE Abort 2 0x14 BLOCKQUOTEReserved/BLOC
16、KQUOTE Not applicable Not applicable 0x18 BLOCKQUOTEInterrupt (IRQ)/BLOCKQUOTE irq 4 0x1C BLOCKQUOTEFast Interrupt (FIQ)/BLOCKQUOTE Fiq 3 BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE這個向量表必須要放置在系統(tǒng)地址0x00000000 (一般是邏輯地址, 即經(jīng)過MMU映射后的地址)處./BLOCKQUOTEBLOCKQUOTE一般是在這些地址上放跳轉指令 BL, 跳到相應的地址空間執(zhí)行相應的程序./BLOCKQU
17、OTEBLOCKQUOTE如系統(tǒng)執(zhí)行從0x00000000 Reset開始, Reset 跳轉到某一地址開始運行操作系統(tǒng)./BLOCKQUOTEBLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE程序示例,中斷向量表 (ARM asm):_VectorStart ; Start of ARM processor vectorsLDR pc,ResetV ; 00 - ResetLDR pc,UndefV ; 04 - Undefined instructionsLDR pc,SWIV ; 08 - SWI instructionsLDR pc,PAbortV ; 0C - Instr
18、uction fetch abortsLDR pc,DAbortV ; 10 - Data access abortsLDR pc,UnusedV ; 14 - Reserved (was address exception)LDR pc,IRQV ; 18 - IRQ interruptsLDR pc,FIQV ; 1C - FIQ interrupts/BLOCKQUOTE中斷號分配 (FIQ, IRQ)中斷類型 中斷號 Name 說明 FIQ 0 外部中斷 EXTFIQ 管腳 NEXT FIQ IRQ 5 外部中斷 EINT1 管腳
19、NEINT1 IRQ 6 外部中斷 EINT2 管腳 NEINT2 IRQ 7 外部中斷 EINT3 管腳 NEINT3 IRQ 12 內部中斷 UTXINT1 UART1 TX FIFO 為空 BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE中斷號也是寄存器INTMR和INTSR的位,所以在ARM中中斷的編程要點是/BLOCKQUOTEBLOCKQUOTE看硬件圖紙, 該外設和CPU的那一個管腳連結. 查CPU手冊, 得到中斷號及INTMR,INTSR的地址. 編程 /BLOCKQ
20、UOTEBLOCKQUOTE注: 如果不是寫底層driver, 只是在系統(tǒng)上層編程(如VxWorks, Linux) 知道中斷號即可./BLOCKQUOTEBLOCKQUOTE程序示例(VxWorks): /BLOCKQUOTEBLOCKQUOTE/登記中斷號 5, 和相應的中斷例程 ComISR./BLOCKQUOTEBLOCKQUOTEintConnect ( ( VOIDFUNCPTR * ) 5, ComISR, 0 ) ; /BLOCKQUOTEBLOCKQUOTE/使能這中斷/BLOCKQUOTEBLOCKQUOTEintEnable ( ( VOIDFUNCPTR * ) 5 )
21、;/BLOCKQUOTEBLOCKQUOTE/BLOCKQUOTEBLOCKQUOTEARM Interrupts: ARM processors implement fast and normal level of interrupt,signalled externally, synchronise interrupts before an exception is raised. A fast interrupt requst (FIQ) will desable subsequent normal and fast interrupt by setting the I and F bi
22、t in CPSR,and a normal interrup request(IRQ) will disable subsequent normal interrupt by setting I bit in CPSR.計時器中斷編程過程BLOCKQUOTEARM7一般內部有兩個16位計時器(Timer counter)和一個32位實時時鐘(RTC),計時器中斷屬于IRQ中斷,這里以計時器1為例敘述一下中斷的編程過程設置interrup mask INTMR1寄存器 0x80000240 第8位TC1OI計時器1為使能. 在0x800000300 計時器 1 的數(shù)據(jù)寄存器TC1D寫入指定數(shù)據(jù)
23、,這樣數(shù)據(jù)開始從這個給定的數(shù)開始遞減計數(shù),計數(shù)遞減至 0 后,會產(chǎn)生一個溢出underflow IRQ中斷請求,中斷狀態(tài)寄存器INTSR1 0x80000240 第8位TC1OI置位.系統(tǒng)會跳到中斷向量表地址 0x00000018 處,執(zhí)行相應的中斷程序,中斷程序通過判斷中斷的類型(判斷中斷狀態(tài)寄存器的位),來執(zhí)行相應的中斷服務程序ISR. 中斷狀態(tài)寄存器標志位復位,計時器開始重新開始計時./BLOCKQUOTE/BLOCKQUOTE存儲空間管理單元(MMU) 物理地址映射 重點在于片選地址CS的選取,另外MMU映射需要參考這個物理地址BLOCKQUOTE/BLOCKQUO
24、TEBLOCKQUOTEARM7 物理地址映射表/BLOCKQUOTE地址 內容 大小 備注 0xF000.0000 Unused 256Mbytes 0xE000.0000 Unused 256Mbytes 0xD000.0000 DRAM Bank 1 256Mbytes 0xC000.0000 DRAM Bank 0 256Mbytes 外接DRAM 0x8000.2000 Unused -1Gbytes 0x8000.0000 內部寄存器地址 8Kbytes 主要的I/O和控制 0x70
25、00.0000 Boot ROM 128 bytes 片內,封有Boot程序 0x6000.0000 On-chip SRAM 2 Kbytes 片內,存放Load程序 0x5000.0000 PCMCIA-1(NCS5) 4*64 Mbytes 0x4000.0000 PCMCIA-0(NCS4) 4*64 Mbytes 0x3000.0000 外部擴展(NCS3) 256Mbytes 0x2000.0000 外部擴展(NCS2) 256Mbytes 0x1000.0000 ROM Bank 1(NCS1) 256Mbytes 0x0000.0000 ROM Bank 0(NCS0) 256Mbytes 外接Flash ROM MMU 虛擬(邏輯)地址和物理地址的映射實例BLOCKQUOTEVxworks支持的ARM架構的處理器,一般是RAM的起始位置為0x0,而實際上ARM的物理地址0x0是ROM的起始地址,RAM在高位地址.這就需要系統(tǒng)在Boot過程中,執(zhí)行MMU程序,重新映射RAM和ROM的地址.即R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拔尖創(chuàng)新人才課題申報書
- 貴州課題申報書怎么寫的
- 低年級微型課題申報書
- 高校思政類課題申報書
- 教師課題申報評審書
- 化工課題申報書范文
- 黨務課題申報書范文模板
- 醫(yī)學課題申報書的撰寫
- 校史課題研究申報書
- 智能項目課題申報書范文
- 阿爾茨海默病量表
- 《威尼斯商人》課本劇劇本:一場人性與金錢的較量(6篇)
- 煤礦應急救援培訓教案
- 《圖書館資源利用》課件
- 中華人民共和國保守國家秘密法實施條例培訓課件
- 2024-2030年中國光伏建筑一體化(BIPV)行業(yè)發(fā)展模式規(guī)劃分析報告
- 設備工程師招聘面試題與參考回答
- 部編版小學道德與法治五年級下冊《不甘屈辱-奮勇抗爭》第一課時課件
- 《贏利》精讀圖解
- 讀書分享讀書交流會《你當像鳥飛往你的山》課件
- 大學生職業(yè)素養(yǎng)訓練(第六版)教案 第二單元 學習職業(yè)禮儀
評論
0/150
提交評論