嵌入式系統(tǒng)原理與應用 第3版 課件 第8章 通用IO端口和中斷系統(tǒng)程序設計_第1頁
嵌入式系統(tǒng)原理與應用 第3版 課件 第8章 通用IO端口和中斷系統(tǒng)程序設計_第2頁
嵌入式系統(tǒng)原理與應用 第3版 課件 第8章 通用IO端口和中斷系統(tǒng)程序設計_第3頁
嵌入式系統(tǒng)原理與應用 第3版 課件 第8章 通用IO端口和中斷系統(tǒng)程序設計_第4頁
嵌入式系統(tǒng)原理與應用 第3版 課件 第8章 通用IO端口和中斷系統(tǒng)程序設計_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章ARM通用I/O和中斷系統(tǒng)應用設計1第8章通用I/O端口和中斷系統(tǒng)程序設計

●S3C2410A提供了117個可編程的通用輸入輸出I/O端口引腳,分為8組通用輸入輸出I/O端口(GeneralPurposeI/O或GeneralParallelI/O):通用端口A(GPA)、通用端口B(GPA)、…、通用端口H(GPH)、通用端口G(GPG)。

特別是每組端口中的不同I/O引腳根據(jù)需要可以通過軟件配置為輸入引腳、或輸出引腳、或第2功能引腳、甚至或第3功能引腳,這對于實時控制系統(tǒng)來講是至關重要的,說明具有較多的輸入輸出開關量。

●在CPU訪問I/O外設的3種方法(程序查詢方法、I/O中斷方法和DMA方法)中,中斷是實時性最好的方法,因為嵌入式系統(tǒng)大部分都應用于實時控制系統(tǒng)。

S3C2410A的CPU提供了普通中斷請求IRQ(InterruptRequest)和快速中斷請求FIQ(FastInterruptRequest)這2種中斷的請求方法,而且可以對外設I/O的56個中斷源請求進行實時響應,這對于實時控制系統(tǒng)來說也是非常必要的。S3C2410A中斷系統(tǒng)的邏輯層次深、關系最為復雜,無論是硬件中斷申請過程的組成,還是軟件相應的具體執(zhí)行流程。28組通用I/O端口分別是:●通用端口A(GPA)是1個23位只能輸出的I/O端口?!裢ㄓ枚丝贐(GPB)和通用端口H(GPH)是2個11位的輸入輸出I/O端口?!裢ㄓ枚丝贑(GPC)、通用端口D(GPD)、通用端口E(GPE)和通用端口G(GPG)是4個16位通用輸入輸出I/O端口?!裢ㄓ枚丝贔(GPF)是1個8位通用輸入輸出I/O端口?!袷褂肐/O端口的方法首先根據(jù)端口引腳的實際使用功能,配置端口控制寄存器的對應位,通過配置端口上拉電阻寄存器確定對應的上拉電阻是否需要,最后對端口數(shù)據(jù)寄存器的讀/寫就可完成其輸入或輸出功能。38.1S3C2410A的通用I/O端口8.1.1I/O端口的功能S3C2410A的每個I/O端口都是多功能的,以下具體介紹每個端口引腳所具有的功能。1.GPA端口引腳位功能GPA的I/O引腳共有23根,每根引腳只具有2個輸出功能:

一是通用輸出端口;

二是與NandFlash相關的控制信號、與存儲器有關的Bank0~Bank5的片選信號以及與地址線有關的地址線。如表8-1所示。4表8-1GPA的引腳功能表5引腳名稱第1功能第2功能GPA22輸出nFCE(NandFlash片選信號)-GPA21輸出nRSTOUT(對外器件輸出復位信號)-GPA20輸出nFRE(NandFlash讀信號)-GPA19輸出nFWE(NandFlash寫信號)-GPA18輸出ALE(NandFlash地址鎖存信號)-GPA17輸出CLE(NandFlash命令鎖存信號)-GPA16~GPA12輸出nGCS0~nGCS5(Bank0~5片選信號)-GPA11~GPA1輸出ADDR26~ADDR16(地址線26~16)-GPA0輸出ADDR0(地址線0)2.GPB端口引腳位功能

GPB引腳共有11根,每個引腳具有通用輸入,或通用輸出,或具有與DMA有關的信號線、與定時器有關的時鐘信號及輸出引腳線等第3功能,如下表所示。6引腳名稱第1、2功能第3功能第4功能GPB10輸入/輸出nXDREQ0(DMA請求0)-GPB9輸入/輸出nXDACK0(DMA應答0)-GPB8輸入/輸出nXDREQ1(DMA請求1)-GPB7輸入/輸出nXDACK1(DMA應答1)-GPB6輸入/輸出nXBREQ(總線請求)-GPB5輸入/輸出nXBACK(總線應答)-GPB4輸入/輸出TCLK0(T0T1外輸入時鐘)-GPB3輸入/輸出TOUT3(T3時鐘輸出)-GPB2輸入/輸出TOUT2(T2時鐘輸出)-GPB1輸入/輸出TOUT1(T1時鐘輸出)-GPB0輸入/輸出TOUT0(T0時鐘輸出)-3.GPC端口引腳位功能

GPC引腳共有16根,每個引腳具有通用輸入、或通用輸出、或與LCD有關的控制信號線和數(shù)據(jù)線等第3功能,如下表所示。7引腳名稱第1、2功能第3功能第4功能GPC15~GPC8輸入/輸出VD7~VD0(LCD數(shù)據(jù)線7~0)-GPC7輸入/輸出LCDVF2(LCD時鐘控制線2)-GPC6輸入/輸出LCDVF1(LCD時鐘控制線1)-GPC5輸入/輸出LCDVF0(LCD時鐘控制線0)-GPC4輸入/輸出VM(LCD電源極性控制信號)-GPC3輸入/輸出VFRAME(LCD幀掃描信號)-GPC2輸入/輸出VLINE(LCD行掃描信號)-GPC1輸入/輸出VCLK(LCD像素時鐘信號)-GPC0輸入/輸出LEND(LCD行截止信號)-4.

GPD端口引腳位功能

GPD引腳共有16根,每個引腳具有通用輸入、或通用輸出、或具有LCD數(shù)據(jù)線的第3功能,部分引腳還具有第4功能,如表下所示。8引腳名稱第1、2功能第3功能第4功能GPD15輸入/輸出VD23(LCD數(shù)據(jù)線23)nSS0GPD14輸入/輸出VD22(LCD數(shù)據(jù)線22)nSS1GPD13~GPD0輸入/輸出VD21~VD8(LCD數(shù)據(jù)線21~8)-表中的nSS0、nSS1在SPI為從設備時作為芯片選擇信號。5.

GPE端口引腳位功能

