版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章嵌入式微處理器及ARM9
硬件開發(fā)平臺
2.l嵌入式微處理器2.2ARM9微處理器簡介2.1.1嵌入式微處理器的類型
嵌入式微處理器是指應用在嵌入式計算機系統(tǒng)中的微處理器。與通用計算機系統(tǒng)的CPU相比,嵌入式微處理器具有品種多、體積小、成本低、集成度高的特點。從1971年Intel公司推出第一塊微處理器芯片4004到今天,嵌入式微處理器已經(jīng)有30多年的發(fā)展歷史。2.l嵌入式微處理器如圖2-1所示,嵌入式硬件系統(tǒng)一般由嵌入式微處理器、存儲器和輸入/輸出部分組成。其中嵌入式微處理器是嵌入式硬件系統(tǒng)的核心,通常由三大部分組成:控制單元、算術(shù)邏輯單元和寄存器。圖2-1嵌入式硬件系統(tǒng)的基本結(jié)構(gòu)各部分的主要功能如下:
(1)控制單元:主要負責取指、譯碼和取操作數(shù)等基本操作,并發(fā)送主要的控制指令??刂茊卧邪▋蓚€重要的寄存器:程序計數(shù)器(PC)和指令寄存器(IR)。程序計數(shù)器用于記錄下一條程序指令在內(nèi)存中的位置,以便控制單元能到正確的內(nèi)存處取指;指令寄存器負責存放被控制單元所取的指令,通過譯碼,產(chǎn)生必要的控制信號送到算術(shù)邏輯單元完成相關(guān)的數(shù)據(jù)處理。
(2)算術(shù)邏輯單元:算術(shù)邏輯單元分為兩部分,一部分是算術(shù)運算單元,主要處理數(shù)值型數(shù)據(jù),完成數(shù)學運算,如加、減、乘、除或數(shù)值的比較;另一部分是邏輯運算單元,主要處理邏輯運算,如AND、OR、XOR或NOT等運算。
(3)寄存器:用于存儲暫時性的數(shù)據(jù),主要是由存儲器中所得到的數(shù)據(jù)(這些數(shù)據(jù)被送到算術(shù)邏輯單元中進行處理)和算術(shù)邏輯單元中處理好的數(shù)據(jù)。嵌入式微處理器的字長寬度可為4位、8位、16位、32位和64位。一般把16位及以下的稱為嵌入式微控制器,32位及以上的稱為嵌入式微處理器。
如果按集成度劃分,嵌入式微處理器系統(tǒng)可分為兩種:一種是微處理器內(nèi)部僅包含單純的中央處理器單元,稱為一般用途型微處理器;另一種則是將CPU、ROM、RAM及I/O等部件集成到同一個芯片上,稱為單芯片微控制器。如果按用途劃分,嵌入式微處理器可分為以下幾類:
(1)嵌入式微控制器(MCU),又稱為單片機。微控制器的片上外設(shè)資源一般比較豐富,適合于控制領(lǐng)域,因此稱為微控制器。微控制器芯片內(nèi)部集成有ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、看門狗、I/O、串行口、脈寬調(diào)制輸出(PWM)、A/D、D/A、Flash、EEPROM等各種必要功能和外設(shè)。和嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減小,從而使功耗和成本下降,可靠性提高。由于嵌入式微控制器低廉的價格、優(yōu)良的功能,因此品種和數(shù)量最多,比較有代表性的包括8051、MCS-251、MCS-96/196/296、C166/167、68K系列以及MCU8XC930/931、C540、C541,并且支持I2C、CAN-BUS、LCD及眾多專用嵌入式微控制器和兼容系列。目前嵌入式微控制器占嵌入式系統(tǒng)約70%的市場份額。
(2)嵌入式微處理器(EMPU),它由通用計算機中的CPU發(fā)展而來。它的特征是具有32位以上的處理器,較高的性能,當然其價格也相應較高。但與計算機CPU不同的是,在實際嵌入式應用中,EMPU只保留和嵌入式應用緊密相關(guān)的功能硬件,去除其他的冗余功能部分,這樣就可以最低的功耗和資源實現(xiàn)嵌入式應用的特殊要求。嵌入式微處理器與用于桌面計算機的CPU相比具有體積小、重量輕、功耗低、成本低及可靠性高的優(yōu)點。通常嵌入式微處理器把CPU、ROM、RAM及I/O等元件做到同一個芯片上,也稱為單板計算機。當前,主要的嵌入式微處理器有ARM、MIPS、POWERPC和基于X86的386EX等。
(3)嵌入式DSP處理器,是專門用于信號處理方面的處理器,其在系統(tǒng)結(jié)構(gòu)和指令算法方面進行了特殊設(shè)計,具有很高的編譯效率和指令執(zhí)行速度。在數(shù)字濾波、FFT、頻譜分析等各種儀器上,DSP獲得了大量的應用。
(4)嵌入式片上系統(tǒng)(SOC),是追求產(chǎn)品系統(tǒng)最大包容的集成器件。SOC最大的特點是成功實現(xiàn)了軟/硬件無縫結(jié)合,直接在處理器片內(nèi)嵌入操作系統(tǒng)的代碼模塊。而且SOC具有極高的綜合性,在一個硅片內(nèi)部運用VHDL等硬件描述語言,可實現(xiàn)一個復雜的系統(tǒng)。用戶不需要再像傳統(tǒng)的系統(tǒng)設(shè)計一樣,繪制龐大復雜的電路板,一點點地連接焊制,只需要使用精確的語言,綜合時序設(shè)計,直接在器件庫中調(diào)用各種通用處理器的標準,然后通過仿真,之后就可以直接交付芯片廠商進行生產(chǎn)。SOC的絕大部分系統(tǒng)構(gòu)件都是在系統(tǒng)內(nèi)部,整個系統(tǒng)就特別簡潔,不僅減小了系統(tǒng)的體積和功耗,而且提高了系統(tǒng)的可靠性,提高了設(shè)計生產(chǎn)效率。2.1.2典型32位ARM微處理器的結(jié)構(gòu)和特點
32位微處理器采用32位的地址和數(shù)據(jù)總線,其地址空間達到了4?G。目前主流的32位嵌入式微處理器系列主要有ARM系列、MIPS系列、PoweRPC系列等。屬于這些系列的嵌入式微處理器產(chǎn)品,有千種以上。
1.ARM概述
ARM(AdvancedRISCMachine)公司是一家專門從事芯片IP設(shè)計與授權(quán)業(yè)務的英國公司,其產(chǎn)品有ARM內(nèi)核以及外圍接口。ARM內(nèi)核是一種32位RISC微處理器,具有功耗低、性價比高和代碼密度高等特點。
ARM微處理器核技術(shù)廣泛用于便攜式通信產(chǎn)品、手持運算、多媒體和嵌入式解決方案等領(lǐng)域,已成為AISC標準。ARM處理器核是系統(tǒng)中的引擎,它從存儲器讀取ARM或Thumb的指令并執(zhí)行這些指令。ARM微處理器體系結(jié)構(gòu)目前被公認為是嵌入式應用領(lǐng)域領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。自誕生至今,ARM體系結(jié)構(gòu)發(fā)展并定義了7種不同的版本。從版本1到版本7,ARM體系的指令集功能不斷擴展。ARM處理器系列中的各種處理器,雖然在實現(xiàn)技術(shù)、應用場合和性能方面都不相同,但只要支持相同的ARM體系版本,那么基于它們的應用軟件就都是兼容的。目前基于ARM核的處理器有以下幾類:ARM7系列處理器;ARM9系列處理器,ARM9E系列處理器,ARM10E系列處理器,ARM11系列處理器,SecurCore系列處理器,OPtimoDE數(shù)據(jù)引擎內(nèi)核;MPCore多處理器系列處理器;Intel公司的StrongARM/XScale系列處理器。
目前,70%的移動電話、大量的游戲機、手持PC和機頂盒等都已采用了ARM處理器,許多一流的芯片廠商都是ARM的授權(quán)用戶,如Intel、三星等公司。
作為一種RISC體系結(jié)構(gòu)的微處理器,ARM處理器具有RISC體系結(jié)構(gòu)的典型特征,同時具有以下特點:●每條數(shù)據(jù)處理指令都控制算術(shù)邏輯單元ALU和移位器,以使ALU和移位器獲得最大的利用率。
●具有自動遞增和自動尋址模式,以優(yōu)化程序中的循環(huán)。
●可同時執(zhí)行Load和Store多條指令,以增加數(shù)據(jù)吞吐量。
●所有指令都可以條件執(zhí)行,以執(zhí)行吞吐量。
這些對基本RISC體系結(jié)構(gòu)的增強,使得ARM處理器可以在高性能、小代碼尺寸、低功耗和小芯片面積之間獲得良好的平衡。
2.ARM的數(shù)據(jù)類型
字(Word):在ARM體系結(jié)構(gòu)中,字的長度為32位,而在8位/16位處理器體系結(jié)構(gòu)中,字的長度一般為16位。
半字(Half-word):在ARM體系結(jié)構(gòu)中,半字的長度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長度一致。
字節(jié)(Byte):在ARM體系結(jié)構(gòu)和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長度均為8位。
3.ARM的運行模式
ARM處理器有7種運行模式,如表2-1所示。大多數(shù)應用程序在User模式下執(zhí)行,當特定的異常出現(xiàn)時,進入相應的6種異常模式之一。每種模式都有某些附加的寄存器保存相應的狀態(tài)。除User模式外,其他模式都被稱為特權(quán)模式,可以存取系統(tǒng)中的任何資源。
User模式下程序不能訪問某些受保護的資源,也不能直接改變CPU的模式,而只能通過異常的形式來改變CPU的當前運行模式。軟件可以控制CPU模式的改變,外部中斷也可以引起模式的改變。表2-1ARM處理器的7種運行模式
處理器模式說明用戶模式(User)正常程序執(zhí)行模式,用于應用程序異常模式(FIQ)快速中斷處理,用于支持高速數(shù)據(jù)傳送通道處理異常模式(IRQ)用于一般中斷處理異常模式(Supervisor)特權(quán)模式,用于操作系統(tǒng)處理異常模式(Abort)存儲器保護異常處理異常模式(Undefined)未定義指令異常處理系統(tǒng)模式(System)運行特權(quán)操作系統(tǒng)任務(ARMv4以上版本)
4.寄存器結(jié)構(gòu)
ARM微處理器共有37個32位寄存器,其中31個為通用寄存器,6個為狀態(tài)寄存器。但是這些寄存器不能被同時訪問,具體哪些寄存器是可編程訪問的,取決于微處理器的工作狀態(tài)及具體的運行模式。但在任何時候,通用寄存器R14~R0、程序計數(shù)器R15(或PC)、一個或兩個狀態(tài)寄存器都是可訪問的。
(1)?R0~R15。ARM中的通用寄存器是R0~R15(R15也是PC)。它們可以被劃分為以下三類:①未分組的寄存器R0~R7。對于所有的模式,R0~R7所對應的物理寄存器都是相同的。這8個寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對它們沒有作任何特殊的假設(shè),它們的功能都是等同的。在中斷或者異常處理程序中一般都需要對這幾個寄存器進行保存。②分組的寄存器R8~R14。程序訪問的物理寄存器取決于當前的處理器模式。若要訪問特定的物理寄存器而不依賴于當前的處理器模式,則要使用規(guī)定的名字。R8~R12有兩組物理寄存器:一組是FIQ模式;另一組是除FIQ以外的其他模式。R13~R14有6個組的物理寄存器,一組用于用戶模式和系統(tǒng)模式,其他5組分別用于5種異常模式。R13(也被稱為SP指針)被用做棧指針,通常在系統(tǒng)初始化時需要對所有模式的SP指針賦值;當CPU在不同的模式時,棧指針會被自動切換成相應模式下的值。R14有兩個用途:一是在調(diào)用子程序時用于保存調(diào)用返回地址;二是在發(fā)生異常時用于保存異常返回地址。③程序計數(shù)器R15(或PC)。R15雖然可以用作通用寄存器,但是有一些指令在使用R15時存在特殊限制,若不注意,執(zhí)行的結(jié)果將是不可預料的。
(2)?CPSR。CPSR(當前程序狀態(tài)寄存器)在所有的模式下都是可以讀/寫的。它主要包含條件標志、中斷標志、當前處理器的模式、其他的一些狀態(tài)和控制標志。
CPSR的格式如下:
①條件標志包括N、Z、C、V。
N表示Negative,負標志。
Z表示Zero,零標志。
C表示Carry,進位標志。
V表示overflow,溢出標志。
②中斷標志包括I和F。
I置1表示禁止IRQ中斷的響應,置0表示允許CPU響應IRQ中斷。
F置1表示禁止FIQ中斷的響應,置0表示允許CPU響應FIQ中斷。
③ARM/Thumb控制標志:T。
T置0表示執(zhí)行32位的ARM指令。
T置1表示執(zhí)行16位的Thumb指令。
④模式控制位M0~M4,見表2-2。表2-2模式控制位M0~M4
M[4:0]模式可用寄存器0b10000UserPC,R14~R0,CPSR0b10001FIQPC,R14_fiq~R8fiq,R7~R0,CPSR,SPSR_fiq0b10010IRQPC,R14_irq,R13_irq,R12~R0,CPSRSPSR_irq0b10011SupervisorPC,R14_svc,R13_svc,R12~R0,CPSRSPSR_svc0b10111AbortPC,R14_abt,R13_abt,R12~R0,CPSRSPSR_abt0b11011UndefinedPC,R14_und,R13_und,R12~R0,CPSRSPSR_und0b11111SystemPC,R14~R0,CPSR
5.指令集
CPU指令集是硬件和軟件之間的一個重要的分水嶺。根據(jù)分層的思想,指令集向上要支持編譯器,向下要方便實現(xiàn)硬件設(shè)計。ARM是典型的RISC體系,根據(jù)RISC的設(shè)計思想,其指令集的設(shè)計應該盡可能地簡單。和CISC體系相比,ARM可以通過一系列簡單的指令來實現(xiàn)復雜指令的功能。
ARM的指令集包括6種典型的指令:分支指令,如B、BL等;數(shù)據(jù)處理指令,如ADD、SUB、AND等;轉(zhuǎn)移指令,如MRS、MSR等;Load-Store數(shù)據(jù)移動指令,如LDR等;協(xié)處理器指令,如LDC、STC等;異常處理指令,如SWI等。
ARM指令集是一個非常優(yōu)秀的指令集,具有以下特點:
(1)所有ARM指令都是32位定長,在內(nèi)存中以4字節(jié)邊界保存(地址最后兩位為0),這樣方便譯碼電路和流水線的實現(xiàn)。ARM內(nèi)核一般也支持一種16位的指令集Thumb。Thumb指令集的功能是32位ARM指令集的功能子集,它在處理器中仍然要擴展為標準的32位ARM指令運行。用戶采用16位Thumb指令集最大的好處就是可以獲得更高的代碼密度和降低功耗。
(2)?Load-Store體系結(jié)構(gòu)。ARM指令集屬于RISC體系。RISC體系的特征是:一般指令只能把內(nèi)部寄存器和立即數(shù)作為操作數(shù),只有Load-StoRe類型的數(shù)據(jù)移動指令才可以訪問內(nèi)存,在內(nèi)存和寄存器之間轉(zhuǎn)移數(shù)據(jù)。
(3)由于硬件上有桶形(Barrel)移位器,因此ARM可以在一條指令中用一個指令周期完成一個移位操作和一個ALU(算術(shù)邏輯)操作。
(4)任何指令的高4位都是條件指示位,根據(jù)CPSR中的N、Z、C、V決定該指令是否執(zhí)行。這樣可以方便高級語言的編譯器設(shè)計,很容易實現(xiàn)分支和循環(huán)。
(5)具有功能很強的加載和存儲(Load-Store)多個寄存器的指令:LDM和STM。當發(fā)生過程調(diào)用或中斷處理時,只用一條指令就能把當前多個寄存器的內(nèi)容保護到內(nèi)存堆棧中。
6.異常
異常是由內(nèi)部或外部原因引起的。當異常發(fā)生時,CPU自動到指定的向量地址讀取指令或地址并且執(zhí)行。
對于X86CPU,當有異常發(fā)生時,CPU到指定的向量地址讀取要執(zhí)行的程序的地址,跳轉(zhuǎn)到相應的地址并執(zhí)行;而對于ARMCPU,當有異常發(fā)生時,CPU通過向量地址讀取指令并執(zhí)行,也就是說,ARM的向量地址存放的是一條指令(一般是一條跳轉(zhuǎn)指令)。
ARM將引起異常的類型分為7種,如表2-3所列。表2-3ARM的異常類型
異常種類模式優(yōu)先級一般向量地址高向量地址ResetSupervisor10x000000000xFFFF0000UndefinedInstructionUndefined60x000000040xFFFF0004SoftwareInterruptSupervisor60x000000080xFFFF0008PtefetchAbortAbort50x0000000C0xFFFF000CDataAbortAbort20x000000100xFFFF0010IRQ(interrupt)IRQ40x000000180xFFFF0018FIQ(fastinterrupt)FIQ30x0000001C0xFFFF001C
7.內(nèi)存和I/O地址
ARM的尋址空間是線性地址空間,最大為4?G。ARM支持大端和小端的內(nèi)存數(shù)據(jù)方式,可以通過硬件的方式設(shè)置端模式。
I/O端口的編址方法(即地址安排方式)有兩種:I/O映射編址和存儲器映射編址。
(1)?I/O映射編址。如圖2-2所示,I/O映射編址采用I/O端口與內(nèi)存單元分開編址,互不影響。I/O單元與內(nèi)存單元都有自己獨立的地址空間,通過專門的輸入指令(IN)和輸出指令(OUT)來完成I/O操作。其優(yōu)點是I/O單元不占用內(nèi)存空間,易區(qū)分I/O程序;缺點是只用I/O指令訪問I/O端口,功能有限且要采用專用I/O周期和專用I/O控制線,使微處理器復雜化。X86體系的微處理器大多采用I/O映射編址方式。
(2)存儲器映射編址。如圖2-3所示,存儲器映射編址采用I/O端口的地址與內(nèi)存地址統(tǒng)一編址方式,I/O單元與內(nèi)存單元共享同一地址空間。這種編址方式不區(qū)分存儲器地址空間和I/O端口地址空間,把所有的I/O端口都當作是存儲器的一個單元對待,每個接口芯片都安排一個或幾個與存儲器統(tǒng)一編號的地址號,也不設(shè)專門的輸入/輸出指令,所有傳送和訪問存儲器的指令都可用來對I/O端口操作。其優(yōu)點是可采用豐富的內(nèi)存操作指令訪問I/O單元,無需單獨的I/O地址譯碼電路,無需專用的I/O指令;缺點是外設(shè)占用內(nèi)存空間,不易區(qū)分I/O程序,ARM微處理器大多采用存儲器映射編碼方式。圖2-2I/O映射編碼方式圖2-3存儲器映射編碼方式2.2ARM9微處理器簡介目前市場上的主流ARM處理器都使用ARM7或ARM9內(nèi)核。本書所采用的博創(chuàng)公司開發(fā)平臺使用了基于ARM9核心的處理器,因此本節(jié)重點介紹三星S3C2410ARM9處理器。2.2.1ARM9與ARM7處理器的比較
與ARM7TDMI相比,ARM9TDMI核將處理器的功能顯著提高到更高、更強的水平。ARM9TDMI也支持Thumb指令集,并支持片上調(diào)試,最顯著的區(qū)別是流水線從3級增加到5級。ARM9使用5級流水線是受StrongARM流水線的啟發(fā)而設(shè)計的,并針對StrongARM的某些不足加以改進,從而獲得了更好的性能。ARM7的流水線操作如圖2-4所示。圖2-4ARM7的流水線操作到ARM7為止,上述的3級流水線性價比很高,隨著對性能的要求不斷提高,使用原有的3級流水線無法滿足要求,因此ARM9處理器使用了5級流水線,同時具有分開的指令和數(shù)據(jù)存儲器,減少了在每個時鐘周期內(nèi)必須完成的最大工作,進而允許使用更高的時鐘頻率。5級流水線具體如下:
取指:從存儲器中取出指令,并將其放入指令流水線。
譯碼:對指令進行譯碼。
執(zhí)行:把一個操作數(shù)移位,產(chǎn)生ALU的結(jié)果。緩沖/數(shù)據(jù):如果需要,則訪問數(shù)據(jù)存儲器;否則ALU的結(jié)果只是簡單地緩沖一個時鐘周期,以便所有的指令具有同樣的流水線流程。
回寫:將指令產(chǎn)生的結(jié)果回寫到寄存器堆,包括任何從存儲器中讀取的數(shù)據(jù)。
圖2-5比較了ARM7的3級流水線和ARM9的5級流水線。該圖顯示了處理器如何在增加的流水線之間重新分配,以使時鐘頻率在相同的工藝下得到提高。圖2-5ARM7和ARM9流水線操作對比
2.2.2三星S3C2410XARM9處理器寄存器詳解
本書所采用的硬件平臺是基于ARM體系結(jié)構(gòu),由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-NetARM2410-S實驗儀器。UP-NetARM2410-S的CPU為具有ARM920T內(nèi)核的三星S3c2410芯片,由于有MMU可以運行標準的ARM-LINUX內(nèi)核。UP-NetARM2410-S及相關(guān)產(chǎn)品的資料可以訪問博創(chuàng)公司的網(wǎng)站?
獲得。本節(jié)以UP-NetARM2410-S為例,詳細介紹S3C2410XARM9處理器寄存器。
UP-NetARM2410-S開發(fā)箱的硬件配置如表2-4所示。S3C2410結(jié)構(gòu)圖如圖2-6所示。
表2-4UP-NetARM2410-S的硬件配置
配置名稱型號說明CPUARM920T結(jié)構(gòu)芯片三星S3C2410X工作頻率203
MHzFlashSAMSUNGK9F120864MNANDSDRAMHY57V561620AT-H32M×2=64MEtherNet網(wǎng)卡AX8879610/100M自適應LCDLQ080V3DG018寸16位TFT觸摸屏SX-080-W4R-FBFM7843驅(qū)動USB接口4個HOST/1個DEVICE由AT43301構(gòu)成USBHUBUART/IrDA2個RS232,1個RS485,1個IrDA從處理器的UART2引出AD由S3C2410芯片引出3個電位器控制輸入AUDIOIIS總線,UDA1341芯片44.1?kHz音頻擴展卡插槽168PinEXPORT總線直接擴展GPS_GPRS擴展板SIMCOM的SIM300-E模塊支持雙道語音通信IDE/CF卡插座筆記本硬盤,CF卡PCMCIA和SD卡插座PS2PC鍵盤和鼠標由ATMEGA8單片機控制IC卡座AT24CXX系列由ATMEGA8單片機控制DC/STEP電機DC由PWM控制,STEP由74HC573控制CANBUS由
MCP2510和TJA1050構(gòu)成DAMAX504一個10位DAC端口調(diào)試接口JTAG14針、20針圖2-6S3C2410X芯片結(jié)構(gòu)
S3C2410272-FBGA封裝,如圖2-7所示。圖2-7S3C2410物理封裝
ARM920T核由ARM9TDMI、存儲管理單元(MMU)和高速緩存三部分組成。其中,MMU可以管理虛擬內(nèi)存,高速緩存由獨立的16?KB地址和16?KB數(shù)據(jù)高速Cache組成。ARM920T有兩個內(nèi)部協(xié)處理器:CP14和CP15。CP14用于調(diào)試控制,CP15用于存儲系統(tǒng)控制以及測試控制。
S3C2410X芯片集成了大量的功能單元,列舉如下:
(1)內(nèi)核采用1.8?V供電,存儲單元采用3.3?V獨立供電,外部IO采用3.3?V獨立供電,16?KB數(shù)據(jù)Cache,16?KB指令Cache,MMU。
(2)內(nèi)置外部存儲器控制器(SDRAM控制和芯片選擇邏輯)。
(3)?LCD控制器(最高4K色STN和256K彩色TFT),一個LCD專用DMA。
(4)?4路帶外部請求線的DMA。
(5)?3個通用異步串行端口,2通道SPI。
(6)一個多主IIC總線,一個IIS總線控制器。
(7)?SD主接口版本1.0和多媒體卡協(xié)議版本2.11兼容。
(8)?2個USBHost接口,一個USBDevice(VER1.1)接口。
(9)?4個PWM定時器和一個內(nèi)部定時器。
(10)看門狗定時器。
(11)?117個通用I/O。
(12)?24個外部中斷。
(13)電源控制模式:標準、慢速、休眠、掉電。
(14)?8通道10位ADC和觸摸屏接口。
(15)帶日歷功能的實時時鐘。
(16)芯片內(nèi)置PLL。
(17)?16/32位RISC體系結(jié)構(gòu),使用ARM920TCPU核的強大指令集。
(18)?ARM帶MMU的先進體系結(jié)構(gòu),支持WindowsCE、EPOC32、Linux。
(19)指令緩存(Cache)、數(shù)據(jù)緩存、寫緩沖和物理地址TAGRAM,減小了對主存儲器帶寬和性能的影響。
(20)?ARM920TCPU核支持ARM調(diào)試體系結(jié)構(gòu)。
(21)內(nèi)部先進的位控制器總線(AMBA2.0、AHB/APB)。系統(tǒng)管理方面的特點如下:
(1)小端/大端支持。
(2)地址空間:每個BANK為128?MB(全部為1?GB)。
(3)每個BANK可編程為8/16/32位數(shù)據(jù)總線。
(4)?BANK0~BANK6為固定起始地址。
(5)?BANK7可編程BANK的起始地址和大小。
(6)共有8個存儲器BANK。
(7)?6個存儲器BANK用于ROM、SRAM及其他。
(8)?2個存儲器BANK用于ROM、SRAM及同步DRAM。
(9)每個存儲器BANK可編程存取周期。
(10)支持等待信號,用以擴展總線周期。
(11)支持SDRAM掉電模式下的自刷新。
(12)支持不同類型的ROM,如用于啟動NOR/NANDFlash、EEPROM及其他。
在時鐘方面,S3C2410X芯片集成了一個具有日歷功能的RTC和具有PLL(MPLL和UPLL)的芯片時鐘發(fā)生器。MPLL產(chǎn)生主時鐘,能夠使處理器工作頻率最高達到203?MHz。這個工作頻率能夠使處理器輕松運行WinCE、Linux等操作系統(tǒng),以及進行較為復雜的信息處理。UPLL產(chǎn)生實現(xiàn)主從USB功能的時鐘。
S3C2410X將系統(tǒng)的存儲空間分成8組(BANK),每組的大小是128?MB,共1?GB。BANK0~BANK6的開始地址是固定的,用于ROM或SRAM。BANK6和BANK7用于ROM、SRAM或SDRAM,這兩個組可編程且大小相同。BANK7的開始地址是BANK6的結(jié)束地址,靈活可變。所有內(nèi)存塊的訪問周期都可編程。S3C2410X采用nGCS[7:0],8個通用片選信號選擇這些組。
S3C2410X支持從NANDFlash啟動,NANDFlash具有容量大、比NORFlash價格低等特點。系統(tǒng)采用NANDFlash與SDRAM組合,可以獲得非常高的性價比。S3C2410X具有三種啟動方式,可通過OM[1:0]管腳進行選擇:
OM[1:0]=00時處理器從NANDFlash啟動
OM[1:0]=01時處理器從16位ROM啟動
OM[1:0]=10時處理器從32位ROM啟動
用戶可以將引導代碼和操作系統(tǒng)鏡像存放在外部的NANDFlash中,并從NANDFlash啟動。當處理器在這種模式下電復位時,內(nèi)置的NANDFlash將訪問控制接口,并將引導代碼自動加載到內(nèi)部SRAM(此時該SRAM定位于起始地址空間0x00000000,容量為4?KB)并且運行。之后,SRAM中的引導程序?qū)⒉僮飨到y(tǒng)鏡像加載到SDRAM中,操作系統(tǒng)就能夠在SDRAM中運行。啟動完畢后,4?KB的啟動SRAM就可以用于其他用途。
如果從其他方式啟動,啟動ROM就要定位于內(nèi)存的起始地址空間0x00000000,處理器直接在ROM上運行啟動程序,而4?KB的啟動SRAM被定位于內(nèi)存地址的0x40000000處。
S3C2410X對于片內(nèi)的各個部件采用了獨立的電源供給方式:內(nèi)核采用1.8?V供電;存儲單元采用3.3?V獨立供電,對于一般SDRAM可以采用3.3?V,對于移動SDRAM可以采用VDD=1.8/2.5?V供電;VDDQ?=3.0/3.3?V供電;I/O采用獨立3.3?V供電。
1.內(nèi)存控制器
寄存器的狀態(tài)決定硬件如何工作,所以控制某個硬件時,一定要熟悉每個相關(guān)的寄存器。簡單而言,S3C2410X處理器的工作頻率可達到203?MHz,該頻率是通過寄存器配置獲得的。開發(fā)人員通過修改內(nèi)部寄存器的值,可以使S3C2410X工作在不同頻率下。
下面將列出S3C2410X處理器的一些寄存器,以及這些寄存器在軟件上的定義。
1)寄存器的設(shè)置
S3C2410X的內(nèi)存控制器為外部內(nèi)存訪問提供了內(nèi)存控制信號。
(1)總線寬度和等待控制寄存器見表2-5。表2-5總線寬度和等待控制寄存器
寄存器地址讀/寫說明復位后的值BWSCON0x48000000讀/寫總線寬度和等待控制寄存器0x000000
(2)組控制寄存器見表2-6。表2-6組控制寄存器
寄存器地址讀/寫說明復位后的值BANKCON00x48000004讀/寫B(tài)ANK0控制寄存器0x0700BANKCON10x48000008讀/寫B(tài)ANK1控制寄存器0x0700BANKCON20x4800000c讀/寫B(tài)ANK2控制寄存器0x0700BANKCON30x48000010讀/寫B(tài)ANK3控制寄存器0x0700BANKCON40x48000014讀/寫B(tài)ANK4控制寄存器0x0700BANKCON50x48000018讀/寫B(tài)ANK5控制寄存器0x0700BANKCON60x4800001c讀/寫B(tài)ANK6控制寄存器0x18008BANKCON70x48000020讀/寫B(tài)ANK7控制寄存器0x18008
(3)?REFRESH控制寄存器見表2-7。表2-7REFRESH控制寄存器寄存器地址讀/寫說明復位后的值REFRESH0x48000024讀/寫SDRAM控制寄存器0xac0000
(4)?BANKSIZE寄存器見表2-8。表2-8BANKSIZE寄存器寄存器地址讀/寫說明復位后的值BANKSIZE0x48000028讀/寫可變的組大小寄存器0x0(5)?SDRAM模式寄存器(MRSR)見表2-9。表2-9SDRAM模式寄存器寄存器地址讀/寫說明復位后的值MRSRB60x48000028讀/寫B(tài)ANK6的模式設(shè)置寄存器xxxMRSRB70x48000028讀/寫B(tài)ANK7的模式設(shè)置寄存器xxx
2)寄存器的定義
ViVi的s3c2410.h文件中定義了上述寄存器的值,具體如下:
/*MemoryController*/
#defineMEM_CTL_BASE0x48000000
#definebMEMCTL(Nb)__REGl(MEM_CTL_BASE+
(Nb))
/*Offset*/
#defineoBWSCON
0x00
/*R/W,Buswidthand
waitstatusctrlreg.*/#defineoBANKCON00x04
/*R/W,Bank0controlreg.*/
#defineoBANKCONl0x08
/*R/W,Banklcontrolreg.*/
#defineoBANKCON20x0C
/*R/W,Bank2controlfeg.*/
#defineoBANKCON30xl0
/*R/W,Bank3controlreg.*/
#defineoBANKCON40xl4/*R/W,Bank4controlreg.*/
#defineoBANKCON50xl8/*R/W,Bank5controlreg.*/
#defineoBANKCON60xlC/*R/W,Bank6controlreg.*/
#defineoBANKCON70x20/*R/W,Bank7controlreg.*/
#defineoREFRESH0x24/*R/W,SDRAMrefreshcontrolregister*/#defineoBANKSIZE0x28/*R/W,FlexibleBank
sizeregister*/
#defineoMRSRB60x2C/*R/W,Moderegisterset
registerBank6*/
#defineoMRSRB70x30/*R/W,ModCregisterset
registerBank7*/
/*Registers*/
#defineBWSCON bMEMCTL(oBWSCON)
#defineBANKCON0
bMEMCTL(oBANKCON0)
#defineBANKCON1bMEMCTL(oBANKCON1)
#defineBANKCON2
bMEMCTL(oBANKCON2)
#defineBANKCON3
bMEMCTL(oBANKCON3)#defineBANKCON4 bMEMCTL(oBANKCON4)
#defineBANKCON5 bMEMCTL(oBANKCON5)
#defineBANKCON6 bMEMCTL(oBANKCON6)
#defineBANKCON7 bMEMCTL(oBANKCON7)
#defineREFRESH bMEMCTL(oREFRESH)
#defineBANKSIZE bMEMCTL(oBANKSIZE)
#defineMRSRB6 bMEMCTL(oMRSRB6)
#defineMRSRB7 bMEMCTL(oMRSRB7)
2.NANDFlash控制器
S3C2410X處理器的啟動代碼可以在外部的NANDFlash上執(zhí)行。啟動時,NANDFlash的前4?KB(地址為0x00000000,OM[1:0]=0)將被裝載到SDRAM中被稱做Steppingstone的地址中,然后開始執(zhí)行這段代碼。啟動以后,該4?KB的空間可用做其他用途。訪問流程如圖2-8所示。圖2-8NANDFlash訪問流程自動啟動模式如下:
●復位。
●把NANDFlash的前4?KB復制到Steppingstone處。
●?Steppingstone映射到nGCS0。
●?CPU執(zhí)行Steppingstone中的代碼。
NANDFlash模式如下:
●通過NFCONF寄存器設(shè)置NANDFlash配置。
●把NANDFlash命令寫入NFCMD寄存器。
●把NANDFlash地址寫入NFADDR寄存器。
●通過NFSTAT寄存器檢測NANDFlash狀態(tài)時讀/寫數(shù)據(jù)。讀操作以前或者編程操作以后應該檢查R/nB信號。
NANDFlash的內(nèi)存映射如圖2-9所示。圖2-9NANDFlash的內(nèi)存映射
1)寄存器的設(shè)置
(1)?NANDFlash配置寄存器見表2-10。表2-10NANDFlash配置寄存器寄存器地址讀/寫說明復位后的值MRSRB60x48000028讀/寫B(tài)ANK6的模式設(shè)置寄存器xxxMRSRB70x48000028讀/寫B(tài)ANK7的模式設(shè)置寄存器xxx
(2)?NANDFlash命令設(shè)置寄存器見表2-11。表2-11NANDFlash命令設(shè)置寄存器寄存器地址讀/寫說明復位后的值NFCMD0x4E000004讀/寫設(shè)置NANDFlash命令—(3)?NANDFlash地址設(shè)置寄存器見表2-12。表2-12NANDFlash地址設(shè)置寄存器寄存器地址讀/寫說明復位后的值NFADDR0x4E000008讀/寫設(shè)置NANDFlash地址—
(4)?NANDFlash數(shù)據(jù)寄存器見表2-13。表2-13NANDFlash數(shù)據(jù)寄存器寄存器地址讀/寫說明復位后的值NFDATA0x4E00000c讀/寫NANDFlash數(shù)據(jù)寄存器—
(5)?NANDFlash操作狀態(tài)寄存器見表2-14。表2-14NANDFlash操作狀態(tài)寄存器寄存器地址讀/寫說明復位后的值NFSRAT0x4E000010讀/寫NANDFlash操作狀態(tài)—
(6)?NANDFlashECC寄存器見表2-15。表2-15NANDFlashECC寄存器寄存器地址讀/寫說明復位后的值NFECC0x4E000014讀/寫NANDFlashECC寄存器—
2)寄存器的定義
和NANDFlash相關(guān)的寄存器定義在\vivi-srcVnclude
\s3c2410.h文件中(如沒有特別指出,后面提到的S3C2410H就是指該目錄下的s3c2410.h文件),具體如下:
#definebNAND_CTL(Nb)_REG(0x4e00000+(Nb))
#defineNFCONF bNAND_CTL(0x00)
#defineNFCMD bNAND_CTL(0x04)
#defineNFADDR bNAND_CTL(0x08)
#defineNFDATA bNAND_CTL(0x0c)
#defineNFSTAT bNAND_CTL(0x10)
#defineNFECC bNAND_CTL(0x14)
3.時鐘和電源管理
S3C2410X可以生成三種時鐘信號,分別是CPU使用的FCLK、AHB總線使用的HCLK和APB總線使用的PCLK。同時,S3C2410X有兩個鎖相環(huán),一個用于前面提到的FCLK、HCLK和PCLK,稱為MPLL;另一個用于USB設(shè)備,稱為UPLL。
1)?HCLK、PCLK和FCLK的使用
S3C2410X支持HCLK、PCLK和FCLK的分頻選擇,其比率是通過HDIVN、PDIVN寄存器控制的,見表2-16。表2-16使用HCLK、PCLK和FCLK
HDIVNPDIVNFCLKHCLKPCLK比率00FCLKFCLKFCLK1∶1∶1(默認值)01FCLKFCLKFCLK/21∶1∶210FCLKFCLK/2FCLK/21∶2∶211FCLKFCLK/2FCLK/41∶2∶4(推薦值)
2)時鐘源的選擇
時鐘源的選擇見表2-17表2-17時鐘源的選擇
0M[3:2]MPLL狀態(tài)UPLL狀態(tài)主時鐘源USB時鐘源00ONONCrystalCrystal01ONONCrystalEXTCLK10ONONEXTCLKCrystal11ONONEXTCLKEXTCLK
S3C2410X通過四種電源管理模式有效地控制功耗。這四種模式分別是NORMAL模式、SLOW模式、IDLE模式和POWER_OFF模式。這四種模式的轉(zhuǎn)換關(guān)系如圖2-10所示。嵌入式產(chǎn)品對功耗極為敏感,特別對于手持設(shè)備來說更是如此。系統(tǒng)的功耗可以通過電源模式變化獲得很好的控制,因此掌握處理器的電源模式轉(zhuǎn)換非常重要。電源模式可以通過手冊查到,其轉(zhuǎn)換條件可以通過軟件進行控制。一個典型的例子是手機屏幕背光:若5?s內(nèi)不按任何鍵,則關(guān)閉顯示屏的背光。圖2-10S3C2410X的電源管理模式轉(zhuǎn)換關(guān)系圖
3)寄存器的設(shè)置
(l)?LOCK計數(shù)寄存器見表2-18。表2-18LOCK計數(shù)寄存器
寄存器地址讀/寫說明復位后的值LOCKTIME0x4C000000讀/寫PLL計數(shù)器0x00FFFFFF
(2)鎖相環(huán)控制寄存器見表2-19。表2-19鎖相環(huán)控制寄存器寄存器地址讀/寫說明復位后的值MPLLCON0x4C000004讀/寫MPLL的配置寄存器0x0005C080UPLLCON0x4C000008讀/寫UPLL的配置寄存器0x00028080
(3)時鐘控制寄存器見表2-20。表2-20時鐘控制寄存器寄存器地址讀/寫說明復位后的值CLKCON0x4C00000C讀/寫時鐘信號生成的控制寄存器0x7FFF0
(4)慢時鐘控制寄存器見表2-21。表2-21慢時鐘控制寄存器寄存器地址讀/寫說明復位后的值CLKSLOW0x4C000010讀/寫SLOW時鐘的控制寄存器0x00000004
(5)時鐘分頻控制寄存器見表2-22表2-22時鐘分頻控制寄存器寄存器地址讀/寫說明復位后的值CLKDIVN0x4C000014讀/寫時鐘分頻的控制寄存器0x00000000
4)寄存器的定義
和時鐘、電源管理相關(guān)的寄存器定義在s3c2410.h文件中,具體如下:
/*ClockandPowerManagement*/
#defineCLK_CTL_BASE0x4C000000
#definebCLKCTL(Nb)
_REGl(CLK_CTL_BASE
+(Nb))
/*Offset*/
#defineoLOCKTIME
0x00/*R/W,PLLlock
timecountregister*/#defineoMPLLCON0x04/*R/W,MPLLconflguration
register*/
#defineoUPLLCON0x08/*R/W,UPLLconfiguration
register*/
#defineoCLKCON0x0C/*R/W,Clockgenerator
controlreg.*/
#defineoCLKSLOW0x10/*R/W,SlowclockcontrOl
register*/
#defineoCLKDIVN0x14/*R/W,Clockdividercontrol
*/
/*Registers*/
#defineLOCKTIME bCLKCTL(oLOCKTIME)
#defineMPLLCON bCLKCTL(oMPLLCON)
#defineUPLLCON bCLKCTL(oUPLLCON)
#defineCLKCON bCLKCTL(oCLKCON)
#defineCLKSLOW bCLKCTL(oCLKSLOW)
#defineCLKDIVN bCLKCTL(oCLKDIVN)
4.DMA
S3C2410X支持四通道DMA控制器。使用DMA的最大好處是無須CPU的干預就可以進行數(shù)據(jù)傳輸。DMA操作可以通過軟件或者硬件進行初始化。
1)?DMA通道的請求源
DMA通道的請求源見表2-23。表2-23DMA通道的請求源
Source0Source1Source2Source3Source4通道0nXDREQ0UART0SDITimerUSB設(shè)備EP1通道1nXDREQ1UART1I2SSDISPI0USB設(shè)備EP2通道2I2SSDOI2SSDISDITimerUSB設(shè)備EP3通道3UART2SDISDI1TimerUSB設(shè)備EP4表中,nXDREQ0和nXDREQ1代表兩個外部源,I2SSDO和I2SSDI分別代表IIS的傳輸和發(fā)送。
2)?DMA寄存器的設(shè)置
每一個DMA通道有9個控制寄存器(4個通道共計36個寄存器),6個用來控制DMA傳輸,其他3個用來監(jiān)視DMA控制器的狀態(tài)。
(1)?DMA初始化源寄存器見表2-24。表2-24DMA初始化源寄存器
寄存器地址讀/寫說明復位后的值DISRC00x4b000000讀/寫DMA0初始化源寄存器0x00000000DISRC10x4b000040讀/寫DMA1初始化源寄存器0x00000000DISRC20x4b000080讀/寫DMA2初始化源寄存器0x00000000DISRC30x4b0000c0讀/寫DMA3初始化源寄存器0x00000000
(2)?DMA初始化源控制寄存器見表2-25。表2-25DMA初始化源控制寄存器寄存器地址讀/寫說明復位后的值DISRCC00x4b000004讀/寫DMA0初始化源控制寄存器0x00000000DISRCC10x4b000044讀/寫DMA1初始化源控制寄存器0x00000000DISRCC20x4b000084讀/寫DMA2初始化源控制寄存器0x00000000DISRCC30x4b0000c4讀/寫DMA3初始化源控制寄存器0x00000000
(3)?DMA初始化目的寄存器見表2-26。表2-26DMA初始化目的寄存器寄存器地址讀/寫說明復位后的值DIDST00x4b000008讀/寫DMA0初始化目的寄存器0x00000000DIDST10x4b000048讀/寫DMA1初始化目的寄存器0x00000000DIDST20x4b000088讀/寫DMA2初始化目的寄存器0x00000000DIDST30x4b0000c8讀/寫DMA3初始化目的寄存器0x00000000
(4)?DMA初始化目的控制寄存器見表2-27。表2-27DMA初始化目的控制寄存器寄存器地址讀/寫說明復位后的值DIDSTC00x4b00000c讀/寫DMA0初始化目的控制寄存器0x00000000DIDSTC10x4b00004c讀/寫DMA1初始化目的控制寄存器0x00000000DIDSTC20x4b00008c讀/寫DMA2初始化目的控制寄存器0x00000000DIDSTC30x4b0000cc讀/寫DMA3初始化目的控制寄存器0x00000000
(5)?DMA控制寄存器見表2-28。表2-28DMA控制寄存器寄存器地址讀/寫說明復位后的值DCON00x4b000010讀/寫DMA0控制寄存器0x00000000DCON10x4b000050讀/寫DMA1控制寄存器0x00000000DCON20x4b000090讀/寫DMA2控制寄存器0x00000000DCON30x4b0000d0讀/寫DMA3控制寄存器0x00000000
(6)?DMA狀態(tài)寄存器見表2-29。表2-29DMA狀態(tài)寄存器寄存器地址讀/寫說明復位后的值DSTAT00x4b000014讀DMA0計數(shù)寄存器000000hDSTAT10x4b000054讀DMA1計數(shù)寄存器000000hDSTAT20x4b000094讀DMA2計數(shù)寄存器000000hDSTAT30x4b0000d4讀DMA3計數(shù)寄存器000000h
(7)?DMA通用源寄存器見表2-30表2-30DMA通用源寄存器寄存器地址讀/寫說明復位后的值DCSRC00x4b000018讀DMA0通用源寄存器0x00000000DCSRC10x4b000058讀DMA1通用源寄存器0x00000000DCSRC20x4b000098讀DMA2通用源寄存器0x00000000DCSRC30x4b0000d8讀DMA3通用源寄存器0x00000000
(8)?DMA通用目的寄存器見表2-31。表2-31DMA通用目的寄存器寄存器地址讀/寫說明復位后的值DCDST00x4b00001c讀DMA0通用目的寄存器0x00000000DCDST10x4b00005c讀DMA1通用目的寄存器0x00000000DCDST20x4b00009c讀DMA2通用目的寄存器0x00000000DCDST30x4b0000dc讀DMA3通用目的寄存器0x00000000
(9)?DMA掩碼觸發(fā)寄存器見表2-32。表2-32DMA掩碼觸發(fā)寄存器寄存器地址讀/寫說明復位后的值DMASKTRIG00x4b000020讀/寫DMA0掩碼觸發(fā)寄存器000DMASKTRIG10x4b000060讀/寫DMA1掩碼觸發(fā)寄存器000DMASKTRIG20x4b0000a0讀/寫DMA2掩碼觸發(fā)寄存器000DMASKTRIG30x4b0000e0讀/寫DMA3掩碼觸發(fā)寄存器000
3)寄存器的定義
和DMA相關(guān)的寄存器定義在\include\asm-ARM\arch-s3c2410\s3c2410.h文件中,具體如下:
/*DMA*/
#defineDMA_CTL_BASE0x4b000000
#definebDMA_CTL(Nb,x)
_REG(DMA_CTL_BASE
+(0x40*Nb)+(x))
/*DMAchannel0*/
#defineDISRC0
bDMA_CTL(0,0x00)
#defineDlSRCC0bDMA_CTL(0,0x04)
#defineDIDST0 bDMA_CTL(0,0x08)
#defineDIDSTC0bDMA_CTL(0,0x0C)
#defineDCON0 bDMA_CTL(0,0x10)
#defineDSTAT0bDMA_CTL(0,0x14)
#defineDCSRC0bDMA_CTL(0,0x18)
#defineDCDST0bDMA_CTL(0,0x1C)
#defineDMTRIG0bDMA_CTL(0,0x20)
/*DMAchannell*/
#defineDISRC1 bDMA_CTL(1,0x00)
#defineDlSRCC1 bDMA_CTL(1,0x04)
#defineDIDST1 bDMA_CTL(1,0x08)
#defineDIDSTC1 bDMA_CTL(1,0x0C)
#defineDCON1 bDMA_CTL(1,0x10)
#defineDSTAT1 bDMA_CTL(1,0x14)
#defineDCSRC1 bDMA_CTL(1,0x18)
#defineDCDST1 bDMA_CTL(1,0x1C)
#defineDMTRIG1 bDMA_CTL(1,0x20)
/*DMAchannel2*/
#defineDISRC2 bDMA_CTL(2,0x00)
#defineDlSRCC2 bDMA_CTL(2,0x04)
#defineDIDST2 bDMA_CTL(2,0x08)
#defineDIDSTC2 bDMA_CTL(2,0x0C)
#defineDCON2 bDMA_CTL(2,0x10)
#defineDSTAT2 bDMA_CTL(2,0x14)
#defineDCSRC2 bDMA_CTL(2,0x18)
#defineDCDST2 bDMA_CTL(2,0x1C)
#defineDMTRIG2 bDMA_CTL(21,0x20)
/*DMAchannel3*/
#defineDISRC3 bDMA_CTL(3,0x00)
#defineDlSRCC3 bDMA_CTL(3,0x04)
#defineDIDST3 bDMA_CTL(3,0x08)
#defineDIDSTC3 bDMA_CTL(3,0x0C)
#defineDCON3 bDMA_CTL(3,0x10)
#defineDSTAT3 bDMA_CTL(3,0x14)
#defineDCSRC3 bDMA_CTL(3,0x18)
#defineDCDST3 bDMA_CTL(3,0x1C)
#defineDMTRIG3 bDMA_CTL(3,0x20)
5.輸入/輸出口
S3C2410X有117個通用I/O口(PORTA~PORTH)。這些I/O口為系統(tǒng)編程提供了極大的方便。
l)寄存器的設(shè)置
(1)?PORTA控制寄存器見表2-33。表2-33PORTA控制寄存器
寄存器地址讀/寫說明復位后的值GPACON0x56000000讀/寫配置PORTA的管腳0x7FFFFFGPADA10x56000004讀/寫PORTA數(shù)據(jù)寄存器未定義保留0x56000008—保留未定義保留0x5600000c—保留未定義
(2)?PORTB控制寄存器見表2-34。表2-34PORTB控制寄存器寄存器地址讀/寫說明復位后的值GPBCON0x56000010讀/寫配置PORTB的管腳0x0GPBDAT0x56000014讀/寫PORTB數(shù)據(jù)寄存器未定義GPBUP0x56000018讀/寫禁止PORTB上拉0x0保留0x5600001c—保留未定義
(3)?PORTC控制寄存器見表2-35。表2-35PORTC控制寄存器寄存器地址讀/寫說明復位后的值GPCCON0x56000020讀/寫配置PORTC的管腳0x0GPCDAT0x56000024讀/寫PORTC數(shù)據(jù)寄存器未定義GPCUP0x56000028讀/寫禁止PORTC上拉0x0保留0x5600002c—保留未定義
(4)?PORTD控制寄存器見表2-36表2-36PORTD控制寄存器寄存器地址讀/寫說明復位后的值GPECON0x56000040讀/寫配置PORTE的管腳0x0GPEDAT0x56000044讀/寫PORTE數(shù)據(jù)寄存器未定義GPEUP0x56000048讀/寫禁止PORTE上拉0X0保留0x5600004c—保留未定義
(5)?PORTE控制寄存器見表2-37表2-37PORTE控制寄存器寄存器地址讀/寫說明復位后的值GPECON0x56000040讀/寫配置PORTE的管腳0x0GPEDAT0x56000044讀/寫PORTE數(shù)據(jù)寄存器未定義GPEUP0x56000048讀/寫禁止PORTE上拉0X0保留0x5600004c—保留未定義
(6)?PORTF控制寄存器見表2-38表2-38PORTF控制寄存器寄存器地址讀/寫說明復位后的值GPFCON0x56000050讀/寫配置PORTF的管腳0x0GPFDAT0x56000054讀/寫PORTF數(shù)據(jù)寄存器未定義GPFUP0x56000058讀/寫禁止PORTF上拉0X0保留0x5600005c—保留未定義
(7)?PORTG控制寄存器見表2-39。表2-39PORTG控制寄存器寄存器地址讀/寫說明復位后的值GPGCON0x56000060讀/寫配置PORTG的管腳0x0GPGDAT0x56000064讀/寫PORTG數(shù)據(jù)寄存器未定義GPGUP0x56000068讀/寫禁止PORTG上拉0X0保留0x5600006c—保留未定義
(8)?PORTH控制寄存器見表2-40。表2-40PORTH控制寄存器寄存器地址讀/寫說明復位后的值GPHCON0x56000070讀/寫配置PORTH的管腳0x0GPHDAT0x56000074讀/寫PORTH數(shù)據(jù)寄存器未定義GPHUP0x56000078讀/寫禁止PORTH上拉0X0保留0x5600007c—保留未定義
(9)其他控制寄存器見表2-41。表2-41其他控制寄存器寄存器地址讀/寫說明復位后的值MISCCR0x56000080讀/寫其他0x10330
(10)?DCLK控制寄存器見表2-42。表2-42DCLK控制寄存器寄存器地址讀/寫說明復位后的值DCLKCON0x56000084讀/寫DCLK0/1寄存器0x0
(11)外部中斷控制寄存器見表2-43。表2-43外部中斷控制寄存器寄存器地址讀/寫說明復位后的值EXTINT00x56000088讀/寫外部中斷控制寄存器00x0EXTINT10x5600008c讀/寫外部中斷控制寄存器10x0EXTINT20x56000090讀/寫外部中斷控制寄存器20x0
(l2)外部中斷過濾寄存器見表2-44。表2-44外部中斷過濾寄存器寄存器地址讀/寫說明復位后的值EINTF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特色單車課程設(shè)計
- 早教保齡球課程設(shè)計
- 物流網(wǎng)上課程設(shè)計
- 最簡單的數(shù)電課程設(shè)計
- 機械原理課程設(shè)計汽車
- 數(shù)控課程設(shè)計
- 水閘課程設(shè)計版式
- 淘寶代課程設(shè)計
- 電影網(wǎng)站課程設(shè)計
- 甲醇水換熱器課程設(shè)計
- 壓力容器安全技術(shù)規(guī)程
- 藥品上量實用
- 白疕(銀屑?。┲嗅t(yī)護理效果評價表
- GB/T 17129-1997無色光學玻璃化學穩(wěn)定性試驗方法粉末法
- GB 3452.1-1992液壓氣動用O形橡膠密封圈尺寸系列及公差
- 保潔人員院感培訓完整版課件
- 國家開放大學電大《藥物化學》期末題庫及答案
- 電工二級技師測試題與答案
- 養(yǎng)老機構(gòu)公建民營合同
- 綜合計算工時工作制實施方案42620
- 重力學:第二章 地球正常重力場
評論
0/150
提交評論