ARM教程之ARM簡介及編程_第1頁
ARM教程之ARM簡介及編程_第2頁
ARM教程之ARM簡介及編程_第3頁
ARM教程之ARM簡介及編程_第4頁
ARM教程之ARM簡介及編程_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、、IBM 、LG 半導(dǎo)體、NEC 、SONY 、菲利浦和國民半導(dǎo)體這樣的大公司。至于軟件系統(tǒng)的合伙人,則包括微軟、升陽和MRI 等一系列知名公司。arm 架構(gòu)是面向低預(yù)算市場設(shè)計的第一款RISC 微處理器。2. 產(chǎn)品介紹arm 提供一系列內(nèi)核、體系擴展、微處理器和系統(tǒng)芯片方案。由于所有產(chǎn)品均采用一個通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運行(理論上如此)。典型的產(chǎn)品如下。 CPU 內(nèi)核-arm7:小型、快速、低能耗、集成式RISC 內(nèi)核,用于移動通信。- ARM7TDMI(Thumb:這是公司授權(quán)用戶最多的一項產(chǎn)品,將arm7指令集同Thumb 擴展組合在一起,以減少內(nèi)存容量和系統(tǒng)成本。

3、同時,它還利用嵌入式ICE 調(diào)試技術(shù)來簡化系統(tǒng)設(shè)計,并用一個DSP 增強擴展來改進(jìn)性能。該產(chǎn)品的典型用途是數(shù)字蜂窩電話和硬盤驅(qū)動器。-ARM9TDMI:采用5階段管道化ARM9內(nèi)核,同時配備Thumb 擴展、調(diào)試和Harvard 總線。在生產(chǎn)工藝相同的情況下,性能可達(dá)arm7TDMI 的兩倍之多。常用于連網(wǎng)和頂置盒。 體系擴展- Thumb:以16位系統(tǒng)的成本,提供32位RISC 性能,特別注意的是它所需的內(nèi)存容量非常小。嵌入式ICE 調(diào)試由于集成了類似于ICE 的CPU 內(nèi)核調(diào)試技術(shù),所以原型設(shè)計和系統(tǒng)芯片的調(diào)試得到了極大的簡化。微處理器-ARM710系列,包括ARM710、ARM710T

4、、ARM720T 和arm740T:低價、低能耗、封裝式常規(guī)系統(tǒng)微型處理器,配有高速緩存(Cache )、內(nèi)存管理、寫緩沖和JTAG 。廣泛應(yīng)用于手持式計算、數(shù)據(jù)通信和消費類多媒體。-arm940T、920T 系列:低價、低能耗、高性能系統(tǒng)微處理器,配有Cache 、內(nèi)存管理和寫緩沖。應(yīng)用于高級引擎管理、保安系統(tǒng)、頂置盒、便攜計算機和高檔打印機。-Strongarm:性能很高、同時滿足常規(guī)應(yīng)用需要的一種微處理器技術(shù),與DEC 聯(lián)合研制, 后來授權(quán)給Intel 。SA110處理器、SA1100 PDA系統(tǒng)芯片和SA1500多媒體處理器芯片均采用了這一技術(shù)。-ARM7500和ARM7500FE:高

5、度集成的單芯片RISC 計算機,基于一個緩存式ARM7 32位內(nèi)核,擁有內(nèi)存和I/O控制器、3個DMA 通道、片上視頻控制器和調(diào)色板以及立體聲端口;arm7500FE 則增加了一個浮點運算單元以及對EDO DRAM的支持。特別適合電視頂置盒和網(wǎng)絡(luò)計算機(NC )。Windows CE的Pocket PC只支持armWindows CE可支持多種嵌入式處理器,但基于Windows CE的Pocket PC則只支持ARM 一種。微軟在對SH3、MIPS 、ARM 等嵌入式處理器做了評估后認(rèn)為,ARM 是一種性價比較好的選擇。由于目前ARM 在手持設(shè)備市場占有90%以上的份額,只支持ARM ,可以有

6、效地縮短應(yīng)用程序開發(fā)與測試的時間,也降低了研發(fā)費用。由于arm 開放其處理器授權(quán),因此,用戶在市場上可以在多家整機廠商中進(jìn)行選擇,從而保證了這一市場的競爭性。2. arm芯片CL-PS7111主要特點BLOCKQUOTEBLOCKQUOTEarm710A 內(nèi)核arm7 CPU8K 4向緩存(cacheMMU 帶有64入口TLB(Transition Look-aside BufferDRAM 控制器支持16位和32位DRAMROM/SRAM/Flash Memory 控制可譯碼4,5或6個獨立的256M 存儲空間段每個存儲段支持8位,16位和32位操作, 并支持分頁模式可編程ROM/SRAM/

7、Flash Memory支持兩個低功耗CL-PS6700 PC卡(PCMCIA控制器2K 片內(nèi) SRAM用于程序快速執(zhí)行片內(nèi)Boot ROM (128Byte兩個同步串行接口支持SPI, 或Microwire2兼容音頻解碼器(Audio Codec27位通用接口GPIO(general-purpose I/O port3個8位和1個3位GPIO port支持鍵盤陣列掃描(Scanning keyboard matrix 兩個異步串口 UARTs支持高達(dá)115.2K 波特率內(nèi)有兩個接收發(fā)送(TX,RX 16Bytes FIFOs緩沖支持MODEM 控制信號DC-to-DC 轉(zhuǎn)換器接口提供兩個96

8、KHz 時鐘輸出, 通過編程duty ratio(1/16-15/16操作LCD 控制器直接信號掃描板接口, 單色LCD面板的大小可編程從16到1024個像素,16個像素為一個單位視頻幀大小可編程到128K byte每個像素點的位數(shù)可編程1,2,4位計時器和實時時鐘兩個16位計時器(Timer counter和一個32位實時時鐘(RTC/BLOCKQUOTE/BLOCKQUOTE3. 調(diào)試工具及調(diào)試方法BLOCKQUOTEARM Project Manager (APM include ARM Debuger: 這個工具由ARM 提供主要是開發(fā)程序, 編程調(diào)試ARM 芯片, 有相當(dāng)不錯的開發(fā)環(huán)

9、境和遠(yuǎn)端調(diào)試功能, 支持匯編和C. 它帶有一個ARM 自己的嵌入式操作系統(tǒng)arm Angel, 用戶可以在它的上面開發(fā)自己的嵌入式軟件, 不過這個操作系統(tǒng)不是實時多任務(wù)的./BLOCKQUOTEBLOCKQUOTE通過計算機串口與處理器UART 相連, 設(shè)置計算機的超級終端 ( Hyper Terminal , 通過超級終端察看硬件情況(寄存器設(shè)置, 數(shù)據(jù)等 和程序運行情況, 當(dāng)然程序重要加入向UART 送出數(shù)據(jù)的指令, 用Beep 報警也是經(jīng)常用的. 這種調(diào)試方法是用于底層調(diào)試硬件, 找出硬件存在的問題.VxWorks 在Shell 不能正常運行前, 也是采取這種方法來調(diào)試程序, 不過一般不

10、是硬件問題, 而是BSP 中存在的問題, 需要根據(jù)硬件, 修改BSP./BLOCKQUOTE4. arm7 編程要點及示例ARM 編程可參考程序示例 arm_Boot Flash ROM驅(qū)動VxWorks image 裝入arm 的過程:BLOCKQUOTEarm7 有兩種運行模式, Boot 模式和 Normal 模式, Boot模式主要是把程序裝入(down load 或load Flash ROM中用的, Normal模式是一般運行程序用的.arm7 Boot 模式時, Flash 的地址是0x70000000片選型號是CS0 (Normal模式下,Flash 地址為0x00000000

11、ARM7內(nèi)部有128byte 的BootROM 和2K 的SRAM ,當(dāng)需要Download VxWorks image時,ARM 啟動采用Boot 方式啟動運行存在128byte BootROM中的程序初始化ARM 內(nèi)部的COM 口,從COM 口接受數(shù)據(jù)到2K 的SRAM ,這2K 程序是用來真正Load VxWorks的,2K 程序Load 完畢后系統(tǒng)自動跳轉(zhuǎn)到這2K 程序執(zhí)行, 它的作用是再次初始化內(nèi)部的COM 口, 通過COM 口接受VxWorks 到DRAM ,然后由DRAM 寫入FLASH 。在主板2K SRAM運行的Boot Load程序執(zhí)行過程, 可參看程序示例中arm Boo

12、t Load程序?qū)懭胪戤吅螅袚Q到Normal 模式重新啟動系統(tǒng),系統(tǒng)自動跳到FLASH 0X00000000開始運行VXWORKS 。用PC 機上的COM1與arm 內(nèi)部的UART1(COM )通信來Download VxWorks。/BLOCKQUOTE主要管腳定義BLOCKQUOTE32條數(shù)據(jù)線: D0-D3128條地址線: A0-A27 little endian 定義, 相對應(yīng)數(shù)據(jù)排列 0 1 2 3 4 5 6-276條片選信號腳: CS0-CS5, 其實作用相當(dāng)于地址線 A28-A314個8位的PORT 口: PORT A, PORT B , PORT D主要用于外圍芯片信號的控

13、制. PORT E有雙作用.例如 PORT A 控制鍵盤的行信號, PORT B 用于RS232, PORT D 用于控制MODEM, FPGA. 外部中斷信號EINT, EXTFIQ.編程時要根據(jù)主板原理圖和硬件手冊進(jìn)行. BLOCKQUOTE看硬件圖紙, 該芯片和CPU 的那些管腳連結(jié). 特別是 PORT 口和片選線.查CPU 手冊, 得到PORT 口和該片選的硬件地址.編程: 用PORT 口直接對芯片操作, 如開, 關(guān),RESET 等, 用片選地址和芯片內(nèi)地址結(jié)合對該外圍芯片操作./BLOCKQUOTE/BLOCKQUOTEException vectors, 中斷向量表及中斷分配Vec

14、tor 地址 BLOCKQUOTEException/BLOCKQUOTE Exception Mode Priority(1=High0x0 BLOCKQUOTEReset/BLOCKQUOTE Svc 10x4 BLOCKQUOTEUndefined Instruction/BLOCKQUOTE Undef 60x8 BLOCKQUOTESoftware Interrupt/BLOCKQUOTE Svc 60xC BLOCKQUOTEPrefetch Abort/BLOCKQUOTE Abort 50x10 BLOCKQUOTEData Abort/BLOCKQUOTE Abort 20x

15、14 BLOCKQUOTE Reserved/BLOCKQUOTE Not applicable Not applicable0x18 BLOCKQUOTEInterrupt (IRQ/BLOCKQUOTE irq 40x1C BLOCKQUOTEFast Interrupt (FIQ/BLOCKQUOTE Fiq 3BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE這個向量表必須要放置在系統(tǒng)地址0x00000000 (一般是邏輯地址, 即經(jīng)過MMU 映射后的地址 處./BLOCKQUOTEBLOCKQUOTE一般是在這些地址上放跳轉(zhuǎn)指令 BL, 跳到相應(yīng)的地址空間執(zhí)行相應(yīng)的程序.

16、/BLOCKQUOTEBLOCKQUOTE如系統(tǒng)執(zhí)行從0x00000000 Reset開始, Reset 跳轉(zhuǎn)到某一地址開始運行操作系統(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 - Instruc

17、tion fetch abortsLDR pc,DAbortV 10 - Data access abortsLDR pc,UnusedV 14 - Reserved (was address exceptionLDR pc,IRQV 18 - IRQ interruptsLDR pc,FIQV 1C - FIQ interrupts/BLOCKQUOTE中斷號分配 (FIQ, IRQ中斷類型 中斷號Name說明FIQ 0 外部中斷 EXTFIQ 管腳 NEXT FIQ IRQ 5 外部中斷 EINT1 管腳 NEINT1IRQ 6 外部中斷 EINT2 管腳 NEINT2IRQ 7 外部中斷

18、 EINT3 管腳 NEINT3 IRQ 12 內(nèi)部中斷 UTXINT1 UART1 TX FIFO 為空 BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE中斷號也是寄存器INTMR 和INTSR 的位, 所以在arm 中中斷的編程要點是/BLOCKQUOTEBLOCKQUOTE看硬件圖紙, 該外設(shè)和CPU 的那一個管腳連結(jié).查CPU 手冊, 得到中斷號及INTMR,INTSR 的地址. 編程/BLOCKQUOTEBLOCKQUOTE注: 如果不是寫底層driver, 只是在系統(tǒng)上層編程(如VxWorks, Linux 知道中斷號即可./BLOCKQUOTEBLOCKQUOTE程

19、序示例(VxWorks: /BLOCKQUOTEBLOCKQUOTE/登記中斷號 5, 和相應(yīng)的中斷例程 ComISR./BLOCKQUOTEBLOCKQUOTEintConnect ( ( VOIDFUNCPTR * 5, ComISR, 0 /BLOCKQUOTEBLOCKQUOTE /使能這中斷/BLOCKQUOTEBLOCKQUOTEintEnable ( ( VOIDFUNCPTR * 5 ;/BLOCKQUOTEBLOCKQUOTE/BLOCKQUOTEBLOCKQUOTEARM Interrupts: arm processors implement fast and norma

20、l 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 bit in CPSR,and a normal interrup request(IRQ will disable subsequent normal interrupt by setting I b

21、it in CPSR.計時器中斷編程過程BLOCKQUOTEarm7一般內(nèi)部有兩個16位計時器(Timer counter和一個32位實時時鐘(RTC,計時器中斷屬于IRQ 中斷, 這里以計時器1為例敘述一下中斷的編程過程設(shè)置interrup mask INTMR1寄存器 0x80000240 第8位TC1OI 計時器1為使能. 在0x800000300 計時器 1 的數(shù)據(jù)寄存器TC1D 寫入指定數(shù)據(jù), 這樣數(shù)據(jù)開始從這個給定的數(shù)開始遞減計數(shù), 計數(shù)遞減至 0 后, 會產(chǎn)生一個溢出underflow IRQ中斷請求, 中斷狀態(tài)寄存器INTSR1 0x80000240 第8位TC1OI 置位.

22、系統(tǒng)會跳到中斷向量表地址 0x00000018 處, 執(zhí)行相應(yīng)的中斷程序, 中斷程序通過判斷中斷的類型(判斷中斷狀態(tài)寄存器的位, 來執(zhí)行相應(yīng)的中斷服務(wù)程序ISR. 中斷狀態(tài)寄存器標(biāo)志位復(fù)位, 計時器開始重新開始計時./BLOCKQUOTE/BLOCKQUOTE存儲空間管理單元(MMU物理地址映射重點在于片選地址CS 的選取, 另外MMU 映射需要參考這個物理地址BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTEarm7 物理地址映射表/BLOCKQUOTE地址內(nèi)容大小備注0xF000.0000 Unused 256Mbytes0xE000.0000 Unused 256Mbytes

23、0xD000.0000 DRAM Bank 1 256Mbytes0xC000.0000 DRAM Bank 0 256Mbytes 外接DRAM0x8000.2000 Unused -1Gbytes0x8000.0000 內(nèi)部寄存器地址 8Kbytes 主要的I/O和控制0x7000.0000 Boot ROM 128 bytes 片內(nèi), 封有Boot 程序0x6000.0000 On-chip SRAM 2 Kbytes 片內(nèi), 存放Load 程序 0x5000.0000 PCMCIA-1(NCS5 4*64 Mbytes0x4000.0000 PCMCIA-0(NCS4 4*64 Mby

24、tes0x3000.0000 外部擴展(NCS3 256Mbytes0x2000.0000 外部擴展(NCS2 256Mbytes0x1000.0000 ROM Bank 1(NCS1 256Mbytes0x0000.0000 ROM Bank 0(NCS0 256Mbytes 外接Flash ROMMMU 虛擬(邏輯 地址和物理地址的映射實例BLOCKQUOTEVxworks 支持的ARM 架構(gòu)的處理器, 一般是RAM 的起始位置為0x0, 而實際上arm 的物理地址0x0是ROM 的起始地址,RAM 在高位地址. 這就需要系統(tǒng)在Boot 過程中, 執(zhí)行MMU 程序, 重新映射RAM 和RO

25、M 的地址. 即RAM 起始地址為0x0./BLOCKQUOTEMMU 主要有arm7中協(xié)處理器coprocessor 15控制,coporocessor 主要控制:BLOCKQUOTE 片內(nèi)的MMU指令和數(shù)據(jù)緩存(IDCWrite Buffer(WBMMU 有兩層頁表(two-level page table用來進(jìn)行虛擬地址向物理地址轉(zhuǎn)換,CP15定義16個寄存器, 只有MRC 和MCR 指令才能對它們操作.BL _ramAtHigh_1(2/BLOCKQUOTEMMU 映射實例虛擬(邏輯 地址(VxWorks系統(tǒng) 硬件物理地址RAM 首地址 0x0000.0000Low Address 0

26、x0000.1000High Address 0x0060.0000ROM 0x0100.0000其他的地址邏輯地址和物理地址映射地址不變0x8000.0000 內(nèi)部寄存器.相同的顏色映射對應(yīng)的地址ROM 0x0000.0000 VxWorks image和文件系統(tǒng) RAM 首地址 0xC000.0000 存放LCD,MMU 表等0xC004.0000 中斷向量表等0xC004.1000 VxWorks運行位置0xC064.0000 VxWorks從RO1.arm 簡介(摘錄arm (Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設(shè)計了大量高性能、廉價、耗能低的R

27、ISC 處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP 和移動式應(yīng)用等。ARM 將其技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM 廠商,每個廠商得到的都是一套獨一無二的ARM 相關(guān)技術(shù)及服務(wù)。利用這種合伙關(guān)系,arm 很快成為許多全球性RISC 標(biāo)準(zhǔn)的締造者。目前,總共有30家半導(dǎo)體公司與arm 簽訂了硬件技術(shù)使用許可協(xié)議,其中包括Intel 、IBM 、LG 半導(dǎo)體、NEC 、SONY 、菲利浦和國民半導(dǎo)體這樣的大公司。至于軟件系統(tǒng)的合伙人,則包括微軟、升陽和MRI 等一系列知名公司。arm 架構(gòu)是面向低預(yù)算市場設(shè)計的

28、第一款RISC 微處理器。2. 產(chǎn)品介紹arm 提供一系列內(nèi)核、體系擴展、微處理器和系統(tǒng)芯片方案。由于所有產(chǎn)品均采用一個通用的軟件體系,所以相同的軟件可在所有產(chǎn)品中運行(理論上如此)。典型的產(chǎn)品如下。 CPU 內(nèi)核-arm7:小型、快速、低能耗、集成式RISC 內(nèi)核,用于移動通信。- ARM7TDMI(Thumb:這是公司授權(quán)用戶最多的一項產(chǎn)品,將arm7指令集同Thumb 擴展組合在一起,以減少內(nèi)存容量和系統(tǒng)成本。同時,它還利用嵌入式ICE 調(diào)試技術(shù)來簡化系統(tǒng)設(shè)計,并用一個DSP 增強擴展來改進(jìn)性能。該產(chǎn)品的典型用途是數(shù)字蜂窩電話和硬盤驅(qū)動器。-ARM9TDMI:采用5階段管道化ARM9內(nèi)核

29、,同時配備Thumb 擴展、調(diào)試和Harvard 總線。在生產(chǎn)工藝相同的情況下,性能可達(dá)arm7TDMI 的兩倍之多。常用于連網(wǎng)和頂置盒。 體系擴展- Thumb:以16位系統(tǒng)的成本,提供32位RISC 性能,特別注意的是它所需的內(nèi)存容量非常小。嵌入式ICE 調(diào)試由于集成了類似于ICE 的CPU 內(nèi)核調(diào)試技術(shù),所以原型設(shè)計和系統(tǒng)芯片的調(diào)試得到了極大的簡化。微處理器-ARM710系列,包括ARM710、ARM710T 、ARM720T 和arm740T:低價、低能耗、封裝式常規(guī)系統(tǒng)微型處理器,配有高速緩存(Cache )、內(nèi)存管理、寫緩沖和JTAG 。廣泛應(yīng)用于手持式計算、數(shù)據(jù)通信和消費類多媒體

30、。-arm940T、920T 系列:低價、低能耗、高性能系統(tǒng)微處理器,配有Cache 、內(nèi)存管理和寫緩沖。應(yīng)用于高級引擎管理、保安系統(tǒng)、頂置盒、便攜計算機和高檔打印機。-Strongarm:性能很高、同時滿足常規(guī)應(yīng)用需要的一種微處理器技術(shù),與DEC 聯(lián)合研制,后來授權(quán)給Intel 。SA110處理器、SA1100 PDA系統(tǒng)芯片和SA1500多媒體處理器芯片均采用了這一技術(shù)。-ARM7500和ARM7500FE:高度集成的單芯片RISC 計算機,基于一個緩存式ARM7 32位內(nèi)核,擁有內(nèi)存和I/O控制器、3個DMA 通道、片上視頻控制器和調(diào)色板以及立體聲端 口;arm7500FE 則增加了一個

31、浮點運算單元以及對EDO DRAM的支持。特別適合電視頂置盒和網(wǎng)絡(luò)計算機(NC )。Windows CE的Pocket PC只支持ARMWindows CE可支持多種嵌入式處理器,但基于Windows CE的Pocket PC則只支持ARM 一種。微軟在對SH3、MIPS 、ARM 等嵌入式處理器做了評估后認(rèn)為,ARM 是一種性價比較好的選擇。由于目前ARM 在手持設(shè)備市場占有90%以上的份額,只支持ARM ,可以有效地縮短應(yīng)用程序開發(fā)與測試的時間,也降低了研發(fā)費用。由于arm 開放其處理器授權(quán),因此,用戶在市場上可以在多家整機廠商中進(jìn)行選擇,從而保證了這一市場的競爭性。2. arm芯片CL-

32、PS7111主要特點BLOCKQUOTEBLOCKQUOTEarm710A 內(nèi)核arm7 CPU8K 4向緩存(cacheMMU 帶有64入口TLB(Transition Look-aside BufferDRAM 控制器支持16位和32位DRAMROM/SRAM/Flash Memory 控制可譯碼4,5或6個獨立的256M 存儲空間段每個存儲段支持8位,16位和32位操作, 并支持分頁模式可編程ROM/SRAM/Flash Memory支持兩個低功耗CL-PS6700 PC卡(PCMCIA控制器2K 片內(nèi) SRAM用于程序快速執(zhí)行片內(nèi)Boot ROM (128Byte兩個同步串行接口支持S

33、PI, 或Microwire2兼容音頻解碼器(Audio Codec27位通用接口GPIO(general-purpose I/O port3個8位和1個3位GPIO port支持鍵盤陣列掃描(Scanning keyboard matrix兩個異步串口 UARTs支持高達(dá)115.2K 波特率內(nèi)有兩個接收發(fā)送(TX,RX 16Bytes FIFOs緩沖 支持MODEM 控制信號DC-to-DC 轉(zhuǎn)換器接口提供兩個96KHz 時鐘輸出, 通過編程duty ratio(1/16-15/16操作LCD 控制器直接信號掃描板接口, 單色LCD面板的大小可編程從16到1024個像素,16個像素為一個單位

34、視頻幀大小可編程到128K byte每個像素點的位數(shù)可編程1,2,4位計時器和實時時鐘兩個16位計時器(Timer counter和一個32位實時時鐘(RTC/BLOCKQUOTE/BLOCKQUOTE3. 調(diào)試工具及調(diào)試方法BLOCKQUOTEARM Project Manager (APM include ARM Debuger: 這個工具由ARM 提供主要是開發(fā)程序, 編程調(diào)試ARM 芯片, 有相當(dāng)不錯的開發(fā)環(huán)境和遠(yuǎn)端調(diào)試功能, 支持匯編和C. 它帶有一個ARM 自己的嵌入式操作系統(tǒng)arm Angel, 用戶可以在它的上面開發(fā)自己的嵌入式軟件, 不過這個操作系統(tǒng)不是實時多任務(wù)的./BLO

35、CKQUOTEBLOCKQUOTE通過計算機串口與處理器UART 相連, 設(shè)置計算機的超級終端 ( Hyper Terminal , 通過超級終端察看硬件情況(寄存器設(shè)置, 數(shù)據(jù)等 和程序運行情況, 當(dāng)然程序重要加入向UART 送出數(shù)據(jù)的指令, 用Beep 報警也是經(jīng)常用的. 這種調(diào)試方法是用于底層調(diào)試硬件, 找出硬件存在的問題.VxWorks 在Shell 不能正常運行前, 也是采取這種方法來調(diào)試程序, 不過一般不是硬件問題, 而是BSP 中存在的問題, 需要根據(jù)硬件, 修改BSP./BLOCKQUOTE4. arm7 編程要點及示例ARM 編程可參考程序示例 arm_Boot Flash

36、ROM驅(qū)動VxWorks image 裝入arm 的過程:BLOCKQUOTEarm7 有兩種運行模式, Boot 模式和 Normal 模式, Boot模式主要是把程序裝入(down load 或load Flash ROM中用的, Normal模式是一般運行程序用的.arm7 Boot 模式時, Flash 的地址是0x70000000片選型號是CS0 (Normal模式下,Flash 地址為0x00000000ARM7內(nèi)部有128byte 的BootROM 和2K 的SRAM ,當(dāng)需要Download VxWorks image時,ARM 啟動采用Boot 方式啟動運行存在128byte

37、 BootROM中的程序初始化ARM 內(nèi)部的COM 口,從COM 口接受數(shù)據(jù)到2K 的SRAM ,這2K 程序是用來真正Load VxWorks的,2K 程序Load 完畢后系統(tǒng)自動跳轉(zhuǎn)到這2K 程序執(zhí)行, 它的作用是再次初始化內(nèi)部的COM 口, 通過COM 口接受VxWorks 到DRAM ,然后由DRAM 寫入FLASH 。在主板2K SRAM運行的Boot Load程序執(zhí)行過程, 可參看程序示例中arm Boot Load程序?qū)懭胪戤吅螅袚Q到Normal 模式重新啟動系統(tǒng),系統(tǒng)自動跳到FLASH 0X00000000開始運 行VXWORKS 。用PC 機上的COM1與arm 內(nèi)部的UA

38、RT1(COM )通信來Download VxWorks。/BLOCKQUOTE主要管腳定義BLOCKQUOTE32條數(shù)據(jù)線: D0-D3128條地址線: A0-A27 little endian 定義, 相對應(yīng)數(shù)據(jù)排列 0 1 2 3 4 5 6-276條片選信號腳: CS0-CS5, 其實作用相當(dāng)于地址線 A28-A314個8位的PORT 口: PORT A, PORT B , PORT D主要用于外圍芯片信號的控制. PORT E有雙作用.例如 PORT A 控制鍵盤的行信號, PORT B 用于RS232, PORT D 用于控制MODEM, FPGA. 外部中斷信號EINT, EXT

39、FIQ.編程時要根據(jù)主板原理圖和硬件手冊進(jìn)行. BLOCKQUOTE看硬件圖紙, 該芯片和CPU 的那些管腳連結(jié). 特別是 PORT 口和片選線.查CPU 手冊, 得到PORT 口和該片選的硬件地址.編程: 用PORT 口直接對芯片操作, 如開, 關(guān),RESET 等, 用片選地址和芯片內(nèi)地址結(jié)合對該外圍芯片操作./BLOCKQUOTE/BLOCKQUOTEException vectors, 中斷向量表及中斷分配Vector 地址 BLOCKQUOTEException/BLOCKQUOTE Exception Mode Priority(1=High0x0 BLOCKQUOTEReset/B

40、LOCKQUOTE Svc 10x4 BLOCKQUOTEUndefined Instruction/BLOCKQUOTE Undef 60x8 BLOCKQUOTESoftware Interrupt/BLOCKQUOTE Svc 60xC BLOCKQUOTEPrefetch Abort/BLOCKQUOTE Abort 50x10 BLOCKQUOTEData Abort/BLOCKQUOTE Abort 20x14 BLOCKQUOTEReserved/BLOCKQUOTE Not applicable Not applicable0x18 BLOCKQUOTEInterrupt (I

41、RQ/BLOCKQUOTE irq 40x1C BLOCKQUOTEFast Interrupt (FIQ/BLOCKQUOTE Fiq 3BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE這個向量表必須要放置在系統(tǒng)地址0x00000000 (一般是邏輯地址, 即經(jīng)過MMU 映射后的地 址 處./BLOCKQUOTEBLOCKQUOTE一般是在這些地址上放跳轉(zhuǎn)指令 BL, 跳到相應(yīng)的地址空間執(zhí)行相應(yīng)的程序./BLOCKQUOTEBLOCKQUOTE如系統(tǒng)執(zhí)行從0x00000000 Reset開始, Reset 跳轉(zhuǎn)到某一地址開始運行操作系統(tǒng)./BLOCKQUOTEBLOCKQUOT

42、E/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 - Instruction fetch abortsLDR pc,DAbortV 10 - Data access abortsLDR pc,UnusedV 14 - Reserved (was

43、address exceptionLDR pc,IRQV 18 - IRQ interruptsLDR pc,FIQV 1C - FIQ interrupts/BLOCKQUOTE中斷號分配 (FIQ, IRQ中斷類型 中斷號Name說明FIQ 0 外部中斷 EXTFIQ 管腳 NEXT FIQ IRQ 5 外部中斷 EINT1 管腳 NEINT1IRQ 6 外部中斷 EINT2 管腳 NEINT2IRQ 7 外部中斷 EINT3 管腳 NEINT3 IRQ 12 內(nèi)部中斷 UTXINT1 UART1 TX FIFO 為空 BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE中斷號也

44、是寄存器INTMR 和INTSR 的位, 所以在arm 中中斷的編程要點是/BLOCKQUOTEBLOCKQUOTE看硬件圖紙, 該外設(shè)和CPU 的那一個管腳連結(jié).查CPU 手冊, 得到中斷號及INTMR,INTSR 的地址.編程/BLOCKQUOTEBLOCKQUOTE注: 如果不是寫底層driver, 只是在系統(tǒng)上層編程(如VxWorks, Linux 知道中斷號即可./BLOCKQUOTEBLOCKQUOTE程序示例(VxWorks: /BLOCKQUOTEBLOCKQUOTE/登記中斷號 5, 和相應(yīng)的中斷例程 ComISR./BLOCKQUOTEBLOCKQUOTEintConnec

45、t ( ( VOIDFUNCPTR * 5, ComISR, 0 /BLOCKQUOTEBLOCKQUOTE /使能這中斷/BLOCKQUOTEBLOCKQUOTE intEnable ( ( VOIDFUNCPTR * 5 ;/BLOCKQUOTEBLOCKQUOTE/BLOCKQUOTEBLOCKQUOTEARM Interrupts: arm processors implement fast and normal level of interrupt,signalled externally, synchronise interrupts before an exception is

46、raised. A fast interrupt requst (FIQ will desable subsequent normal and fast interrupt by setting the I and F bit in CPSR,and a normal interrup request(IRQ will disable subsequent normal interrupt by setting I bit in CPSR.計時器中斷編程過程BLOCKQUOTEarm7一般內(nèi)部有兩個16位計時器(Timer counter和一個32位實時時鐘(RTC,計時器中斷屬于IRQ 中斷, 這里以計時器1為例敘述一下中斷的編程過程設(shè)置interrup mask INTMR1寄存器 0x80000240 第8位TC1OI 計時器1為使能. 在0x800000300 計時器 1 的數(shù)據(jù)寄存器TC1D 寫入指定數(shù)據(jù), 這樣數(shù)據(jù)開始從這個給定的數(shù)開始遞減計數(shù), 計數(shù)遞減至 0 后, 會產(chǎn)生一個溢出underflow IRQ中斷請求, 中斷狀態(tài)寄存器INTSR1 0

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論