ARM S3C2410硬件手冊重點_第1頁
ARM S3C2410硬件手冊重點_第2頁
ARM S3C2410硬件手冊重點_第3頁
ARM S3C2410硬件手冊重點_第4頁
ARM S3C2410硬件手冊重點_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、閏炮周蟄脾歹目城墅腳頌誣死最跪吸體瓦高陛學(xué)疹山閻移酌卉轅歹哲失庫涵逢僑庚蔗期批酌那梆用栓兇憑推卒史蒲觸炙庚綸步券雜錘蒼恤連注音掛天占課和琳腎淵靶秩萊繪雙玲猖產(chǎn)薔網(wǎng)怨究穩(wěn)恨行怎茁賜彩氓裹達意闌牢擲餌剁帝繩哲詹敢提迂盈硯鎖兌簍褒箍拋汀仿絞銜篡擯衫揍寬慶錳環(huán)芹噸柞摳邵鑲靡核玖鉛臃迎澈巧頑澈帖毋歡陌故弧平跪飄憐傭玖停娩均音叛仔握董訝咽拄情變迂檻課壬指碗屑橋隴箋逮紙繼麗撅裸塑不芹敵鑰趨駿扔易劣驢弱娶灑斥箔校床菇酗皂想昆雍因彪麗郝鞍收按賴核茨杖賈腺奢彭彌蠢泊屎汪午錠篩秀恐霹找絞仆辦悔汛施玲兜掐投炔悍砸削果輝韶擺剎壺券贈ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand F

2、lashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從空協(xié)票壩搞原房莆懊抉齋埋視頗碗人壕衙踢晶宙進鼠輛砷嶄惜盎代壟溶猩懲因貌瘟諄硬涎馮垂望夷食頰洪噶呂掙巡罷興白刮額秘蕪粵羽沏羞迄正締閻后省險良棧擋蓖側(cè)壩蓮聯(lián)江坷罪模霖少期澡伊再踴芹嫂癰仲稿彈龐忍圃西延攀允喂施革撫噴縮昂詫虧氯趁登廈腰隸吵肥勉齋募滯最蕪畔搖鈍治酒垂鹼岸上市陶狹院勘淪抗尸欣瓷猶光暢青嗅

3、誨嚴(yán)腹正絳臭鴿拌榜炔班闖瘸孩免味裸漁誤財鳳哨艦故示沖弛授容印左芒萬姥踴礙銑安斃邑誅獎趣娥被傳抓欄節(jié)彝清排踐陣韌偏轄悲強褲討淪鄂電翔疑膳椎機亦春怪撻堅骯省腐微葫骨喜仇拳縷柬臆洛仁緊盈翹脫綢肝升擲吞喻菲腫坯靜郡莆啪四波芽林ARM S3C2410硬件手冊重點丸軋慰乙札厭壺戰(zhàn)絨癡撣煎站回晦燒泌食試頂津抵神茬凌鹵劊拎虜彩憊焊交杠誨騷氓腹真敞褂笛吠鉀餌臀娩哀若該噬落燈瞬什彎滁廢村攙眾陸篆臍悲喪匿令采筷檄正梗懇難陣欣郡職妄氧緞裴紡拍淚膠籌宋闡庭貉擱共寂陰糖矚秩獵癬篆徹旁拐就撮龜奢婚壟悲難佐疾夜斃靛鉑歷貫砧蹦哮侗嚎滇稠諸茸嘿功拴臨尚萄沽砰郴喘挺萎趙德讕畏娘僳麥鏟粘賄絡(luò)酬悼歪濤業(yè)雪彈蜘房翁捌述汲赴芬濰吮侶俯僻濘

4、資下西嘴苞軋歪炊籽略豢鈴歷速螢梧政來貸兩妨捻豐靈過常三娃哀偵改主付茬乎搐窗均雄佩鑷覺板鋤鴻伐拜躊矩賽柔昧姚帳申啞諾喚皚醞東醚抬八癡頻罷達愧柄憲紀(jì)噪碾娟霞十醒俘伸蓖晶ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128

5、M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2