GPE引腳共有16根,每個引腳具有通用輸入、或通用輸出、或與I2C接口、SPI接口、I2S接口有關的第3功能,部分引腳還具有第4功能,如表8-5所示。9引腳名稱第1、2功能第3功能第4功能GPE15輸入/輸出IICSDA(I數(shù)據(jù)線)-GPE14輸入/輸出IICSCL(I時鐘線)-GPE13輸入/輸出SPICLK0(SPI時鐘線0)-GPE12輸入/輸出SPIMOSI0(SPI主出從入線0)-GPE11輸入/輸出SPIMISO0(SPI主入從出線0)-GPE10~GPE7輸入/輸出SDDAT3~SDDAT0(SD卡數(shù)據(jù)線3~0)-GPE6輸入/輸出SDCMD(SD命令線)-GPE5輸入/輸出SDCLK(SD時鐘線)-GPE4輸入/輸出I2SSDO(I2S串行數(shù)據(jù)輸出線)I2SSDIGPE3輸入/輸出I2SSDI(I2S串行數(shù)據(jù)輸入線)nSS0GPE2輸入/輸出CDCLK(I編碼時鐘)-GPE1輸入/輸出I2SSCLK(I2S串行時鐘)-GPE0輸入/輸出I2SLRCK(I2S通道選擇時鐘)-

6.GPF端口引腳位功能

GPF引腳共有8根,每個引腳具有輸入、或輸出、外部中斷引腳EINT7~EINT0的第3功能,如下表所示。10引腳名稱第1、2功能第3功能第4功能GPF7~0輸入/輸出EINT7(外部中斷7~0)-7.GPG端口引腳位功能

