第4講GPIO接口_第1頁(yè)
第4講GPIO接口_第2頁(yè)
第4講GPIO接口_第3頁(yè)
第4講GPIO接口_第4頁(yè)
第4講GPIO接口_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)類型 l 字節(jié)型數(shù)據(jù)(字節(jié)型數(shù)據(jù)(ByteByte):):數(shù)據(jù)寬度為8bits l 半字?jǐn)?shù)據(jù)類型(半字?jǐn)?shù)據(jù)類型(HalfWordHalfWord):):數(shù)據(jù)寬度為16bits,存取式必須以2字節(jié)對(duì)齊的方式l 字?jǐn)?shù)據(jù)類型(字?jǐn)?shù)據(jù)類型(WordWord):):數(shù)據(jù)寬度為32bits,存取式必須以4字節(jié)對(duì)齊的方式 ARM微處理器:CPU模式(processor mode)CPU模式的轉(zhuǎn)變:l軟件控制l異常l外部中斷ARM微處理器:CPU模式User模式模式程序不能訪問(wèn)有些受保護(hù)的資源程序不能訪問(wèn)有些受保護(hù)的資源只能通過(guò)異常的形式來(lái)改變只能通過(guò)異常的形式來(lái)改變CPU的當(dāng)前運(yùn)行模式的當(dāng)前運(yùn)行模式特權(quán)

2、模式特權(quán)模式可以存取可以存取系統(tǒng)中的系統(tǒng)中的任何資源任何資源System模式模式與與User模式的運(yùn)行環(huán)境一樣模式的運(yùn)行環(huán)境一樣但是它可以不受任何限制的訪問(wèn)任何資源但是它可以不受任何限制的訪問(wèn)任何資源該模式主要用于運(yùn)行系統(tǒng)中的一些該模式主要用于運(yùn)行系統(tǒng)中的一些特權(quán)任務(wù)特權(quán)任務(wù)FIQ模式模式IRQ模式模式Supervisor模式模式Abort模式模式Undefined模式模式異常模式異常模式:主要是在:主要是在外部中外部中斷斷或者程序執(zhí)行或者程序執(zhí)行非法操作非法操作時(shí)時(shí)會(huì)觸發(fā)會(huì)觸發(fā)ARM微處理器:處理器工作狀態(tài)(PROCESSOR OPERATING STATES)處理器有兩種工作狀態(tài):lARM

3、:32位,執(zhí)行字對(duì)準(zhǔn)的ARM指令lThumb:16位,執(zhí)行半字對(duì)準(zhǔn)的Thumb指令A(yù)RM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容ARM微處理器:處理器工作狀態(tài)進(jìn)入Thumb狀態(tài):l執(zhí)行BX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位0)為1。l在Thumb狀態(tài)進(jìn)入異常(IRQ, FIQ, UNDEF, ABORT,SWI etc.),當(dāng)異常處理返回時(shí)自動(dòng)轉(zhuǎn)換到Thumb狀態(tài)進(jìn)入ARM狀態(tài):l執(zhí)行BX指令,并設(shè)置操作數(shù)寄存器的狀態(tài)(位0)為0。l進(jìn)入異常時(shí),將PC放入異常模式鏈接寄存器中,從異常向量地址開始執(zhí)行也可進(jìn)入ARM狀態(tài)ARM微處理器:寄存器ARM處理器有37個(gè)寄存器l 31個(gè)通

4、用寄存器:程序計(jì)數(shù)器、堆棧及其他個(gè)通用寄存器:程序計(jì)數(shù)器、堆棧及其他通用寄存器通用寄存器l 6個(gè)狀態(tài)寄存器個(gè)狀態(tài)寄存器這些寄存器不能同時(shí)看到不同的處理器狀態(tài)和工作模式確定哪些寄存器是對(duì)編程者是可見的ARM微處理器: ARM State寄存器ARM微處理器: Thumb State寄存器ARM State 與Thumb State寄存器關(guān)系A(chǔ)RM微處理器:通用寄存器通用寄存器是R0-R15的寄存器,分為三類 l 沒(méi)有對(duì)應(yīng)影子寄存器的寄存器沒(méi)有對(duì)應(yīng)影子寄存器的寄存器R0-R7 l 有對(duì)應(yīng)影子寄存器的寄存器有對(duì)應(yīng)影子寄存器的寄存器R8-R14l 程序計(jì)數(shù)器程序計(jì)數(shù)器R15 (或者或者PC) 影子寄存