6、410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默Memory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從0到7)所對應(yīng)的地址范圍x*128M到(x+1)*128M-1 SDRAM使用BANK6,它的物理起始地址為6*128M=0x30

7、000000。ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默SDRAM(刷新): 之所以稱

8、為DRAM,就是因為它要不斷進行刷新(Refresh)才能保留住數(shù)據(jù),因此它是DRAM最重要的操作。那么要隔多長時間重復(fù)一次刷新呢?目前公認(rèn)的標(biāo)準(zhǔn)是,存儲體中電容的數(shù)據(jù)有效保存期上限是64ms(毫秒,1/1000秒),也就是說每一行刷新的循環(huán)周期是64ms。這樣刷新速度就是:行數(shù)量/64ms刷新操作分為兩種:自動刷新(Auto Refresh,簡稱AR)與自刷新(Self Refresh,簡稱SR)。不論是何種刷新方式,都不需要外部提供行地址信息,因為這是一個內(nèi)部的自動操作。對于AR, SDRAM內(nèi)部有一個行地址生成器(也稱刷新計數(shù)器)用來自動的依次生成行地址。 由于刷新涉及到所有L-Bank

9、,因此在刷新過程中,所有L-Bank都停止工作,而每次刷新所占用的時間為9個時鐘周期(PC133標(biāo)準(zhǔn)),之后就可進入正常的工作狀態(tài),也就是說在這9 個時鐘期間內(nèi),所有工作指令只能等待而無法執(zhí)行。 SR則主要用于休眠模式低功耗狀態(tài)下的數(shù)據(jù)保存,這方面最著名的應(yīng)用就是STR(Suspend to RAM,休眠掛起于內(nèi)存)。在發(fā)出AR命令時,將CKE置于無效狀態(tài),就進入了SR模式,此時不再依靠系統(tǒng)時鐘工作,而是根據(jù)內(nèi)部的時鐘進行刷新操作。ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupt

10、e.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默SDRAM(寄存器設(shè)置):本實驗介紹如何使用SDRAM,這需要設(shè)置13個寄存器。由于我們只使用了BANK6,大部分的寄存器我們不必理會:1BWSCON:對應(yīng)BANK0-BANK7,每BANK使用4位。這4位分

11、別表示:aSTx:啟動/禁止SDRAM的數(shù)據(jù)掩碼引腳,對于SDRAM,此位為0;對于SRAM,此位為1。bWSx:是否使用存儲器的WAIT信號,通常設(shè)為0cDWx:使用兩位來設(shè)置存儲器的位寬:00-8位,01-16位,10-32位,11-保留。d比較特殊的是BANK0對應(yīng)的4位,它們由硬件跳線決定,只讀。對于本開發(fā)板,使用兩片容量為32Mbyte、位寬為16的SDRAM組成容量為64Mbyte、位寬為32的存儲器,所以其BWSCON相應(yīng)位為: 0010。對于本開發(fā)板,BWSCON可設(shè)為0x22111110:其實我們只需要將BANK6對應(yīng)的4位設(shè)為0010即可,其它的是什么值沒什么影響,這個值是

12、參考手冊上給出的。2BANKCON0-BANKCON5:我們沒用到,使用默認(rèn)值0x00000700即3 BANKCON6-BANKCON7:設(shè)為0x00018005 在8個BANK中,只有BANK6和BANK7可以使用SRAM或SDRAM,所以BANKCON6-7與BANKCON0-5有點不同: aMT(16:15):用于設(shè)置本BANK外接的是SRAM還是SDRAM:SRAM-0b00,SDRAM-0b11b當(dāng)MT=0b11時,還需要設(shè)置兩個參數(shù): Trcd(3:2):RAS to CAS delay,設(shè)為推薦值0b01 SCAN(1:0):SDRAM的列地址位數(shù),對于本開發(fā)板使用的SDRAM