GPG引腳共有16根,每個引腳具有輸入、或輸出、或外部中斷引腳EINT23~EINT8的第3功能,部分引腳還具有觸摸屏、SPI接口等有關的第4功能,如表下所示。11引腳名稱第1、2功能第3功能第4功能GPG15輸入/輸出EINT23(外中斷23)nYPON(LCDy軸電源正極控制信號)GPG14輸入/輸出EINT22(外中斷22)YMON(LCDy軸電源負極控制信號)GPG13輸入/輸出EINT21(外中斷21)nXPON(LCDx軸電源正極控制信號)GPG12輸入/輸出EINT20(外中斷20)XMON(LCDx軸電源負極控制信號)GPG11輸入/輸出EINT19(外中斷19)TCLK1(T2T3T4外部輸入時鐘端)GPG10輸入/輸出EINT18(外中斷18)-GPG9輸入/輸出EINT17(外中斷17)-GPG8輸入/輸出EINT16(外中斷16-GPG7輸入/輸出EINT15(外中斷15)SPICLK1(SPI時鐘信號1)GPG6輸入/輸出EINT14(外中斷14)SPIMOSI1(SPI主出從入端1)GPG5輸入/輸出EINT13(外中斷13)SPIMISO1(SPI主入從出端1)GPG4輸入/輸出EINT12(外中斷12)LCD_PWREN(LCD電源使能信號)GPG3輸入/輸出EINT11(外中斷11)nSS1(SPI為從設備時芯片的片選信號1)GPG2輸入/輸出EINT10(外中斷10)nSS0(SPI為從設備時芯片的片選信號0)GPG1輸入/輸出EINT9(外中斷9)-GPG0輸入/輸出EINT8(外中斷8)-8.GPH端口引腳位功能

GPH引腳共有11根,每個引腳具有通用輸入、或通用輸出、或與UART、外部時鐘輸出有關的第3功能,部分引腳還具有與UART控制信號有關的第4功能,如下表所示。12引腳名稱第1、2功能第3功能第4功能GPH10輸入/輸出CLKOUT0(外部使用時鐘0)-GPH9輸入/輸出CLKOUT1(外部使用時鐘1)-GPH8輸入/輸出UEXTCLK(串口外輸入時鐘)-GPH7輸入/輸出RXD2(串口2接收端)nCTS1(串口1允許發(fā)送)GPH6輸入/輸出TXD2(串口2發(fā)送端)nRTS1(串口1請求發(fā)送)GPH5輸入/輸出RXD1(串口1接收端)-GPH4輸入/輸出TXD1(串口1發(fā)送端)-GPH3輸入/輸出RXD0(串口0接收端)-GPH2輸入/輸出TXD0(串口0發(fā)送端)-GPH1輸入/輸出nRTS0(串口0請求發(fā)送)-GPH0輸入/輸出nCTS0(串口0允許發(fā)送)-8.1.2通用I/O端口功能寄存器通用I/O端口功能寄存器包括8個端口控制寄存器(GPACON~GPHCON)、8個端口數(shù)據(jù)寄存器(GPADAT~GPHDAT)和7個端口上拉寄存器(GPBUP~GPHUP)。由于在S3C2410A中,I/O端口引腳都是復用的,所以對于每一個I/O端口引腳都需要通過端口控制寄存器(GPnCON)來配置。配置完成后,就可以通過端口的數(shù)據(jù)寄存器(GPADAT~GPHDAT)來讀/寫。端口數(shù)據(jù)寄存器使用的數(shù)據(jù)bit位數(shù)與端口的位數(shù)相一致,并且從b0開始使用。注意:對于數(shù)據(jù)寄存器(GPADAT~GPHDAT)的寫操作一定要留心。比如對于通用端口GPB共有11位,有的引腳定義為輸入,有的引腳定義為輸出或第3功能,寫操作時最好用“位操作”指令功能,只給作為輸出的寫數(shù)據(jù),其它的引腳信息保持不變。關于端口上拉電阻寄存器(GPBUP~GPHUP)的使用,每個上拉電阻寄存器bit位的使用與它的數(shù)據(jù)寄存器一一對應。一般作為輸出端子時,需要使能上拉電阻,將其對應的bit位清“0”;作為輸入端子時,需要禁止上拉電阻,將其對應的bit位置“1”。由于端口數(shù)據(jù)寄存器(GPADAT~GPHDAT)和端口上拉電阻寄存器(GPBUP~GPHUP)的作用和所使用的bit位已經(jīng)清楚了,以下重點介紹端口控制寄存器(GPACON~GPHCON)。131.端口A功能寄存器

端口A的功能寄存器包括端口A控制寄存器GPACON(使用23位)、端口A數(shù)據(jù)寄存器GPADAT(使用23位)。它們的屬性如表8-9所示,GPACON的位功能如表8-10所示。14寄存器名地址讀寫屬性描述初值GPACON0x56000000讀/寫控制端口A的各引腳功能0x0GPADAT0x56000004讀/寫端口A數(shù)據(jù)寄存器,使用b22~b0-保留0x56000008讀/寫保留-表8-9GPA功能寄存器屬性表表8-10GPACON位功能表15引腳符號比特位功能描述初值GPA22[22]0=輸出;

1=nFCE(NandFlash片選信號)1GPA21[21]0=輸出;

1=nRSTOUT(對外部芯片提供復位信號)1GPA20[20]0=輸出;

1=nFRE(NandFlash讀信號)1GPA19[19]0=輸出;

1=nFWE(NandFlash寫信號)1GPA18[18]0=輸出;

1=ALE(NandFlash地址允許鎖存)1GPA17[17]0=輸出;

1=CLE(NandFlash命令允許鎖存)1GPA16[16]0=輸出;

1=nGCS5(Bank5片選信號)1GPA15[15]0=輸出;

1=nGCS4(Bank4片選信號)1GPA14[14]0=輸出;

1=nGCS3(Bank3片選信號)1GPA13[13]0=輸出;

1=nGCS2(Bank2片選信號)1GPA12[12]0=輸出;

1=nGCS1(Bank1片選信號)1GPA11~1[11:1]0=輸出;

1=ADDR26~16(地址線26~16)1GPA0[0]0=輸出;

1=ADDR0(地址線0)12.端口B功能寄存器

端口B的功能寄存器包括端口B控制寄存器GPBCON(使用22位)、端口B數(shù)據(jù)寄存器GPBDAT(使用11位)、端口B上拉電阻寄存器GPBUP(使用11位)。它們的屬性如表8-11所示,GPBCON的位功能如表8-12所示。表8-11GPB功能寄存器屬性表16寄存器名地址讀寫屬性描述初值GPBCON0x56000010讀/寫控制端口B的各引腳功能0x0GPBDAT0x56000014讀/寫端口B數(shù)據(jù)寄存器,使用b10~b0-GPBUP0x56000018讀/寫使能端口B各引腳上拉電阻0x0表8-12GPBCON位功能表17引腳符號比特位功能描述初值GPB10[21:20]00=輸入;01=輸出;10=nXDREQ0(DMA0請求);11=保留00GPB9[19:18]00=輸入;01=輸出;10=nXDACK0(DMA0應答);11=保留00GPB8[17:16]00=輸入;01=輸出;10=nXDREQ1(DMA1請求);11=保留00GPB7[15:14]00=輸入;01=輸出;10=nXDACK1(DMA1應答);11=保留00GPB6[13:12]00=輸入;01=輸出;10=nXBREQ(總線請求);11=保留00GPB5[11:10]00=輸入;01=輸出;10=nXBACK(總線應答);11=保留00GPB4[9:8]00=輸入;01=輸出;10=TCLK0(T0T1外入時鐘);11=保留00GPB3[7:6]00=輸入;01=輸出;10=TOUT3(T3輸出信號);11=保留00GPB2[5:4]00=輸入;01=輸出;10=TOUT2(T2輸出信號);11=保留00GPB1[3:1]00=輸入;01=輸出;10=TOUT1(T1輸出信號);11=保留00GPB0[1:0]00=輸入;01=輸出;10=TOUT0(T0輸出信號);11=保留003.端口C功能寄存器端口C的功能寄存器包括端口C控制寄存器GPCCON(使用32位)、端口C數(shù)據(jù)寄存器GPCDAT(使用16位)、端口C上拉電阻寄存器GPCUP(使用16位)。它們的屬性如表8-13所示,GPCCON的位功能如表8-14所示。18寄存器名地址讀寫屬性描述初值GPCCON0x56000020讀/寫控制端口C的各引腳功能0x0GPCDAT0x56000024讀/寫端口C數(shù)據(jù)寄存器,使用b15~b0-GPCUP0x56000028讀/寫使能端口C各引腳上拉電阻0x0表8-13GPC功能寄存器屬性表表8-14GPCCON位功能表19引腳符號比特位功能描述初值GPC15[31:30]00=輸入;01=輸出;10=VD7(LCD數(shù)據(jù)線7);11=保留00GPC14~8[29:16]00=輸入;01=輸出;10=VD6~0(LCD數(shù)據(jù)線6~0);11=保留0x0GPC7[15:14]00=輸入;01=輸出;10=LVDVF2(LCD時控2);11=保留00GPC6[13:12]00=輸入;01=輸出;10=LCDVF1(LCD時控1);11=保留00GPC5[11:10]00=輸入;01=輸出;10=LCDVF0(LCD時控0);11=保留00GPC4[9:8]00=輸入;01=輸出;10=VM(LCD電壓極性選擇);11=保留00GPC3[7:6]00=輸入;01=輸出;10=VFRAME(LCD幀掃描);11=保留00GPC2[5:4]00=輸入;01=輸出;10=VLINE(LCD行掃描信號);11=保留00GPC1[3:2]00=輸入;01=輸出;10=VCLK(LCD時鐘信號);

11=保留00GPC0[1:0]00=輸入;01=輸出;10=LEND(LCD行截止信號);11=保留004.端口D功能寄存器端口D的功能寄存器包括端口D控制寄存器GPDCON(使用32位)、端口D數(shù)據(jù)寄存器GPDDAT(使用16位)、端口D上拉電阻寄存器GPDUP(使用16位)。它們的屬性如表8-15所示,GPDCON的位功能如表8-16所示。20寄存器名地址讀寫屬性描述初值GPDCON0x56000030讀/寫控制端口D的各引腳功能0x0GPDDAT0x56000034讀/寫端口D數(shù)據(jù)寄存器,使用b15~b0-GPDUP0x56000038讀/寫使能端口D各引腳上拉電阻0x0表8-16GPDCON位功能表5.端口E功能寄存器端口E的功能寄存器包括端口E控制寄存器GPECON(使用32位)、端口E數(shù)據(jù)寄存器GPEDAT(使用16位)、端口E上拉電阻寄存器GPEUP(使用16位)。它們的屬性如表8-17所示,GPECON的位功能如表8-18所示。表8-17GPE功能寄存器屬性表21寄存器名占用地址讀寫控制描述初值GPECON0x56000040讀/寫控制端口E的各引腳功能0x0GPEDAT0x56000044讀/寫端口E數(shù)據(jù)寄存器,使用b15~b0-GPEUP0x56000048讀/寫使能端口E各引腳上拉電阻0x0表8-18GPECON位功能表22引腳符號比特位功能描述初值GPE15[31:30]00=輸入;01=輸出;10=IICSDA(I數(shù)據(jù)線);11=保留00GPE14[29:28]00=輸入;01=輸出;10=IICSCL(I時鐘線);11=保留00GPE13[27:26]00=輸入;01=輸出;10=SPICLK(SPI時鐘);11=保留00GPE12[25:24]00=輸入;01=輸出;10=SPIMOSI0(SPI主出從入);11=保留00GPE11[23:22]00=輸入;01=輸出;10=SPIMISO0(SPI主入從出);11=保留00GPE10[21:20]00=輸入;01=輸出;10=SDDAT3(SD卡數(shù)據(jù)線3);11=保留00GPE9[19:18]00=輸入;01=輸出;10=SDDAT2(SD卡數(shù)據(jù)線2);11=保留00GPE8[17:16]00=輸入;01=輸出;10=SDDAT1(SD卡數(shù)據(jù)線1);11=保留00GPE7[15:14]00=輸入;01=輸出;10=SDDAT0(SD卡數(shù)據(jù)線0);11=保留00GPE6[13:12]00=輸入;01=輸出;10=SDCMD(SD卡命令線);11=保留00GPE5[11:10]00=輸入;01=輸出;10=SDCLK(SD卡時鐘);

11=保留00GPE4[9:8]00=輸入;01=輸出;10=I2SSDO(I2S數(shù)據(jù)輸出);11=I2SSDI00GPE3[7:6]00=輸入;01=輸出;10=I2SSDI(I2S數(shù)據(jù)輸入);

11=nSS000GPE2[5:4]00=輸入;01=輸出;10=CDCLK(I編碼時鐘);11=保留00GPE1[3:2]00=輸入;01=輸出;10=I2SSCLK(I2S串行時鐘);

11=保留00GPE0[1:0]00=輸入;01=輸出;10=I2SLRCK(I2S通道選擇時鐘);11=保留006.端口F功能寄存器端口F的功能寄存器包括端口F控制寄存器GPFCON(使用16位)、端口F數(shù)據(jù)寄存器GPFDAT(使用8位)、端口F上拉電阻寄存器GPFUP(使用8位)。它們的屬性如表8-19所示,GPFCON的位功能如表8-20所示。23寄存器名占用地址讀寫屬性描述初值GPFCON0x56000050讀/寫控制端口F的各引腳功能0x0GPFDAT0x56000054讀/寫端口F數(shù)據(jù)寄存器,使用b7~b0-GPFUP0x56000058讀/寫使能端口F各引腳上拉電阻0x0表8-19GPF功能寄存器屬性表引腳符號比特位功能描述初值GPF7[15:14]00=輸入;01=輸出;10=EINT7(外部中斷7);11=保留00GPF6~0[13:0]00=輸入;01=輸出;10=EINT6~0(外中斷6~0);11=保留00表8-20GPFCON位功能表7.端口G功能寄存器端口G的功能寄存器包括端口G控制寄存器GPGCON(使用32位)、端口G數(shù)據(jù)寄存器GPGDAT(使用16位)、端口G上拉電阻寄存器GPGUP(使用16位)。它們的屬性如表8-21所示,GPGCON的位功能如表8-22所示。24寄存器名占用地址讀寫屬性描述初值GPGCON0x56000060讀/寫控制端口G的各引腳功能0x0GPGDAT0x56000064讀/寫端口G數(shù)據(jù)寄存器,使用b15~b0-GPGUP0x56000068讀/寫使能端口G各引腳上拉電阻0x0表8-21GPG功能寄存器屬性表表8-22GPGCON位功能表25引腳符號比特位功能描述初值GPG15[31:30]00=輸入;01=輸出;10=EINT23(外部中斷23);11=nYPON00GPG14[29:28]00=輸入;01=輸出;10=EINT22(外部中斷22);11=YMON00GPG13[27:26]00=輸入;01=輸出;10=EINT21(外部中斷21);11=nXPON00GPG12[25:24]00=輸入;01=輸出;10=EINT20(外部中斷20);11=XMON00GPG11[23:22]00=輸入;01=輸出;10=EINT19(外部中斷19);11=TCLK100GPG10[21:20]00=輸入;01=輸出;10=EINT18(外部中斷18);11=保留00GPG9[19:18]00=輸入;01=輸出;10=EINT17(外部中斷17);11=保留00GPG8[17:16]00=輸入;01=輸出;10=EINT16(外部中斷16);11=保留00GPG7[15:14]00=輸入;01=輸出;10=EINT15(外部中斷15);11=SPICLK100GPG6[13:12]00=輸入;01=輸出;10=EINT14(外部中斷14);11=SPIMOSI100GPG5[11:10]00=輸入;01=輸出;10=EINT13(外部中斷13);11=SPIMISO100GPG4[9:8]00=輸入;

01=輸出;

10=EINT12(外部中斷12);11=LCD_PWREN(LCD電源使能信號)00GPG3[7:6]00=輸入;01=輸出;10=EINT11(外部中斷11);11=nSS100GPG2[5:4]00=輸入;01=輸出;10=EINT10(外部中斷10);11=nSS000GPE1[3:2]00=輸入;01=輸出;10=EINT9(外部中斷9);

11=保留00GPG0[1:0]00=輸入;01=輸出;10=EINT8(外部中斷8);

11=保留00

8.端口H功能寄存器

端口H的功能寄存器包括端口H控制寄存器GPHCON(使用22位)、端口H數(shù)據(jù)寄存器GPHDAT(使用11位)、端口H上拉電阻寄存器GPHUP(使用11位)。它們的屬性如表8-23所示,GPHCON的位功能如表8-24所示。26寄存器名占用地址讀寫控制描述初值GPHCON0x56000070讀/寫控制端口H的各引腳功能0x0GPHDAT0x56000074讀/寫端口H數(shù)據(jù)寄存器,使用b10~b0-GPHUP0x56000078讀/寫使能端口H各引腳上拉電阻0x0表8-23GPH功能寄存器屬性表表8-24GPHCON位功能表27引腳符號比特位功能描述初值GPH10[21:20]00=輸入;01=輸出;10=CLKOUT1(外使用時鐘1);11=保留00GPH9[19:18]00=輸入;01=輸出;10=CLKOUT0(外使用時鐘0);11=保留00GPH8[17:16]00=輸入;01=輸出;10=UEXTCLK(串口外時鐘);11=保留00GPH7[15:14]00=輸入;01=輸出;10=RXD2(串口2接收);11=nCTS100GPH6[13:12]00=輸入;01=輸出;10=TXD2(串口2發(fā)送);11=nRTS100GPH5[11:10]00=輸入;01=輸出;10=RXD1(串口1接收);11=保留00GPH4[9:8]00=輸入;01=輸出;10=TXD1(串口1發(fā)送);11=保留00GPH3[7:6]00=輸入;01=輸出;10=RXD0(串口0接收);11=保留00GPH2[5:4]00=輸入;01=輸出;10=TXD0(串口0發(fā)送);11=保留00GPH1[3:2]00=輸入;01=輸出;10=nRTS0(串口0請求發(fā)送);11=保留00GPH0[1:0]00=輸入;01=輸出;10=nCTS0(串口0允許發(fā)送);11=保留008.1.3其它端口功能寄存器

外部時鐘控制寄存器DCLKCON(DCLKControlRegister);

多控制寄存器MISCCR(MiscellaneousControlRegister);

通用狀態(tài)寄存器5個GSTATUS0~GSTATUS4。

這些端口寄存器屬性如下表所示,28寄存器名占用地址讀寫屬性描述初值MISCCR0x56000080讀/寫控制SDRAM、USB等引腳功能0x10330DCLKCON0x56000084讀/寫控制DCLK時鐘信號的產(chǎn)生0x0GSTATUS00x560000AC只讀讀取外部的一些引腳狀態(tài)-GSTATUS10x560000B0只讀讀取芯片ID0x32410000GSTATUS20x560000B4讀/寫描述一些復位狀態(tài)信號0x1GSTATUS30x560000B8讀/寫信息通告,使用復位信號等復位0x0GSTATUS40x560000BC讀/寫信息通告,使用復位信號等復位0x01.多控制寄存器MISCCR

●多控制寄存器MISCCR的位功能如表8-26所示。

●控制SDRAM存儲器在掉電模式時的信號選取,USB端口模式、USB主機或器件的選擇等,S3C2410A輸出外部時鐘CLKOUT0(GPH9)、CLKOUT1(GPH10)的選擇,數(shù)據(jù)線上拉電阻的使能等。29表8-26MISCCR寄存器位功能表30比特位位功能符號功能描述初值[31:20]Reserved保留0x0[19]nEN_SCKE在節(jié)電模式下SDRAM的保護:0=SCKE正常;1=SCKE低電平0[18]nEN_SCLK1在節(jié)電模式下SDRAM的保護:0=SCLK1等于SCLK;1=SCLK1為低電平0[17]nEN_SCLK0在節(jié)電模式下SDRAM的保護:0=SCLK0等于SCLK;1=SCLK0為低電平0[16]nRSTCON用于nRSTCON軟件控制:0=nRSTCON信號為0;1=nRSTCON信號為11[15:14]Reserved保留00[13]USBSUBPEND1確定USB端口1模式:0=正常;1=懸掛0[12]USBSUBPEND0確定USB端口0模式:0=正常;1=懸掛0[11]Reserved保留0[10:8]CLKSEL1選擇CLKOUT1的輸出時鐘源:000=MPLLCLK;001=UPLLCLK;010=FCLK;011=HCLK;100=PCLK;101=DCLK1;11x=保留011[7]Reserved保留[6:4]CLKSEL0選擇CLKOUT1的輸出時鐘源:000=MPLLCLK;001=UPLLCLK;010=FCLK;011=HCLK;100=PCLK;101=DCLK0;11x=保留011[3]USBPAD確定USB的模式:0=正常;1=懸掛0[2]MEM_HZ_CON當CLKCON[0]=1時,影響存儲器信號線nGCS[7:0],nWE,nOE,nBE[3:0],nSRAS,nSCAS,ADDR[26:0]

0=高阻;1=保持。0[1]SPUCR_L確定數(shù)據(jù)線低16位的上拉電阻:0=使能;1=禁止0[0]SPUCR_H確定數(shù)據(jù)線高16位的上拉電阻:0=使能;1=禁止02.外部時鐘控制寄存器DCLKCON

外部時鐘控制寄存器DCLKCON的位功能如表8-27所示。

●主要用于控制S3C2410A輸出引腳DCLK0(引腳序號為F13)、DCLK1(引腳序號為F14)的時鐘信號,包括頻率和占空比。

●其輸入時鐘源可以是PCLK或UCLK。31表8-27DCLKCON寄存器位功能表32比特位位功能符號功能描述初值[31:28]Reserved保留0000[27:24]DCLK1CMP確定DCLK1的占空比0000[23:20]DCLK1DIV確定DCLK1的分頻系數(shù)0000[19:18]Reserved保留00[17]DCLK1SelCK選擇DCLK1的時鐘源:0=PCLK;1=UCLK0[16]DCLK1ENDCLK1的使能位:

0=禁止;1=使能0[15:12]Reserved保留00[11:8]DCLK0CMP確定DCLK0的占空比0000[7:4]DCLK0DIV確定DCLK0的分頻系數(shù)0000[3:2]Reserved保留00[1]DCLK0SelCK選擇DCLK1的時鐘源:0=PCLK;1=UCLK0[0]DCLK0ENDCLK1的使能位:0=禁止;1=使能0

通過設置DCLKCON寄存器可以定義DCLKn(n=0或1)時鐘信號的頻率和占空比。

例如,若DCLKnCMP取m,DCLKnDIV取n,則有:F(DCLKn)=時鐘源頻率/(n+1)DCLKn的低電平寬度為m+1,高電平寬度為(n+1)-(m+1)。DCLKn的輸出波形如圖8-1所示。33表8-28GSTATUS0狀態(tài)寄存器位功能表343.通用狀態(tài)寄存器GSTATUS0

該寄存器為只讀寄存器,僅使用了最低的4bit,它們的位功能如表8-28所示。比特位位功能符號功能描述初值[31:4]Reserved保留-[3]nWAIT總線引腳nWAIT的狀態(tài)。-[2]NCONNCON引腳的狀態(tài)。NandFlash配置端口,當不使用NandFlash時外接上拉電阻。-[1]R/nBNandFlash的R/nB狀態(tài)。-[0]nBATT_FLTnBATT_FLT引腳的狀態(tài),用于電池檢測。-4.通用狀態(tài)寄存器GSTATUS1

該寄存器是只讀寄存器,用于存儲芯片ID,數(shù)據(jù)是0x32410000。5.

通用狀態(tài)寄存器GSTATUS2

該寄存器是可讀/寫的狀態(tài)寄存器,用于反映ARM復位的原因,位功能如下表所示。35比特位位功能符號功能描述初值[31:3]Reserved保留-[2]WDTRST由看門狗復位。對該位寫“1”時清“0”0[1]OFFRST從掉電模式喚醒后復位。對該位寫“1”時清“0”0[0]PWRST由電源復位。對該位寫“1”時清“0”18.1.4通用I/O端口程序設計示例硬件是設計一個按鍵開關電路和LED顯示電路。軟件的功能是,當按下Kn(n=1~4)時,LED1~LED4依次重復顯示3次,但時間間隔為n個時間單位。1.硬件電路的設計

硬件電路的設計如圖8-2所示。按鍵使用GPG0、GPG3、GPG5、GPG6引腳,低電平有效。R1~R4的選取一般大于1K,電阻值越大,電路的功耗越小,但必須保證在平常狀態(tài)下加在輸入引腳的電平大于高電平的最小值。對于按鍵的防抖,可以在電阻的下端與地之間連接一個10uF大小的電容,實現(xiàn)硬件的防抖,同時使電路具有一定的抗干擾能力;也可以使用軟件防抖,當程序發(fā)現(xiàn)按鍵按下后,等待大約15ms的時間再讀該引腳,如果還是低電平,則確認是按鍵按下,否則認為是干擾造成的。3637LED顯示使用GPB5~GPB8引腳,選擇低電平有效,因為集成數(shù)字電路輸出低電平時的灌電流能力要遠遠地大于輸出高電平的拉電流能力。限流電阻R5~R8的選取是保證發(fā)光二極管LED的工作電流在其允許的范圍內(nèi),LED的導通電阻取300~600Ω。VDD33V是3.3V的直流電壓源正極。

通用I/O端口的設計流程如下:①確定使用的I/O端口是輸入或輸出功能。②根據(jù)①配置相應端口的控制寄存器GPnCON,并根據(jù)需要設置端口的上拉電阻寄存器GPnUP。③設置輸出端口的初始值;根據(jù)程序的功能要求編寫程序。

程序設計如下:382.通用I/O端口的程序設計#include2410addr.h/*寄存器地址C語言定義文件*/voidDelaySecond(u32x_second);/*聲明延時函數(shù),在其它文件中定義*/voidInit_Port();/*聲明初始化端口函數(shù)*/voidLed_Disply(u32x);//聲明4個LED依次顯示x秒函數(shù)voidmain(){chari;voidInit_Port();do{

if(rGPGDAT&0x01)==0)for(i=0;i<3;i++)Led_Disply(1);//各燈閃1次if(rGPGDAT&0x08==0)for(i=0;i<3;i++)Led_Disply(2);//各燈閃2次if(rGPGDAT&0x20==0)for(i=0;i<3;i++)Led_Disply(3);//各燈閃3次if(rGPGDAT&0x40==0)for(i=0;i<3;i++)Led_Disply(4);//各燈閃4次}while(1);}39voidInit_Port();/*定義初始化端口函數(shù)*/{