5、器是指該寄存器在不同的模式下對(duì)應(yīng)的物理寄存器ARM微處理器:通用寄存器R0-R7l所有模式下,所有模式下,R0-R7所對(duì)應(yīng)的所對(duì)應(yīng)的物理寄存器物理寄存器都都是相同的是相同的 l這八個(gè)寄存器是真正意義上的通用寄存器,這八個(gè)寄存器是真正意義上的通用寄存器,ARM體系結(jié)構(gòu)中對(duì)它們沒(méi)有作任何特殊的假體系結(jié)構(gòu)中對(duì)它們沒(méi)有作任何特殊的假設(shè),它們的功能都是等同的。設(shè),它們的功能都是等同的。l在中斷或者異常處理程序中一般都需要對(duì)這幾在中斷或者異常處理程序中一般都需要對(duì)這幾個(gè)寄存器進(jìn)行保存。個(gè)寄存器進(jìn)行保存。ARM微處理器:通用寄存器R8-R14l訪問(wèn)的物理寄存器取決于當(dāng)前的處理器模式,若要訪問(wèn)特定的物理寄存器

6、而不依賴當(dāng)前的處理器模式,則要使用規(guī)定的名字。 lR8-R12各有兩組物理寄存器:一組為FIQ模式,另一組是除FIQ以外的其他模式。lR13-R14各有6個(gè)分組的物理寄存器,一個(gè)用于用戶模式和系統(tǒng)模式,其他5個(gè)分別用于5種異常模式。lR13(也被稱為SP指針)被用作棧指針棧指針,通常在系統(tǒng)初始化時(shí)需要對(duì)所有模式下的SP指針賦值,當(dāng)CPU在不同的模式時(shí)棧指針會(huì)被自動(dòng)切換成相應(yīng)模式下的值。lR14有兩個(gè)用途,一是在調(diào)用子程序時(shí)用于保存調(diào)用返回地址調(diào)用子程序時(shí)用于保存調(diào)用返回地址,二是在發(fā)生異常時(shí)用于保存異常返回地址發(fā)生異常時(shí)用于保存異常返回地址。ARM微處理器:通用寄存器R15l用作程序計(jì)數(shù)器用作

7、程序計(jì)數(shù)器(PC),可以被讀寫可以被讀寫lARM state: bits 1:0為為0,bits31:2即為即為 PC. lTHUMB state:bit 0為為0,bits31:1即為即為 PCARM微處理器:程序狀態(tài)寄存器CPSR(當(dāng)前程序狀態(tài)寄存器)在所有的模式下都是可以讀寫的,它主要包含:l條件標(biāo)志條件標(biāo)志l中斷使能標(biāo)志中斷使能標(biāo)志l當(dāng)前處理器的模式當(dāng)前處理器的模式l其它的一些狀態(tài)和控制標(biāo)志其它的一些狀態(tài)和控制標(biāo)志ARM微處理器:程序狀態(tài)寄存器置0表示執(zhí)行32bit的ARM指令置1表示執(zhí)行16bit的Thumb指令 NegativeZeroCarryOverflowIRQ中斷的響應(yīng)中斷

8、的響應(yīng):置置1:禁止響應(yīng):禁止響應(yīng)置置0:允許響應(yīng):允許響應(yīng)FIQ中斷的響應(yīng)中斷的響應(yīng):置置1:禁止響應(yīng):禁止響應(yīng)置置0:允許響應(yīng):允許響應(yīng)條件標(biāo)志條件標(biāo)志模式控制位模式控制位ARM/Thumb控制標(biāo)志控制標(biāo)志中斷標(biāo)志中斷標(biāo)志ARM微處理器:程序狀態(tài)寄存器模式控制位M0-M4ARM微處理器:異常異常是由內(nèi)部或者外部原因引起的,當(dāng)異常發(fā)生時(shí)CPU將暫停執(zhí)行當(dāng)前指令自動(dòng)到指定的向量地址讀取指令并且執(zhí)行。l在X86上,當(dāng)有異常發(fā)生時(shí)CPU是到指定的向量地址讀取要執(zhí)行的程序的地址執(zhí)行的程序的地址l而ARM是到向量地址的地方讀取指令讀取指令,也就是ARM的向量地址處存放的是一條指令(一般是一條跳轉(zhuǎn)指令)