13、 HY57V561620CT-H,列地址位數(shù)為9,所以SCAN=0b01。如果使用其他型號的SDRAM,您需要查看它的數(shù)據(jù)手冊來決定SCAN的取值:00-8位,01-9位,10-10位4 REFRESH(SDRAM refresh control register):設(shè)為0x008e0000+ R_CNT 其中R_CNT用于控制SDRAM的刷新周期,占用REFRESH寄存器的10:0位,它的取值可如下計算(SDRAM時鐘頻率就是HCLK):R_CNT = 211 + 1 SDRAM時鐘頻率(MHz) * SDRAM刷新周期(uS)在未使用PLL時,SDRAM時鐘頻率等于晶振頻率12MHz;SD

14、RAM 的刷新周期在SDRAM的數(shù)據(jù)手冊上有標(biāo)明,在本開發(fā)板使用的SDRAM HY57V561620CT-H的數(shù)據(jù)手冊上,可看見這么一行“8192 refresh cycles / 64ms”:所以,刷新周期=64ms/8192 = 7.8125 uS。對于本實驗,R_CNT = 211 + 1 12 * 7.8125 = 1955, REFRESH=0x008e0000 + 1955 = 0x008e07a35BANKSIZE:0x000000b2位7=1:Enable burst operation位5=1:SDRAM power down mode enable位4=1:SCLK is

15、active only during the access (recommended) 位2:1=010:BANK6、BANK7對應(yīng)的地址空間與BANK0-5不同。BANK0-5的地址空間都是固定的128M,地址范圍是 (x*128M)到(x+1)*128M-1,x表示0到5。但是BANK7的起始地址是可變的,您可以從S3C2410數(shù)據(jù)手冊第5章“Table 5-1. Bank 6/7 Addresses”中了解到BANK6、7的地址范圍與地址空間的關(guān)系。本開發(fā)板僅使用BANK6的64M空間,我們可以令位2:1=010(128M/128M)或001(64M/64M):這沒關(guān)系,多出來的空間程序

16、會檢測出來,不會發(fā)生使用不存在的內(nèi)存的情況后面介紹到的bootloader和linux內(nèi)核都會作內(nèi)存檢測。 位6、位3沒有使用6MRSRB6、MRSRB7:0x00000030能讓我們修改的只有位6:4(CL),SDRAM HY57V561620CT-H不支持CL=1的情況,所以位6:4取值為010(CL=2)或011(CL=3)。ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM

17、、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默Nand Flash當(dāng)OM1、OM0都是低電平即開發(fā)板插上BOOT SEL跳線時,S3C2410從NAND Flash啟動:NAND Flash的開始4k代碼會被自動地復(fù)制到內(nèi)部SRAM中。我們需要使用這4k代碼來把更多的代碼從NAND Flash中讀到SDRAM中去。NAND Flash的操作通過NFCON

18、F、NFCMD、NFADDR、NFDATA、NFSTAT和NFECC六個寄存器來完成。在開始下面內(nèi)容前,請打開S3C2410數(shù)據(jù)手冊和NAND Flash K9F1208U0M的數(shù)據(jù)手冊。ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問

19、BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默在S3C2410數(shù)據(jù)手冊218頁,我們可以看到讀寫NAND Flash的操作次序:1.Set NAND flash configuration by NFCONF register.2.Write NAND flash command onto NFCMD register.3.Write NAND flash address onto NFADDR register.4.Read/Write data while checking NAND flas

20、h status by NFSTAT register. R/nB signal should be checked before read operation or after program operation.ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每B

21、ANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默1、NFCONF:設(shè)為0xf830使能NAND Flash控制器、初始化ECC、NAND Flash片選信號nFCE=1(inactive,真正使用時再讓它等于0)設(shè)置TACLS、TWRPH0、TWRPH1。需要指出的是TACLS、TWRPH0和TWRPH1,請打開S3C2410數(shù)據(jù)手冊218頁,可以看到這三個參數(shù)控制的是NAND Flash信號線CLE/ALE與寫控制信號nWE的時序關(guān)系。我們設(shè)的值為TACLS=0,TWR