//設置GPG6、GPG5、GPG3、GPG0引腳功能為輸入,即使對應的b2n+1b2n=00rGPGCON=rGPGCON&(~(3<<12))&(~(3<<10))&(~(3<<6))&(~(3<<0));//禁止GPG6、GPG5、GPG3、GPG0引腳上拉電阻,即使對應的bn//設置GPB8、GPB7、GPB6、GPB5引腳功能為輸出,即使對應的b2n+1b2n=01rGPBCON=rGPBCON&(~(3<<16))&(~(3<<14))&(~(3<<12))&(~(3<<10));rGPBCON=rGPBCON|(1<<16)|(1<<14)|(1<<12)|(1<<10);//GPB8、GPB7、GPB6、GPB5作為輸出要使能其引腳上拉電阻rGPBUP=rGPBUP&(~(1<<8))&(~(1<<7))&(~(1<<6))&(~(1<<5))=1//GPG6、GPG5、GPG3、GPG0作為輸入要禁止其引腳上拉電阻rGPGUP=rGPGUP|(1<<6)|(1<<5)|(1<<3)|(1<<0);//將GPB8、GPB7、GPB6、GPB5引腳設置為高電平,即4個LED開始不亮rGPBDAT=rGPBDAT|(1<<8)|(1<<7)|(1<<6)|(1<<5);}4041voidLed_Disply(u32x)//定義4個LED依次顯示x秒函數(shù){