9、 ARM微處理器:異常ARM CPU將引起異常的類型分為7種ARM微處理器:異常微處理器:異常 當(dāng)異常出現(xiàn)時(shí),異常模式分組的當(dāng)異常出現(xiàn)時(shí),異常模式分組的R14和和SPSR用于用于保存狀態(tài),即:保存狀態(tài),即: R14_=return link SPSR_=CPSR CPSR4:0=exception mode number CPSR5=0 /*在在ARM狀態(tài)執(zhí)行狀態(tài)執(zhí)行*/ if=Reset or FIQ then CPSR6=1 /*禁止快速中斷禁止快速中斷*/ CPSR7=1 /*禁止正常中斷禁止正常中斷*/PC=exception vector address 當(dāng)處理異常返回時(shí),將當(dāng)處理異

10、常返回時(shí),將SPSR傳送到傳送到CPSR,R14傳送到傳送到PCARM微處理器:異常Reset:CPU被復(fù)位后,進(jìn)入Supervisor Mode并且禁止FIQ和IRQ。 Undefined Instructions: CPU執(zhí)行一條未被定義的指令時(shí)就會(huì)觸發(fā)該異常。這種機(jī)制可以用于通過(guò)軟件仿真的方式擴(kuò)展THUMB or ARM指令集。SWI:軟中斷(SWI)是執(zhí)行SWI指令時(shí)觸發(fā)的,該異常主要用于OS的系統(tǒng)調(diào)用。ARM微處理器:異常Prefetch Abort: CPU在讀取指令時(shí)發(fā)生讀內(nèi)存錯(cuò)誤并且該指令又要被執(zhí)行則觸發(fā)該異常;如果只是在讀取指令時(shí)發(fā)生了內(nèi)存錯(cuò)誤而該指令又未被執(zhí)行則不會(huì)觸發(fā)該異

11、常。Data Abort:當(dāng)CPU在讀寫數(shù)據(jù)時(shí),如果發(fā)生錯(cuò)誤則觸發(fā)該異常。ARM微處理器:異常IRQ:當(dāng)外部IRQ輸入請(qǐng)求發(fā)生時(shí)(IRQ中斷已經(jīng)被使能),觸發(fā)該異常。FIQ: FIQ通常被用于快速傳輸數(shù)據(jù)。當(dāng)外部FIQ輸入請(qǐng)求發(fā)生時(shí)(FIQ中斷已經(jīng)被使能),觸發(fā)該異常。ARM微處理器:異常異常的優(yōu)先級(jí)ARM微處理器:內(nèi)存和I/OARM 的尋址空間是線性的地址空間,為232=4G Bytes 0 to 3 存儲(chǔ)第一個(gè)word, bytes 4 to 7存儲(chǔ)第二個(gè)wordARM支持大端(Big-endian)和小端(Little-endian)的內(nèi)存數(shù)據(jù)方式,可以通過(guò)硬件的方式設(shè)置(沒(méi)有提供軟件的

12、方式)端模式ARM微處理器:內(nèi)存和I/O大端的數(shù)據(jù)存放格式大端的數(shù)據(jù)存放格式低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最高有效字節(jié)的地址最高有效字節(jié)的地址就是該就是該word的地址的地址最高有效字節(jié)最高有效字節(jié)位于最低地址位于最低地址word a=0 x f6 73 4b cdf6734bcdARM微處理器:內(nèi)存和I/O小端的數(shù)據(jù)格式小端的數(shù)據(jù)格式 低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最低有效字節(jié)的地址最低有效字節(jié)的地址就是該就是該word的地址的地址最低有效字節(jié)最低有效字節(jié)位于最低地址位于最低地址word a=0 x

13、f6 73 4b cdf6734bcdARM微處理器:內(nèi)存和I/O大端: 小端:0 xb32045000 xddddddd00 xb32045000 xddddddd0 f6 f6 73 73 4b 4b cd cddada0000 實(shí)例l變量變量A:word A=0 x f6 73 4b cd,在內(nèi)存中的起始地,在內(nèi)存中的起始地址為址為0 x b3 20 45 00l變量變量B:half word B=218,在內(nèi)存中的起始地址為,在內(nèi)存中的起始地址為0 x dd dd dd d0問(wèn)題:?jiǎn)栴}:half word B=218half word B=218與與word C=218word C=2

14、18在內(nèi)在內(nèi)存中的存放方式有何不同?請(qǐng)分大端和小存中的存放方式有何不同?請(qǐng)分大端和小端兩種情況說(shuō)明。端兩種情況說(shuō)明。1. GPIO硬件介紹;2. GPIO操作實(shí)例:LED和按鍵。本講學(xué)習(xí)重點(diǎn)第4講 GPIO接口簡(jiǎn)介 GPIO(General Purpose I/O Ports)意思為通用輸入/輸出接口,通俗的說(shuō),就是一些引腳可以通過(guò)他們輸出高低電平或者通過(guò)他們讀入引腳的狀態(tài)-是高電平還是低電平。 S3C2410有117個(gè)I/O端口,共分為A-H8組:GPA,GPB,GPC.GPH。S3C2440有130個(gè)I/O端口,分為A-J9組:GPA,GPB,GPC.GPJ。可以通過(guò)設(shè)置寄存器來(lái)確定某個(gè)引