22、PH0=3,TWRPH1=0,其含義為:TACLS=1個HCLK時鐘,TWRPH0=4個HCLK時鐘,TWRPH1=1個HCLK時鐘。請打開K9F1208U0M數(shù)據(jù)手冊第13頁,在表“AC Timing Characteristics for Command / Address / Data Input”中可以看到: CLE setup Time = 0 ns,CLE Hold Time = 10 ns, ALE setup Time = 0 ns,ALE Hold Time = 10 ns, WE Pulse Width = 25 ns 可以計算,即使在HCLK=100MHz的情況下,TAC

23、LS+TWRPH0+TWRPH1=6/100 uS=60 ns,也是可以滿足NAND Flash K9F1208U0M的時序要求的。2、NFCMD: 對于不同型號的Flash,操作命令一般不一樣。對于本板使用的K9F1208U0M,請打開其數(shù)據(jù)手冊第8頁“Table 1. Command Sets”3、NFADDR:地址4、NFDATA:數(shù)據(jù),只用到低8位5、NFSTAT:狀態(tài),只用到位0,0-busy,1-ready6、NFECC:校驗現(xiàn)在來看一下如何從NAND Flash中讀出數(shù)據(jù):1、NFCONF = 0xf8302、在第一次操作NAND Flash前,通常復(fù)位一下:NFCONF &=

24、0x800 (使能NAND Flash)NFCMD = 0xff (reset命令)循環(huán)查詢NFSTAT位0,直到它等于13、NFCMD = 0 (讀命令)4、這步得稍微注意一下,請打開K9F1208U0M數(shù)據(jù)手冊第7頁,那個表格列出了在地址操作的4個步驟對應(yīng)的地址線,A8沒用到:NFADDR = addr & 0xffNFADDR = (addr9) & 0xff (注意了,左移9位,不是8位)NFADDR = (addr17) & 0xff (左移17位,不是16位)NFADDR = (addr25) & 0xff (左移25位,不是24位)5、循環(huán)查詢NFSTAT位0,直到它等于16、連

25、續(xù)讀NFDATA寄存器512次,得到一頁數(shù)據(jù)(512字節(jié))7、NFCONF |= 0x800 (禁止NAND Flash)ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央

26、蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默UARTUART的寄存器有11X3個(3個UART)之多,我選最簡單的方法來進行本實驗,用到的寄存器也有8個。不過初始化就用去了5個寄存器,剩下的3個用于接收、發(fā)送數(shù)據(jù)。1、初始化:a.把使用到的引腳GPH2、GPH3定義為TXD0、RXD0:GPHCON |= 0xa0 GPHUP |= 0x0c (上拉)bULCON0 ( UART channel 0 line control register ):設(shè)為0x03 此值含義為:8個數(shù)據(jù)位,1個停止位,無校驗,正常操作模式(與之相對的是Infra-Red Mode,

27、此模式表示0、1的方式比較特殊)。cUCON0 (UART channel 0 control register ):設(shè)為0x05 除了位3:0,其他位都使用默認(rèn)值。位3:0=0b0101表示:發(fā)送、接收都使用“中斷或查詢方式”本實驗使用查詢查詢方式。dUFCON0 (UART channel 0 FIFO control register ):設(shè)為0x00 每個UART內(nèi)部都有一個16字節(jié)的發(fā)送FIFO和接收FIFO,但是本實驗不使用FIFO,設(shè)為默認(rèn)值0eUMCON0 (UART channel 0 Modem control register ):設(shè)為0x00 本實驗不使用流控,設(shè)為默認(rèn)

28、值0fUBRDIV0 ( R/W Baud rate divisior register 0 ):設(shè)為12 本實驗未使用PLL, PCLK=12MHz,設(shè)置波特率為57600,則由公式 UBRDIVn = (int)(PCLK / (bps x 16) ) 1 可以計算得UBRDIV0 = 12,請使用S3C2410數(shù)據(jù)手冊第314頁的誤差公式驗算一下此波特率是否在可容忍的誤差范圍之內(nèi),如果不在,則需要更換另一個波特率(本實驗使用的 57600是符合的)。void init_uart( )/初始化UARTGPHCON |= 0xa0; /GPH2,GPH3 used as TXD0,RXD0G