rGPBDAT=rGPBDAT&(~(1<<5));//GPB5輸出低電平,LED1亮DelaySecond(x);//延時x秒rGPBDAT=rGPBDAT|(1<<5);//GPB5輸出高電平,LED1滅rGPBDAT=rGPBDAT&(~(1<<6));//GPB6輸出低電平,LED2亮DelaySecond(x);rGPBDAT=rGPBDAT|(1<<6);//GPB6輸出高電平,LED2滅

rGPBDAT=rGPBDAT&(~(1<<7));//GPB7輸出低電平,LED3亮DelaySecond(x);rGPBDAT=rGPBDAT|(1<<7);//GPB7輸出高電平,LED3滅rGPBDAT=rGPBDAT&(~(1<<8));//GPB8輸出低電平,LED4亮DelaySecond(x);rGPBDAT=rGPBDAT|(1<<8);//GPB8輸出高電平,LED4滅}8.2微處理器S3C2410A中斷系統(tǒng)程序設計微處理器S3C2410A中的普通中斷IRQ和快速中斷FIQ均處于7種異常之內(nèi),當S3C2410A的56個中斷源進行中斷請求時,如果CPU響應中斷,則總中斷服務程序的入口地址是普通中斷IRQ異常的向量地址0x00000018或是快速中斷FIQ異常的向量地址0x0000001C,然后由總中斷服務程序再去查找具體的中斷源,執(zhí)行相應的中斷服務程序。本節(jié)就是在這一線索的基礎上,講述其中斷系統(tǒng)的相關知識與應用。42S3C2410A中斷系統(tǒng)的中斷源,將其分為3級:CPU級的中斷源:IRQ和FIQ;ARM級的中斷源:共32個,詳細請見表8-30;子中斷源和外部中斷源級:共11+24=35個,具體見表8-31、表8-32。由此可見,它們的結(jié)構(gòu)就像一棵樹,如圖8-3所示,ARM中斷源沒有按默認的優(yōu)先次序排列,子中斷源和外部中斷源也沒有按默認的優(yōu)先次序排列。43中斷服務程序的請求與執(zhí)行過程:

●從圖中可以看出,子中斷源、外部中斷源和部分ARM中斷源的中斷申請過程是由樹的葉節(jié)點向樹的根節(jié)點的求索過程,是由硬件電路完成的;

●中斷服務程序的執(zhí)行過程是由樹的根節(jié)點向樹的葉節(jié)點的回索過程,即由總中斷服務程序開始尋找具體的中斷服務程序去執(zhí)行。8.2.2S3C2410A的中斷源

●S3C2410A的中斷源分為CPU級的中斷源有IRQ和FIQ,ARM級的中斷源共有32個,如表8-30所示。

●子中斷源共11個,它是由ARM的中斷源INT_ADC、INT_UART0、INT_UART1、INT_UART2派生的,如表8-31所示。

●外部中斷源共24個,是由ARM中斷源的EINT4_7、EINT8_23派生的,并包括EINT0~EINT3,如表8-32所示。4445中斷源名簡要描述仲裁器INT_ADCADC中斷源,它派生出2個子中斷(ADC轉(zhuǎn)換結(jié)束中斷INT_ADC和觸摸屏中斷INT_TC)。ARB5INT_RTC實時鐘RTC報警中斷源。ARB5INT_SPI1SPI1中斷源。ARB5INT_UART0UART0中斷源,它派生出3個子中斷(UART0錯誤中斷INT_ERR0、接收中斷INT_RXD0和發(fā)送中斷INT_TXD0)。ARB5INT_IICI接口中斷源。ARB4INT_USBHUSB主機中斷源。ARB4INT_USBDUSB設備中斷源。ARB4Reserved保留ARB4INT_UART1UART1中斷源,它派生出3個子中斷(UART1錯誤中斷INT_ERR1、接收中斷INT_RXD1和發(fā)送中斷INT_TXD1)。ARB4INT_SPI0SPI0中斷源。ARB4INT_SDISDI中斷源。ARB3INT_DMA3DMA通道3中斷源。ARB3INT_DMA2DMA通道2中斷源。ARB3INT_DMA1DMA通道1中斷源。ARB3INT_DMA0DMA通道0中斷源。ARB3INT_LCDLCD中斷源(幀同步中斷INT_FrSyn和FIFO中斷INT_FiCnt)。ARB346INT_UART2UART2中斷源,它派生出3個子中斷(UART2錯誤中斷INT_ERR2、接收中斷INT_RXD2和發(fā)送中斷INT_TXD2)。ARB2INT_TIMER4定時/計數(shù)器Timer4中斷源。ARB2INT_TIMER3定時/計數(shù)器Timer3中斷源。ARB2INT_TIMER2定時/計數(shù)器Timer2中斷源。ARB2INT_TIMER1定時/計數(shù)器Timer1中斷源。ARB2INT_TIMER0定時/計數(shù)器Timer0中斷源。ARB2INT_WDT看門狗定時器中斷源。ARB1INT_TICK實時鐘RTC時間片中斷源。ARB1nBATT_FLT電池故障中斷源(BatteryFaultInterrupt)。ARB1Reserved保留ARB1EINT8_23外部中斷源8_23,由它派生16個外部中斷源。輸入端口依次是GPG0~GPG15。ARB1EINT4_7外部中斷源4_7,由它派生4個外部中斷源。輸入端口依次是GPF4~GPF7。ARB1EINT3外部中斷源3,輸入端口是GPF3,受外部中斷相關寄存器控制。ARB0EINT2外部中斷源2,輸入端口是GPF2,受外部中斷相關寄存器控制。ARB0EINT1外部中斷源1,輸入端口是GPF1,受外部中斷相關寄存器控制。ARB0EINT0外部中斷源0,輸入端口是GPF0,受外部中斷相關寄存器控制。ARB047子中斷源描述子中斷源描述INT_ERR1UART1溢出錯誤和幀錯誤中斷源INT_ADCADC轉(zhuǎn)換結(jié)束中斷源INT_TXD1UART1發(fā)送寄存器空或FIFO小于設定值時產(chǎn)生的中斷源INT_TC觸摸屏觸筆按下中斷源INT_RXD1UART1接收寄存器滿或FIFO大于設定值時產(chǎn)生的中斷源INT_ERR2UART2溢出錯誤和幀錯誤中斷源INT_ERR0UART0溢出錯誤和幀錯誤中斷源INT_TXD2UART2發(fā)送寄存器空或FIFO小于設定值時產(chǎn)生的中斷源INT_TXD0UART0發(fā)送寄存器空或FIFO小于設定值時產(chǎn)生的中斷源INT_RXD2UART2接收寄存器滿或FIFO大于設定值時產(chǎn)生的中斷源INT_RXD0UART0接收寄存器滿或FIFO大于設定值時產(chǎn)生的中斷源表8-31S3C2410A子中斷源表表8-32S3C2410A外部中斷源表48外中斷源名描述與輸入端口EINT23~8外部中斷23~8,輸入端口GPG15~0EINT7~0外部中斷7~0,輸入端口GPF7~0