15、腳是用于輸入,輸出還是其他特殊功能第4講 GPIO接口第4講 GPIO接口通過(guò)寄存器來(lái)操作GPIO引腳 既然一個(gè)引腳可以用于輸入輸出或者其他的特殊功能,那么一定就有寄存器來(lái)選擇這些功能:(1),對(duì)于輸入,一定可以通過(guò)讀某個(gè)寄存器來(lái)確定引腳的電平是高還是低。(2),對(duì)于輸出,一定可以通過(guò)寫入某個(gè)寄存器來(lái)讓某個(gè)引腳輸出高電平或者低電平。(3),對(duì)于其他特殊功能,則有另外的寄存器來(lái)控制這些IO口來(lái)實(shí)現(xiàn)這些特殊的功能。 一般來(lái)說(shuō):GPxCON用于選擇引腳的功能,GPxDAT用于讀寫引腳數(shù)據(jù),GPxUP用于確定是否使用內(nèi)部的上拉電阻。但是,有個(gè)特例-沒(méi)有GPAUP這個(gè)寄存器。第4講 GPIO接口GPxC

16、ON-選擇引腳的功能 Port A與Port B-H/J在功能選擇上有所不同,GPACON中每一位對(duì)應(yīng)一根引腳(23根引腳),當(dāng)某位被設(shè)為0時(shí),相應(yīng)引腳為輸出引腳,此時(shí)可以向GPADAT中寫入數(shù)據(jù)來(lái)讓對(duì)應(yīng)的引腳輸出高低電平。當(dāng)某位被設(shè)為1時(shí),相應(yīng)引腳為地址線或用于地址控制,此時(shí)GPADAT無(wú)用。 一般而言,GPACON通常全被設(shè)為1,以便訪問(wèn)外部存儲(chǔ)器件。 Port B-Port H/J在寄存器操作方面完全的不同,GPxCON中每?jī)晌豢刂埔桓_:00表示輸入,01表示輸出,10表示特殊功能,11保留不用。第4講 GPIO接口GPxDAT 對(duì)該寄存器讀可以獲得相應(yīng)引腳的電平的高低,寫該寄存器可

17、以讓相應(yīng)的引腳輸出高低電平。 第4講 GPIO接口GPxUP 對(duì)當(dāng)某位為1時(shí),表明相應(yīng)的引腳無(wú)內(nèi)部上拉電阻,為0時(shí),表明相應(yīng)的引腳使用內(nèi)部上拉電阻。 注意:不存在GPAUP這個(gè)寄存器第4講 GPIO接口訪問(wèn)單個(gè)引腳(圖5.2)第4講 GPIO接口訪問(wèn)單個(gè)引腳(圖5.2)#defineGPBCON(*(volatile unsigned long *)0 x56000010)#defineGPBDAT(*(volatile unsigned long *)0 x56000014)#defineGPB5_out(1(5*2)GPBCON = GPB5_out;/GPB5引腳設(shè)置為輸出GPBDAT

18、&=(15);/GPB5輸出低電平第4講 GPIO接口以總線方式訪問(wèn)硬件(圖5.3)地址對(duì)齊的16位讀操作unsigned short * pwAddr = (unsigned short * )0 x02;unsigned short wVal;wVal = *pwAddr;第4講 GPIO接口以總線方式訪問(wèn)硬件(圖5.3)地址不對(duì)齊的16位讀操作unsigned short * pwAddr = (unsigned short * )0 x01;unsigned short wVal;wVal = *pwAddr;第4講 GPIO接口以總線方式訪問(wèn)硬件(圖5.3)地址對(duì)齊的8位讀操作unsigned char * pwAddr = (unsigned char * )0 x06;unsigned char wVal;wVal = *pwAddr;第4講 GPIO接口以總線方式訪問(wèn)硬件(圖5.3)地址對(duì)齊的32位讀操作unsigned int * pwAddr = (unsigned int * )0 x06;unsigned int wVal;wVal = *pwAddr;第4講 GPIO接口以總線方式訪問(wèn)硬件(圖5.3)地址對(duì)齊的16位寫操作unsigned short *

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論