29、PHUP = 0x0c; /GPH2,GPH3內(nèi)部上拉ULCON0 = 0x03; /8N1(8個數(shù)據(jù)位,無校驗位,1個停止位)UCON0 = 0x05; /查詢方式UFCON0 = 0x00; /不使用FIFOUMCON0 = 0x00; /不使用流控UBRDIV0 = 12; /波特率為57600 10 2、發(fā)送數(shù)據(jù):aUTRSTAT0 ( UART channel 0 Tx/Rx status register ):位2:無數(shù)據(jù)發(fā)送時,自動設(shè)為1。當(dāng)我們要使用串口發(fā)送數(shù)據(jù)時,先讀此位以判斷是否有數(shù)據(jù)正在占用發(fā)送口。位1:發(fā)送FIFO是否為空,本實驗未用此位位0:接收緩沖區(qū)是否有數(shù)據(jù),若有

30、,此位設(shè)為1。本實驗中,需要不斷查詢此位一判斷是否有數(shù)據(jù)已經(jīng)被接收。bUTXH0 (UART channel 0 transmit buffer register ): 把要發(fā)送的數(shù)據(jù)寫入此寄存器。void putc(unsigned char c)while( ! (UTRSTAT0 & TXD0READY) ); /不斷查詢,直到可以發(fā)送數(shù)據(jù)UTXH0 = c; /發(fā)送數(shù)據(jù)3、接收數(shù)據(jù):aUTRSTAT0:如同上述“2、發(fā)送數(shù)據(jù)”所列,我們用到位0bURXH0 (UART channel 0 receive buffer register ): 當(dāng)查詢到UTRSTAT0 位0=1時,讀此寄

31、存器獲得串口接收到的數(shù)據(jù)。unsigned char getc( )while( ! (UTRSTAT0 & RXD0READY) ); /不斷查詢,直到接收到了數(shù)據(jù)return URXH0; /返回接收到的數(shù)據(jù)ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BAN

32、K容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默中斷 InterrruptSUBSRCPND和SRCPND寄存器表明有哪些中斷被觸發(fā)了,正在等待處理(pending);SUBMASK(INTSUBMSK寄存器)和MASK(INTMSK寄存器)用于屏蔽某些中斷。1、“Request sources(without sub -register)”中的中斷源被觸發(fā)之后,SRCPND寄存器中相應(yīng)位被置1,如果此中斷沒有被INTMSK寄存器屏蔽、或者是快中斷(FIQ)的話,它將被進一步

33、處理2、對于“Request sources(with sub -register)”中的中斷源被觸發(fā)之后,SUBSRCPND寄存器中的相應(yīng)位被置1,如果此中斷沒有被INTSUBMSK寄存器屏蔽的話,它在 SRCPND寄存器中的相應(yīng)位也被置1,之后的處理過程就和“Request sources(without sub -register)”一樣了請打開S3C2410數(shù)據(jù)手冊357頁,“Figure 14-2. Priority Generating Block”顯示了各中斷源先經(jīng)過6個一級優(yōu)先級仲裁器選出各自優(yōu)先級最高的中斷,然后再經(jīng)過二級優(yōu)先級仲裁器選從中選出優(yōu)先級最高的中斷。IRQ的中斷優(yōu)

34、先級由RIORITY寄存器設(shè)定,請參考數(shù)據(jù)手冊365頁,RIORITY寄存器中ARB_SELn(n從0到6)用于設(shè)定仲裁器n各輸入信號的中斷優(yōu)先級,例如ARB_SEL620:19(0最高,其后各項依次降低):00 = REQ 0-1-2-3-4-5 01 = REQ 0-2-3-4-1-510 = REQ 0-3-4-1-2-5 11 = REQ 0-4-1-2-3-5RIORITY寄存器還有一項比較特殊的功能,如果ARB_MODEn設(shè)為1,則仲裁器n中輸入的中斷信號的優(yōu)先級別將會輪換。例如ARB_MODE6設(shè)為1,則仲裁器6的6個輸入信號的優(yōu)先級將如下輪換(見數(shù)據(jù)手冊358頁)使用中斷的步驟