●S3C2410A采用ARM920TCPU內(nèi)核,ARM920TCPU的中斷源有IRQ和FIQ。IRQ是普通中斷,F(xiàn)IQ是快速中斷,F(xiàn)IQ的優(yōu)先級高于IRQ。FIQ中斷通常在進行大批量的復制、數(shù)據(jù)傳輸?shù)裙ぷ鲿r使用,系統(tǒng)的快速中斷源最多只能有一個。

●S3C2410A通過對程序狀態(tài)寄存器PSR[7:6]的I位和F位進行設置,控制CPU能否進行中斷響應。如果設置PSR[7]的I位為1,禁止IRQ中斷,則CPU不會響應來自中斷控制器的IRQ中斷;如果設置PSR[6]的F位為1,禁止FIQ中斷,則CPU不會響應來自中斷控制器的FIQ中斷。

●如果設置PSR的I位或F位設置為0,即允許CPU中斷,同時再將中斷屏蔽寄存器(INTMSK)中的對應位設置為0,CPU就可以響應來自中斷控制器的IRQ或FIQ中斷請求。圖8-4是S3C2410A的中斷請求過程示意圖。498.2.3S3C2410A中斷請求過程501.子中斷請求過程

對于子中斷能夠得到請求,要完成以下的流程才能進行中斷申請并得到CPU的響應。

①子中斷源器件或I/O接口必須中斷使能,即允許它進行中斷。

②子中斷屏蔽寄存器INTSUBMSK的相應位必須設置為0(即子中斷允許)。

③對應共享的ARM中斷源的相應中斷屏蔽寄存器INTMSK位也要清“0”(即ARM中斷允許),這樣就有可以進行子中斷申請。例如,觸摸屏子中斷INT_TC,過程是觸摸屏開中斷→允許觸摸屏子中斷→允許ARM的中斷源INT_ADC中斷。在CPU中斷源IRQ或FIQ允許的情況下,就可以響應該子中斷。2.外部中斷請求過程

外部中斷請求,要完成以下的流程才能進行中斷申請并得到CPU的響應。①必須使用相應的引腳的第3功能,即將對應的b2n+1b2n=10。②設置外部中斷源的觸發(fā)電平,例如是低電平、高電平、上升沿等。③設置中斷濾波寄存器(必要時)。④外部中斷屏蔽寄存器的相應位清“0”,即允許外部中斷請求。⑤ARM的中斷屏蔽寄存器的相應位也必須清“0”,即允許ARM中斷請求。

完成以上流程,只要CPU的IRQ或FIQ開中斷,外部的中斷請求就可以得到響應。3.ARM中斷請求過程ARM的中斷請求是過程最為簡單的,只要ARM中斷源的器件或I/O接口開中斷,同時ARM中斷屏蔽寄存器的相應位清“0”,在CPU中斷源IRQ或FIQ允許中斷時,ARM的中斷申請就可以得到響應。注意:上述是概括性的對各種中斷源申請過程的描述,細化的過程在以后的節(jié)中可以體會得到。528.2.4ARM中斷控制寄存器

S3C2410A的中斷請求過程,除了設置上述的主要中斷寄存器外,還要設置中斷模式寄存器INTMOD和中斷優(yōu)先權寄存器PRIORITY。與中斷有關的寄存器有的是控制著中斷源向CPU申請中斷的硬件電路,有的是記錄著哪一個中斷源得到了CPU的中斷響應,為總中斷服務程序查找具體的中斷源并執(zhí)行其中斷程序或函數(shù)提供了有效信息。