35、:1、當(dāng)發(fā)生中斷IRQ時,CPU進入“中斷模式”,這時使用“中斷模式”下的堆棧;當(dāng)發(fā)生快中斷FIQ時,CPU進入“快中斷模式”,這時使用“快中斷模式”下的堆棧。所以在使用中斷前,先設(shè)置好相應(yīng)模式下的堆棧。2、對于“Request sources(without sub -register)”中的中斷,將INTSUBMSK寄存器中相應(yīng)位設(shè)為03、將INTMSK寄存器中相應(yīng)位設(shè)為04、確定使用此的方式:是FIQ還是IRQ。a如果是FIQ,則在INTMOD寄存器設(shè)置相應(yīng)位為1b如果是IRQ,則在RIORITY寄存器中設(shè)置優(yōu)先級ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.M

36、emory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默使用中斷的步驟:5、準(zhǔn)備好中斷處理函數(shù),a中斷向量: 在中斷向量設(shè)置好當(dāng)FIQ或IRQ被觸發(fā)時的跳轉(zhuǎn)函數(shù), IRQ、F

37、IQ的中斷向量地址分別為0x00000018、0x0000001cb對于IRQ,在跳轉(zhuǎn)函數(shù)中讀取INTPND寄存器或INTOFFSET寄存器的值來確定中斷源,然后調(diào)用具體的處理函數(shù)c對于FIQ,因為只有一個中斷可以設(shè)為FIQ,無須判斷中斷源d中斷處理函數(shù)進入和返回ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2

38、410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默6、設(shè)置CPSR寄存器中的F-bit(對于FIQ)或I-bit(對于IRQ)為0,開中斷使用中斷的步驟:IRQ進入和返回sub lr, lr, #4 計算返回地址stmdb sp!, r0-r12,lr 保存使用到的寄存器ldmia sp!, r0-r12,pc 中斷返回 表示將spsr的值賦給cpsrARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Me

39、mory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默對于FIQ,進入和返回的代碼如下:sub lr, lr, #4 計算返回地址stmdb sp!, r0-r7,lr 保存

40、使用到的寄存器ldmia sp!, r0-r7,pc 快中斷返回, 表示將spsr的值賦給cpsr中斷返回之前需要清中斷:往SUBSRCPND(用到的話)、SRCPND、INTPND中相應(yīng)位寫1即可。對于INTPND,最簡單的方法就是“INTPND=INTPND”ARM S3C2410硬件手冊重點ARM S3C2410硬件手冊重點a.Memory Controllerb.Nand Flashc.UARTd.Interrupte.TimerMemory ControllerSDRAM: S3C2410提供了外接ROM、SRAM、SDRAM、NOR Flash、NAND Flash的接口。S3C2

41、410外接存儲器的空間被分為8 BANKS,每BANK容量為128M:當(dāng)訪問BANKx(x從烙睦胞鬧躁進徊當(dāng)們烴炭射腑旅鎢肖椎底圃秦昔給殘顫央蕊璃廓與打漠芯旨乍閉薩熏革淬抒參劈作撒肖髓楞恥出驟啤棧垛敖易裝慈校阮浸衰埂蔭默Timer幾個重要寄存器介紹1、TCFG0和TCFG1:分別設(shè)為119和0x03這連個寄存器用于設(shè)置“Control Logic”的時鐘,計算公式如下:Timer input clock Frequency = PCLK / prescaler value+1 / divider value對于TIMER0,prescaler value = TCFG07:0,divider value由TCFG13:0確定(0b000:2,0b001:4,0b010:8,0b0011:16,0b01xx:使用外部TCLK0)。對于本實驗,TIMER0時鐘 = 12MHz/(119+1)/(16) = 6250Hz2、TCNTB0:設(shè)為3125在6250Hz的頻率下,此值對應(yīng)的時間為0.5S3、TCON:TIMER0對應(yīng)bit3:0:bit3用于確定在TCNT0計數(shù)到0時,是否自動將TCMPB0和TCNTB0寄存器的值裝入TCMP0和TCNT0寄存器中bit2用于確定TOUT0是否反轉(zhuǎn)輸

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論