ARM中斷控制寄存器共有6個,它們的屬性如表8-33所示。53寄存器名地址讀寫控制描述初值SRCPND0x4A000000讀/寫中斷源懸掛寄存器0x00000000INTMOD0x4A000004讀/寫中斷模式寄存器0x00000000INTMSK0x4A000008讀/寫中斷屏蔽寄存器0xFFFFFFFFPRIORITY0x4A00000C讀/寫中斷優(yōu)先權寄存器0x4A00000CINTPND0x4A000010讀/寫中斷懸掛寄存器0x00000000INTOFFSET0x4A000014讀/寫中斷偏移量寄存器0x000000001.中斷源懸掛寄存器SRCPND

中斷源懸掛寄存器SRCPND(SourcePendingRegister)反映的是,相應的比特位所對應的ARM中斷源是否有中斷申請信號,只要有中斷申請信號,相應的寄存器位置“1”,否則為“0”。它的復位工作在中斷服務程序中進行,通過對相應的位寫“1”來完成。SRCPND使用的地址為0x4A000000,復位初值為0x00000000。SRCPND寄存器的各比特位功能如表8-34所示。5455比特位功能描述初值[31]INT_ADC中斷請求:0=無中斷請求;1=有中斷請求0[30]INT_RTC中斷請求:0=無中斷請求;1=有中斷請求0[29]INT_SPI1中斷請求:0=無中斷請求;1=有中斷請求0[28]INT_UART0中斷請求:0=無中斷請求;1=有中斷請求0[27]INT_IIC中斷請求:0=無中斷請求;1=有中斷請求0[26]INT_USBH中斷請求:0=無中斷請求;1=有中斷請求0[25]INT_USBD中斷請求:0=無中斷請求;1=有中斷請求0[24]保留0[23]INT_UART1中斷請求:0=無中斷請求;1=有中斷請求0[22]INT_SPI0中斷請求:0=無中斷請求;1=有中斷請求0[21]INT_SDI中斷請求:0=無中斷請求;1=有中斷請求0[20]INT_DMA3中斷請求:0=無中斷請求;1=有中斷請求0[19]INT_DMA2中斷請求:0=無中斷請求;1=有中斷請求0[18]INT_DMA1中斷請求:0=無中斷請求;1=有中斷請求0[17]INT_DMA0中斷請求:0=無中斷請求;1=有中斷請求0[16]INT_LCD中斷請求:0=無中斷請求;1=有中斷請求0中斷源懸掛寄存器位功能表中斷源懸掛寄存器位功能表(續(xù))56[15]INT_UART2中斷請求:0=無中斷請求;1=有中斷請求0[14]INT_TIM4中斷請求:0=無中斷請求;1=有中斷請求0[13]INT_TIM3中斷請求:0=無中斷請求;1=有中斷請求0[12]INT_TIM2中斷請求:0=無中斷請求;1=有中斷請求0[11]INT_TIM1中斷請求:0=無中斷請求;1=有中斷請求0[10]INT_TIM0中斷請求:0=無中斷請求;1=有中斷請求0[9]INT_WDT中斷請求:0=無中斷請求;1=有中斷請求0[8]INT_TICK中斷請求:0=無中斷請求;1=有中斷請求0[7]nBATT_FLT中斷請求:0=無中斷請求;1=有中斷請求0[6]保留0[5]EINT8_23中斷請求:0=無中斷請求;1=有中斷請求0[4]EINT4_7中斷請求:0=無中斷請求;1=有中斷請求0[3]EINT3中斷請求:0=無中斷請求;1=有中斷請求0[2]EINT2中斷請求:0=無中斷請求;1=有中斷請求0[1]EINT1中斷請求:0=無中斷請求;1=有中斷請求0[0]EINT0中斷請求:0=無中斷請求;1=有中斷請求02.中斷模式寄存器INTMOD

S3C2410A的中斷模式寄存器INTMOD(InterruptModeRegister)控制選擇ARM32個中斷源是普通中斷IRQ還是快速中斷FIQ模式。

注意:FIQ最多只能選擇其中的1個中斷源。57比特位功能描述初值[31]INT_ADC中斷模式:0=普通中斷IRQ;1=快速中斷FIQ0[30]INT_RTC中斷模式:0=普通中斷IRQ;1=快速中斷FIQ0…[29:2]中斷源與SRCPND對應位相同,設置功能與上下行雷同0x0[1]EINT1中斷模式:

0=普通中斷IRQ;1=快速中斷FIQ0[0]EINT0中斷模式:

0=普通中斷IRQ;1=快速中斷FIQ0圖8-35INTMOD寄存器比特位功能表INTMOD使用的地址為0x4A000004,復位初值為0x00000000。3.中斷屏蔽寄存器INTMSK

中斷屏蔽寄存器INTMSK(InterruptMaskRegister)用于控制ARM的32個中斷源的中斷允許或禁止中斷。

如果設置中斷屏蔽寄存器INTMSK中的相對應屏蔽位為“1”,表示相對應的中斷源禁止中斷;

如果設置為“0”,表示相對應的中斷源允許中斷。

INTMSK使用的地址為0x4A000008,復位初值為0xFFFFFFFF。58比特位功能描述初值[31]INT_ADC中斷屏蔽位:0=中斷允許;1=禁止中斷1[30]INT_RTC中斷屏蔽位:0=中斷允許;1=禁止中斷1…[29:2]中斷源與SRCPND對應位相同,設置功能與行雷同均為1[1]EINT1中斷屏蔽位:

0=中斷允許;1=禁止中斷1[0]EINT0中斷屏蔽位:

0=中斷允許;1=禁止中斷14.中斷優(yōu)先權寄存器PRIORITY中斷優(yōu)先級寄存器PRIORITY是IRQ模式下的中斷優(yōu)先級控制寄存器。以下首先介紹中斷優(yōu)先權仲裁器電路結(jié)構(gòu)框圖,然后介紹PRIORITY寄存器的位功能。⑴中斷優(yōu)先權仲裁器S3C2410A中斷優(yōu)先權仲裁器ARB(Arbiter)由6個分仲裁器和1個總仲裁器組成。每一個仲裁器可以處理6路中斷,仲裁ARM的32個中斷源申請優(yōu)先級,中斷優(yōu)先權仲裁器的電路結(jié)構(gòu)框圖如圖8-5所示。S3C2410A的56個中斷源通過這32個中斷請求提供優(yōu)先級邏輯控制,仲裁器ARBITER0~ARBITER5連接的中斷源按優(yōu)先級排序,它們的輸出輸入到仲裁器ARBITER6,實現(xiàn)最終的優(yōu)先級排序。5960⑵中斷優(yōu)先權寄存器PRIORITY

中斷優(yōu)先級寄存器PRIORITY使用的地址為0x4A00000C,復位后的

溫馨提示

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

評論

0/150

提交評論