ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第3章32 Bit RISC微處理器 S3C2410Appt課件_第1頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第3章32 Bit RISC微處理器 S3C2410Appt課件_第2頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第3章32 Bit RISC微處理器 S3C2410Appt課件_第3頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第3章32 Bit RISC微處理器 S3C2410Appt課件_第4頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第3章32 Bit RISC微處理器 S3C2410Appt課件_第5頁(yè)
已閱讀5頁(yè),還剩86頁(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、第第3章章 32 Bit RISC微微處理器處理器S3C2410A3.1 S3C2410A簡(jiǎn)介簡(jiǎn)介n3.1.1 S3C2410A內(nèi)部結(jié)構(gòu)nS3C2410是Samsung公司推出的16/32位RISC處理器,主要面向高性價(jià)比、低功耗的手持設(shè)備應(yīng)用。S3C2410有S3C2410X和S3C2410A兩個(gè)型號(hào),A型是X型的改進(jìn)型,具有更好的性能和更低的功耗。n為了降低系統(tǒng)的成本,S3C2410A在片上集成了單獨(dú)的16KB指令Cache和16KB數(shù)據(jù)Cache、用于虛擬存儲(chǔ)器管理的MMU、支持STN和TFT的LCD控制器、NAND Flash Boot Loader、系統(tǒng)管理器片選邏輯和SDRAM控制

2、器)、3通道UART、4通道DMA、4通道PWM定時(shí)器、I/O口、RTC、8通道10位ADC和觸摸屏接口、I2C總線接口、I2S總線接口、USB主設(shè)備、USB從設(shè)備、SD主卡和MMCMulti Media Card,多媒體卡卡接口、2通道的SPISerial Peripheral Interface,串行外圍設(shè)備接口以及PLL時(shí)鐘發(fā)生器。S3C2410A的CPU內(nèi)核采用的是16/32位ARM920T 內(nèi)核,同時(shí)還采用了AMBAAdvanced Microcontroller Bus Architecture,先進(jìn)的微控制器總線體系結(jié)構(gòu)新型總線結(jié)構(gòu)。nARM920T采用了MMU,AMBA總線和H

3、arvard高速緩存體系結(jié)構(gòu),該結(jié)構(gòu)具有獨(dú)立的16KB指令Cache和16KB數(shù)據(jù)Cache,每個(gè)Cache都是由8字長(zhǎng)的行組成的。nS3C2410A提供一組完整的系統(tǒng)外圍設(shè)備接口,從而大大減少了整個(gè)系統(tǒng)的成本,省去了為系統(tǒng)配置額外器件的開(kāi)銷。S3C2410A集成的片上功能包括:n 內(nèi)核電壓1.8V/2.0V,存儲(chǔ)器電壓3.3V,外部I/O電壓3.3V;n 具有16KB的I-Cache和16KB的D-Cache以及MMU;n 外部存儲(chǔ)器控制器SDRAM控制和片選邏輯);n LCD控制器最大支持4K彩色STN和256K彩色TFT提供1通道LCD專用DMA;n 4通道DMA并有外部請(qǐng)求引腳端;n

4、3通道UARTIrDAl.0,16字節(jié)Tx FIFO和16字節(jié)Rx FIFO)/2通道SPI;n 1通道多主設(shè)I2C總線和1通道I2S總線控制器;n 版本1.0SD主接口和2.11兼容版MMC卡協(xié)議; 2個(gè)USB主設(shè)接口/1個(gè)USB從設(shè)接口版本1.1); 4通道PWM定時(shí)器和1通道內(nèi)部定時(shí)器; 看門狗定時(shí)器; 117位通用I/O口和24通道外部中斷源; 電源控制模式有正常、慢速、空閑和電源關(guān)斷4種模式; 8通道10位ADC和觸摸屏接口; 具有日歷功能的RTC; 使用PLL的片上時(shí)鐘發(fā)生器。 S3C2410A的內(nèi)部結(jié)構(gòu)方框圖如圖3.1.1所示。圖3.1.1 S3C2410A內(nèi)部結(jié)構(gòu)方框圖n3.1

5、.2 S3C2410A的技術(shù)特點(diǎn) nS3C2410A具有如下特點(diǎn):n1體系結(jié)構(gòu)n 采用ARM920T CPU內(nèi)核,具有16/32位RISC體系結(jié)構(gòu)和強(qiáng)大的指令集,為手持設(shè)備和通用嵌入式應(yīng)用提供片上集成系統(tǒng)解決方案;n 增強(qiáng)的ARM體系結(jié)構(gòu)MMU,支持WinCE、EPOC 32和Linux;n 使用指令Cache、數(shù)據(jù)Cache、寫緩沖器和物理地址TAG RAM減少主存儲(chǔ)器帶寬和反應(yīng)時(shí)間對(duì)性能的影響;n ARM920T CPU內(nèi)核支持ARM調(diào)試體系結(jié)構(gòu);n 內(nèi)部采用先進(jìn)的微控制器總線體系結(jié)構(gòu)AMBA)(AMBA2.0,AHB/APB)。n2.系統(tǒng)管理器n 支持小大端方式。n 地址空間:每bank

6、 128 MBbyte)(總共1GB)。 每個(gè)bank支持可編程的8/16/32位數(shù)據(jù)總線寬度。 bank0bank6都采用固定的bank起始地址。 bank7具有可編程的bank起始地址和大小。 8個(gè)存儲(chǔ)器bank: 一6個(gè)用于ROM、SRAM及其他; 一2個(gè)用于ROM、SRAM和同步DRAM。 所有的存儲(chǔ)器bank都具有可編程的訪問(wèn)周期。 支持使用外部等待信號(hào)來(lái)填充總線周期。 支持掉電時(shí)的SDRAM自刷新模式。 支持各種類型的ROM啟動(dòng)booting),包括NOR/NAND Flash和EEPROM等。3NAND Flash Boot Loader啟動(dòng)裝載) 支持從NAND Flash存儲(chǔ)

7、器的啟動(dòng)。 采用4 KB內(nèi)部緩沖器用于啟動(dòng)引導(dǎo)。 支持啟動(dòng)之后NAND存儲(chǔ)器仍然作為外部存儲(chǔ)器使用。4Cache存儲(chǔ)器 I-Cache16 KB和D-Cache16 KB為64路組相聯(lián)Cache。 每行8字長(zhǎng)度,其中每行帶有一個(gè)有效位和兩個(gè)臟位dirty bits)。 采用偽隨機(jī)數(shù)或循環(huán)替換算法。 采用寫直達(dá)Write-through或?qū)懟豔rite-backCache操作來(lái)更新主存儲(chǔ)器。 寫緩沖器可以保存16個(gè)字的數(shù)據(jù)值和4個(gè)地址值。5時(shí)鐘和電源管理 片上MPLL和UPLL: 一UPLL產(chǎn)生用于USB主機(jī)設(shè)備操作的時(shí)鐘; 一MPLL產(chǎn)生操作MCU的時(shí)鐘,時(shí)鐘頻率最高可達(dá)266 MHz2.0V

8、內(nèi)核電壓)。 通過(guò)軟件可以有選擇地為每個(gè)功能模塊提供時(shí)鐘。 電源模式包括正常、慢速、空閑和掉電模式: 一正常模式為正常運(yùn)行模式; 一慢速模式為不加PLL的低時(shí)鐘頻率模式; 一空閑模式只停止CPU的時(shí)鐘; 一掉電模式切斷所有外設(shè)和內(nèi)核的電源。 可以通過(guò)EINT15:0或RTC報(bào)警中斷從掉電模式中喚醒處理器。6中斷控制器 55個(gè)中斷源1個(gè)看門狗定時(shí)器、5個(gè)定時(shí)器、9個(gè)UART、24個(gè)外部中斷、4個(gè)DMA、2個(gè)RTC、2個(gè)ADC、1個(gè)I2C、2個(gè)SPI、1個(gè)SDI、2個(gè)USB、1個(gè)LCD和1個(gè)電池故障); 支持電平邊沿觸發(fā)模式的外部中斷源; 可編程的電平邊沿觸發(fā)極性; 為緊急中斷請(qǐng)求提供快速中斷服務(wù)

9、FIQ支持。n7具有脈沖寬度調(diào)制具有脈沖寬度調(diào)制PWM的定時(shí)器的定時(shí)器n 具有具有PWM功能的功能的4通道通道16位定時(shí)器,可基于位定時(shí)器,可基于DMA或中斷操作的或中斷操作的1通道通道16位內(nèi)部定時(shí)器;位內(nèi)部定時(shí)器;n 可編程的占空比周期、頻率和極性;可編程的占空比周期、頻率和極性;n 能產(chǎn)生死區(qū);能產(chǎn)生死區(qū);n 支持外部時(shí)鐘源。支持外部時(shí)鐘源。n8RTC實(shí)時(shí)時(shí)鐘)實(shí)時(shí)時(shí)鐘)n 完整的時(shí)鐘特性:秒、分、時(shí)、日期、星期、月和年;完整的時(shí)鐘特性:秒、分、時(shí)、日期、星期、月和年;n 工作頻率工作頻率32.768 kHz;n 具有報(bào)警中斷;具有報(bào)警中斷;n 具有時(shí)鐘滴答中斷。具有時(shí)鐘滴答中斷。n9通

10、用通用I/O口口n 24個(gè)外部中斷口;個(gè)外部中斷口;n 多路復(fù)用的多路復(fù)用的I/O口???。n10UARn 3通道通道UART,可以基于,可以基于DMA模式或中斷模式操作;模式或中斷模式操作;n 支持支持5位、位、6位、位、7位或者位或者8位串行數(shù)據(jù)發(fā)送接納位串行數(shù)據(jù)發(fā)送接納Tx/Rx););n 支持外部時(shí)鐘作為支持外部時(shí)鐘作為UART的運(yùn)行時(shí)鐘的運(yùn)行時(shí)鐘UEXTCLK););n 波特率可編程;波特率可編程;n 支持支持IrDA 1.0;n 支持回環(huán)支持回環(huán)Loopback測(cè)試模式;測(cè)試模式;n 每個(gè)通道內(nèi)部都具有每個(gè)通道內(nèi)部都具有16字節(jié)的發(fā)送字節(jié)的發(fā)送FIFO和和16字節(jié)的接收字節(jié)的接收FI

11、FO 。n11DMA控制器控制器n 4通道的通道的DMA控制器;控制器;n 支持存儲(chǔ)器到存儲(chǔ)器、支持存儲(chǔ)器到存儲(chǔ)器、I/O到存儲(chǔ)器、存儲(chǔ)器到到存儲(chǔ)器、存儲(chǔ)器到I/O和和I/O到到I/O的傳送;的傳送;n 采用突發(fā)傳送模式提高傳送速率。采用突發(fā)傳送模式提高傳送速率。n12AD轉(zhuǎn)換和觸摸屏接口轉(zhuǎn)換和觸摸屏接口n 8通道多路復(fù)用通道多路復(fù)用ADC;n 轉(zhuǎn)換速率最大為轉(zhuǎn)換速率最大為500 KSPSKilo Samples Per Second,每秒采樣千點(diǎn)),每秒采樣千點(diǎn)),10位分辨率。位分辨率。n13LCD控制器控制器STN LCD顯示特性顯示特性n 支持支持3種類型的種類型的STN LCD顯示屏

12、:顯示屏:4位雙掃描、位雙掃描、4位單掃位單掃描和描和8位單掃描顯示類型;位單掃描顯示類型;n 對(duì)于對(duì)于STN LCD支持單色模式、支持單色模式、4級(jí)灰度、級(jí)灰度、16級(jí)灰度、級(jí)灰度、256彩色和彩色和4 096彩色;彩色;n 支持多種屏幕尺寸,典型的屏幕尺寸有:支持多種屏幕尺寸,典型的屏幕尺寸有:640480,320240,160160;n 最大虛擬屏幕大小是最大虛擬屏幕大小是4 MB;n 在在256彩色模式下支持的最大虛擬屏幕尺寸是:彩色模式下支持的最大虛擬屏幕尺寸是:4 0961 024,2 0482 048,1 0244 0960或者其它尺寸?;蛘咂渌叽?。n14. TFTThin F

13、ilm Transistor,薄膜場(chǎng)效應(yīng)晶體管彩色顯示,薄膜場(chǎng)效應(yīng)晶體管彩色顯示特性特性n 彩色彩色TFT支持支持1、2、4或或8bppbit per pixel,每像素,每像素所占位數(shù)調(diào)色顯示;所占位數(shù)調(diào)色顯示;n 支持支持16bpp無(wú)調(diào)色真彩顯示;無(wú)調(diào)色真彩顯示;n 在在24bpp模式下支持最大模式下支持最大16M彩色彩色TFT; 支持多種屏幕尺寸,典型的屏幕尺寸有:640480,320320,160160或者其它尺寸; 最大虛擬屏大小是4 MB; 在64彩色模式下支持的最大虛擬屏幕尺寸是:2 0481 024或者其它尺寸。15看門狗定時(shí)器 16位看門狗定時(shí)器; 定時(shí)器溢出時(shí)產(chǎn)生中斷請(qǐng)求或

14、系統(tǒng)復(fù)位。16I2C總線接口 1通道多主機(jī)I2C總線; 串行、8位、雙向數(shù)據(jù)傳送,在標(biāo)準(zhǔn)模式下數(shù)據(jù)傳送速率可達(dá)100kb/s,在快速模式下可達(dá)400kb/s。17I2S總線接口 1通道音頻I2S總線接口,可基于DMA方式操作; 串行,每通道8/16位數(shù)據(jù)傳輸;串行,每通道8/16位數(shù)據(jù)傳輸; 發(fā)送和接收Tx/Rx具備128字節(jié)FIFO64字節(jié)發(fā)送FIFO64字節(jié)接收FIFO); 支持I2S格式和MSB-justified數(shù)據(jù)格式。18USB主設(shè)備 2個(gè)USB主設(shè)接口; 遵從OHCI Revl.0標(biāo)準(zhǔn); 兼容USB Verl.1標(biāo)準(zhǔn)。19USB從設(shè)備 1個(gè)USB從設(shè)接口; 具備5個(gè)USB設(shè)備端口

15、; 兼容USB Verl.1標(biāo)準(zhǔn)。20SD主機(jī)接口 兼容SD存儲(chǔ)卡協(xié)議1.0版; 兼容SDIO卡協(xié)議1.0版;發(fā)送和接收采用字節(jié)FIFO; 基于DMA或中斷模式操作; 兼容MMC卡協(xié)議2.11版。21SPI接口 兼容2通道SPI協(xié)議2.11版; 發(fā)送和接收采用2字節(jié)的移位寄存器; 基于DMA或中斷模式操作。22工作電壓 內(nèi)核電壓:1.8V,最高工作頻率200 MHzS3C2410A-20);2.0 V,最高工作頻率266 MHzS3C2410A-26)。 存儲(chǔ)器和I/O電壓:3.3 V。23封裝 采用272-FBGA封裝。3.2 S3C2410A存儲(chǔ)器控制器存儲(chǔ)器控制器n3.2.1 S3C24

16、10A的存儲(chǔ)器控制器特性nS3C2410A的存儲(chǔ)器控制器提供訪問(wèn)外部存儲(chǔ)器所需要的存儲(chǔ)器控制信號(hào),具有以下特性:n 支持小大端通過(guò)軟件選擇)。n 地址空間:每個(gè)bank有128 MB總共有8個(gè)bank,共1 GB)。n 除bank0只能是16/32位寬之外,其他bank都具有可編程的訪問(wèn)位寬8/16/32位)。n 總共有8個(gè)存儲(chǔ)器bankbank0bank7):n一其中6個(gè)用于ROM,SRAM等;n一剩下2個(gè)用于ROM,SRAM,SDRAM等。n 7個(gè)固定的存儲(chǔ)器bankbank0bank6起始地址。n 最后一個(gè)bankbank7的起始地址是可調(diào)整的。n 最后兩個(gè)bankbank6和bank7

17、的大小是可編程的。n所有存儲(chǔ)器bank的訪問(wèn)周期都是可編程的。 總線訪問(wèn)周期可以通過(guò)插入外部等待來(lái)擴(kuò)展。 支持SDRAM的自刷新和掉電模式。3.2.1 S3C2410A的存儲(chǔ)器映射S3C2410A復(fù)位后,存儲(chǔ)器的映射情況如圖3.2.1所示,bank6和bank7對(duì)應(yīng)不同大小存儲(chǔ)器時(shí)的地址范圍參見(jiàn)表3.2.1。 不使用NAND Flash作為啟動(dòng)ROM 使用NAND Flash作為啟動(dòng)ROM留意:SROM表示是ROM或SRAM類型的存儲(chǔ)器;SFR指特殊功能寄存器。圖3.2.1 S3C2410A復(fù)位后的存儲(chǔ)器映射表3.2.1 bank 6和bank 7地址注:bank 6和bank 7必須具有相同

18、的存儲(chǔ)器大小。3.3 復(fù)位、時(shí)鐘和電源管理n1復(fù)位電路復(fù)位電路n在系統(tǒng)中,復(fù)位電路主要完成系統(tǒng)的上電復(fù)位和系統(tǒng)在運(yùn)行時(shí)用在系統(tǒng)中,復(fù)位電路主要完成系統(tǒng)的上電復(fù)位和系統(tǒng)在運(yùn)行時(shí)用戶的按鍵復(fù)位功能。復(fù)位電路可由簡(jiǎn)單的戶的按鍵復(fù)位功能。復(fù)位電路可由簡(jiǎn)單的RC電路構(gòu)成,也可以使電路構(gòu)成,也可以使用其他的相對(duì)較復(fù)雜,但功能更完善的電路。用其他的相對(duì)較復(fù)雜,但功能更完善的電路。n為了提供高效的電源監(jiān)視性能,選取了專門的系統(tǒng)監(jiān)視復(fù)位芯片為了提供高效的電源監(jiān)視性能,選取了專門的系統(tǒng)監(jiān)視復(fù)位芯片IMP811S。該芯片性能優(yōu)良,可以通過(guò)手動(dòng)控制系統(tǒng)的復(fù)位,。該芯片性能優(yōu)良,可以通過(guò)手動(dòng)控制系統(tǒng)的復(fù)位,同時(shí)還可以實(shí)

19、時(shí)監(jiān)控系統(tǒng)的電源。一旦系統(tǒng)電源低于系統(tǒng)復(fù)位的同時(shí)還可以實(shí)時(shí)監(jiān)控系統(tǒng)的電源。一旦系統(tǒng)電源低于系統(tǒng)復(fù)位的閥值閥值2.9V),),IMP811S將會(huì)對(duì)系統(tǒng)進(jìn)行復(fù)位。系統(tǒng)復(fù)位電路將會(huì)對(duì)系統(tǒng)進(jìn)行復(fù)位。系統(tǒng)復(fù)位電路如圖如圖3.3.1所示。所示。圖3.3.1 系統(tǒng)復(fù)位電路n也可以采用如圖3.3.2所示較簡(jiǎn)單的RC復(fù)位電路,經(jīng)使用證明,其復(fù)位邏輯是可靠的。該復(fù)位電路的工作原理如下:在系統(tǒng)上電時(shí),通過(guò)電阻R108向電容C162充電,當(dāng)C162兩端的電壓未達(dá)到高電平的門限電壓時(shí),RESET端輸出為高電平,系統(tǒng)處于復(fù)位狀態(tài);當(dāng)C162兩端的電壓達(dá)到高電平的門限電壓時(shí),RESET端輸出為低電平,系統(tǒng)進(jìn)入正常工作狀態(tài)。

20、n當(dāng)用戶按下按鈕RESET時(shí),C162兩端的電荷被放掉,RESET端輸出為高電平,系統(tǒng)進(jìn)入復(fù)位狀態(tài),再重復(fù)以上的充電過(guò)程,系統(tǒng)進(jìn)入正常工作狀態(tài)。n兩級(jí)非門電路用于按鈕去抖動(dòng)和波形整形;nRESET端的輸出狀態(tài)與RESET端相反,用于低電平復(fù)位的器件;通過(guò)調(diào)整R108和C162的參數(shù),可調(diào)整復(fù)位狀態(tài)的時(shí)間。圖3.3.2 系統(tǒng)的復(fù)位電路n2時(shí)鐘電路時(shí)鐘電路n在在S3C2410A中的時(shí)鐘控制邏輯能夠產(chǎn)生中的時(shí)鐘控制邏輯能夠產(chǎn)生CPU所需的所需的FCLK時(shí)鐘時(shí)鐘信號(hào)。信號(hào)。AHB總線外圍設(shè)備所需的總線外圍設(shè)備所需的HCLK時(shí)鐘信號(hào),以及時(shí)鐘信號(hào),以及APB總線總線外圍設(shè)備所需的外圍設(shè)備所需的PCLK時(shí)

21、鐘信號(hào)。時(shí)鐘信號(hào)。nS3C2410A有兩個(gè)鎖相環(huán)有兩個(gè)鎖相環(huán)Phase Locked Loops,PLL),一),一個(gè)用于個(gè)用于FCLK,HCLK和和PCLK,另一個(gè)專門用于,另一個(gè)專門用于USB模塊模塊48 MHz)。時(shí)鐘控制邏輯可以在不需要)。時(shí)鐘控制邏輯可以在不需要PLL的情況下產(chǎn)生慢速時(shí)鐘,的情況下產(chǎn)生慢速時(shí)鐘,并且可以通過(guò)軟件來(lái)控制時(shí)鐘與每個(gè)外圍模塊是連接還是斷開(kāi),并且可以通過(guò)軟件來(lái)控制時(shí)鐘與每個(gè)外圍模塊是連接還是斷開(kāi),從而降低功耗。從而降低功耗。nS3C2410A微處理器的主時(shí)鐘可以由外部時(shí)鐘源提供,也可以由微處理器的主時(shí)鐘可以由外部時(shí)鐘源提供,也可以由外部振蕩器提供,如圖外部振蕩

22、器提供,如圖3.3.3所示,采用哪種方式通過(guò)引腳所示,采用哪種方式通過(guò)引腳OM3:2來(lái)進(jìn)行選擇。來(lái)進(jìn)行選擇。n OM3:2=00時(shí),時(shí),MPLL和和UPLL的時(shí)鐘均選擇外部晶體的時(shí)鐘均選擇外部晶體振蕩器;振蕩器;n OM3:2=0l時(shí),時(shí),MPLL的時(shí)鐘選擇外部晶體振蕩器;的時(shí)鐘選擇外部晶體振蕩器;UPLL選擇外部時(shí)鐘源;選擇外部時(shí)鐘源;n OM3:2=10時(shí),MPLL的時(shí)鐘選擇外部時(shí)鐘源;UPLL選擇外部晶體振蕩器; OM3:2=11時(shí),MPLL和UPLL的時(shí)鐘均選擇外部時(shí)鐘源。在系統(tǒng)中選擇OM3:2均接地的方式,即采用外部振蕩器提供系統(tǒng)時(shí)鐘。系統(tǒng)時(shí)鐘源直接采用外部晶振,內(nèi)部PLL電路可以調(diào)

23、整系統(tǒng)時(shí)鐘,使系統(tǒng)運(yùn)行速度更快。S3C2410X的系統(tǒng)時(shí)鐘電路見(jiàn)圖3.3.3,其外部振蕩器由12MHz晶振和2個(gè)15pF的微調(diào)電容組成。振蕩電路輸出接到S3C2410X微處理器的XTIPLL腳,輸入由XTOPLL提供。由于片內(nèi)的PLL電路兼有頻率放大和信號(hào)提純的功能,因此,系統(tǒng)可以以較低的外部時(shí)鐘信號(hào)獲得較高的工作頻率,從而降低因高速開(kāi)關(guān)時(shí)鐘所造成的高頻噪聲。圖3.3.3 S3C2410X微處理器外部時(shí)鐘電路n3電源電路電源電路n對(duì)于電源控制邏輯,對(duì)于電源控制邏輯,S3C2410A具有多種電源管理方案,對(duì)于每具有多種電源管理方案,對(duì)于每個(gè)給定的任務(wù)都具有最優(yōu)的功耗。在個(gè)給定的任務(wù)都具有最優(yōu)的功

24、耗。在S3C2410A中的電源管理模中的電源管理模塊具有正常模式、慢速模式、空閑模式和掉電模式塊具有正常模式、慢速模式、空閑模式和掉電模式4種有效模式。種有效模式。n在正常模式,電源管理模塊為在正常模式,電源管理模塊為CPU和和S3C2410A中的所有外圍設(shè)中的所有外圍設(shè)備提供時(shí)鐘。在這個(gè)模式,由于所有外圍設(shè)備都處于開(kāi)啟狀態(tài),備提供時(shí)鐘。在這個(gè)模式,由于所有外圍設(shè)備都處于開(kāi)啟狀態(tài),因此功耗達(dá)到最大。用戶可以通過(guò)軟件來(lái)控制外圍設(shè)備的操作。因此功耗達(dá)到最大。用戶可以通過(guò)軟件來(lái)控制外圍設(shè)備的操作。例如,如果不需要定時(shí)器,那么用戶可以斷開(kāi)定時(shí)器的時(shí)鐘,以例如,如果不需要定時(shí)器,那么用戶可以斷開(kāi)定時(shí)器的

25、時(shí)鐘,以降低功耗。降低功耗。n慢速模式又稱無(wú)慢速模式又稱無(wú)PLL模式。與正常模式不同,在慢速模式不使用模式。與正常模式不同,在慢速模式不使用PLL,而使用外部時(shí)鐘,而使用外部時(shí)鐘XTIPLL或或EXTCLK直接作為直接作為S3C2410A中的中的FCLK。在這種模式下,功耗大小僅取決外部時(shí)。在這種模式下,功耗大小僅取決外部時(shí)鐘的頻率,功耗與鐘的頻率,功耗與PLL無(wú)關(guān)。無(wú)關(guān)。n在空閑模式下,電源管理模塊只斷開(kāi)在空閑模式下,電源管理模塊只斷開(kāi)CPU內(nèi)核的時(shí)鐘內(nèi)核的時(shí)鐘FCLK),),但仍為所有其他外圍設(shè)備提供時(shí)鐘。空閑模式降低了由但仍為所有其他外圍設(shè)備提供時(shí)鐘??臻e模式降低了由CPU內(nèi)核內(nèi)核產(chǎn)生的

26、功耗。任何中斷請(qǐng)求可以從空閑模式喚醒產(chǎn)生的功耗。任何中斷請(qǐng)求可以從空閑模式喚醒CPU。n在掉電模式,電源管理模塊斷開(kāi)內(nèi)部電源。因此,除喚醒邏輯以外,CPU和內(nèi)部邏輯都不會(huì)產(chǎn)生功耗。激活掉電模式需要兩個(gè)獨(dú)立的電源,一個(gè)電源為喚醒邏輯供電;另一個(gè)為包括CPU在內(nèi)的其他內(nèi)部邏輯供電,并且這個(gè)電源開(kāi)關(guān)可以控制。在掉電模式下,為CPU和內(nèi)部邏輯供電的第二個(gè)電源將關(guān)斷。通過(guò)EINT15:0或RTC報(bào)警中斷可以從掉電模式喚醒S3C2410A。n在設(shè)計(jì)系統(tǒng)電源電路之前對(duì)S3C2410A的電源引腳進(jìn)行分析:VDDalive引腳給處理器復(fù)位模塊和端口寄存器提供1.8V電壓;VDDi和VDDiarm為處理器內(nèi)核提供

27、1.8V電壓;VDDi_MPLL為MPLL提供1.8V模擬電源和數(shù)字電源;VDDi_UPLL為UPLL提供1.8V模擬電源和數(shù)字電源;VDDOP和VDDMOP分別為處理器端口和處理器存儲(chǔ)器端口提供3.3V電壓;VDD_ADC為處理器內(nèi)的ADC系統(tǒng)提供3.3V電壓;VDDRTC為時(shí)鐘電路提供1.8V電壓,該電壓在系統(tǒng)掉電后仍需要維持。系統(tǒng)需要使用3.3V和1.8V的直流穩(wěn)壓電源。n為簡(jiǎn)化系統(tǒng)電源電路的設(shè)計(jì),要求整個(gè)系統(tǒng)的輸入電壓為高質(zhì)量的5V直流穩(wěn)壓電源。VDD3.3V提供給VDDMOP,VDDIO,VDDADC和VCC引腳,VDD1.8V提供給VDDi_X。n5V輸入電壓經(jīng)過(guò)DC-DC轉(zhuǎn)換器可

28、完成5V到3.3V和1.8V的電壓轉(zhuǎn)換。系統(tǒng)中RTC所需電壓由1.8V電源和后備電源共同提供,在系統(tǒng)工作時(shí)1.8V電壓有效,系統(tǒng)掉電時(shí)后備電池開(kāi)始工作,以供RTC電路所需的電源,同時(shí)使用發(fā)光二極管指示電源狀態(tài)。S3C2410A電源電路如圖3.3.4所示。(a3.3V電源電路(b1.8V電源電路(電阻R203100K,R20447.5K,阻值需要修改)圖3.3.4 電源電路3.4 S3C2410A的I/O口n3.4.1 S3C2410A的IO口配置nS3C2410A共有117個(gè)多功能復(fù)用輸入輸出端口I/O口),分為端口A端口H 8組,其中8組I/O口按照其位數(shù)的不同又可分為:端口AGPA是1個(gè)2

29、3位輸出口;端口BGPB和端口HGPH是2個(gè)11位I/O口;端口CGPC)、端口DGPD)、端口EGPE和端口GGPG是4個(gè)16位I/O口;端口FGPF是1個(gè)8位I/O口。n為了滿足不同系統(tǒng)設(shè)計(jì)的需要,每個(gè)I/O口可以很容易地通過(guò)軟件對(duì)進(jìn)行配置。每個(gè)引腳的功能必須在啟動(dòng)主程序之前進(jìn)行定義。如果一個(gè)引腳沒(méi)有使用復(fù)用功能,那么它可以配置為I/O口。留意:端口 A除了作為功能口外,只能夠作為輸出口使用。nS3C2410A的I/O口配置情況如表3.4.13.4.7所列。表3.4.1 S3C2410A的端口A I/O口配置情況端口A可選擇的引腳端功能GPA22輸出nFCEGPA21輸出nRSTOUTGP

30、A20輸出nFREGPA19輸出nFWEGPA18輸出ALEGPA17輸出CLEGPA16GPA12輸出nGCS5nGCS1GPA11GPA1輸出ADDR26ADDR16GPA0輸出ADDR0端口B可選擇的引腳端功能GPB10輸入/輸出nXDREQ0GPB9輸入/輸出nXDACK0GPB8輸入/輸出nXDREQ1GPB7輸入/輸出nXDACK1GPB6輸入/輸出nXBREQGPB5輸入/輸出nXBACK表3.4.2 S3C2410A的端口B I/O口配置情況端口C可選擇的引腳端功能GPC15GPC8輸入/輸出VD7 VD0GPC7GPC5輸入/輸出LCDVF2LCDVF0GPC4輸入/輸出VM

31、GPC3輸入/輸出VFRAMEGPC2輸入/輸出VLINE表3.4.3 S3C2410A的端口C I/O口配置情況端口D可選擇的引腳端功能GPD15輸入/輸出VD23nSS0GPD14輸入/輸出VD22nSS1GPD13GPD0輸入/輸出VD21VD8表3.4.4 S3C2410A的端口D I/O口配置情況端口E可選擇的引腳端功能GPE15輸入/輸出IICSDAGPE14輸入/輸出IICSCLGPE13輸入/輸出SPICLK0GPE12輸入/輸出SPIMOSI0GPE11輸入/輸出SPIMISO0GPE10GPE7輸入/輸出SDDAT3SDDAT0GPE6輸入/輸出SDCMDGPE5輸入/輸出

32、SDCLK表3.4.5 S3C2410A的端口E、F I/O口配置情況GPE4輸入/輸出I2SSDOI2SSDIGPE3輸入/輸出I2SSDInSS0GPE2輸入/輸出CDCLKGPE1輸入/輸出I2SSCLKGPE0輸入/輸出I2SLRCK端口FGPF7 GPF0輸入/輸出EINT7 EINT0端口端口G可選擇的引腳端功能可選擇的引腳端功能GPG15輸入/輸出EINT23nYPONGPG14輸入/輸出EINT22YMONGPG13輸入/輸出EINT21nXPONGPG12輸入/輸出EINT20XMONGPG11輸入/輸出EINT19TCLK1GPG10GPG8輸入/輸出EINT18EINT1

33、6GPG7輸入/輸出EINT15SPICLK1表3.4.6 S3C2410A的端口G I/O口配置情況GPG6輸入/輸出EINT14SPIMOSI1GPG5輸入/輸出EINT13SPIMISO1GPG4輸入/輸出EINT12LCD_PWRENGPG3輸入/輸出EINT11nSS1GPG2輸入/輸出EINT10nSS0GPG1輸入/輸出EINT9輸入/輸出端口 H可選擇的引腳端功能GPH10輸入/輸出CLKOUT1GPH9輸入/輸出CLKOUT0GPH8輸入/輸出UEXTCLKGPH7輸入/輸出RXD2nCTS1GPH6輸入/輸出TXD2nRTS1GPH5輸入/輸出RXD1GPH4輸入/輸出TX

34、D1GPH3輸入/輸出RXD0GPH2輸入/輸出TXD0GPH1輸入/輸出nRTS0GPH0輸入/輸出nCTS0表3.4.7 S3C2410A的端口H I/O口配置情況n3.4.2 S3C2410A的IO口寄存器n在S3C2410A中,大多數(shù)的引腳端都是復(fù)用的,所以對(duì)于每一個(gè)引腳端都需要定義其功能。為了使用I/O口,首先需要定義引腳的功能。每個(gè)引腳端的功能通過(guò)端口控制寄存器PnCON來(lái)定義配置)。與配置I/O口相關(guān)的寄存器包括:端口控制寄存器GPACONGPHCON)、端口數(shù)據(jù)寄存器GPADATGPHDAT)、端口上拉寄存器GPBUPGPHUP)、雜項(xiàng)控制寄存器以及外部中斷控制寄存器EXTIN

35、TN等。在掉電模式,如果GPF0GPF7和GPG0GPG7用作為喚醒信號(hào),那么這些端口必須配置為中斷模式。n如果端口配置為輸出口,數(shù)據(jù)可以寫入到端口數(shù)據(jù)寄存器PnDAT的相應(yīng)位中;如果將端口配置為輸入口,則可以從端口數(shù)據(jù)寄存器PnDAT的相應(yīng)位中讀出數(shù)據(jù)。n端口上拉寄存器用于控制每組端口的上拉電阻為使能/不使能。如果相應(yīng)位設(shè)置為0,則表示該引腳的上拉電阻使能;為1,則表示該引腳的上拉電阻不使能。如果使能了端口上拉寄存器,則不論引腳配置為哪種功能輸入、輸出、DATAn、EINTn等),上拉電阻都會(huì)起作用。n雜項(xiàng)控制寄存器用于控制數(shù)據(jù)端口的上拉電阻、高阻狀態(tài)、USB Pad和CLKOUT的選擇。n

36、24個(gè)外部中斷通過(guò)不同的信號(hào)方式被請(qǐng)求。EXTINTn寄存器用于配置這些信號(hào)對(duì)于外部中斷請(qǐng)求采用的是低電平觸發(fā)、高電平觸發(fā)、下降沿觸發(fā)、上升沿觸發(fā)還是雙邊沿觸發(fā)。有8個(gè)外部中斷有數(shù)字濾波器。僅16 EINT引腳端EINT15:0)用來(lái)作為喚醒源。n所有GPIO寄存器的值在掉電模式下都會(huì)被保存。外部中斷屏蔽寄存器EINTMASK不能阻止從掉電模式喚醒,但是如果EINTMASK正在屏蔽的是EINT15:4中的某位,則可以實(shí)現(xiàn)喚醒,不過(guò)寄存器SRCPND的位EINT4 和EINT8 23在剛剛喚醒后不能設(shè)置為1。n相關(guān)寄存器的設(shè)置分別描述如下:寄存器地址讀/寫描述復(fù)位值GPACON 0 x56000

37、000 R/W 配置端口A引腳端,使用位22:0。設(shè)置為0:輸出引腳端;設(shè)置為1:第2功能0 x7FFFFF GPADAT0 x56000004 R/W 端口A數(shù)據(jù)寄存器,使用位22:0 未定義 保留0 x56000008 保留未定義保留0 x5600000C 保留未定義1端口端口A控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.8) 表表3.4.8 端口端口A控制寄存器控制寄存器寄存器 地址 讀/寫描述復(fù)位值 GPBCON 0 x56000010 R/W 配置端口B引腳端,使用位21:0,分別對(duì)端口B的11個(gè)引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留0 x0 GPBDAT 0

38、 x56000014 R/W 端口B數(shù)據(jù)寄存器,使用位10:0 未定義GPBUP 0 x56000018 R/W 端口B上拉電阻不使能寄存器,使用位10:0 。0:使能;1:不使能0 x0 保留0 x5600001C 保留未定義2端口端口B控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.9) 表表.3.4.9 端口端口B控制寄存器控制寄存器寄存器地址 讀/寫 描述 復(fù)位值GPCCON 0 x56000020 R/W 配置端口C引腳端,使用位31:0,分別對(duì)端口B的16個(gè)引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留0 x0 GPCDAT 0 x56000024 R/W 端口C數(shù)據(jù)寄

39、存器,使用位15:0 未定義GPCUP 0 x56000028 R/W 端口C上拉電阻不使能寄存器,使用位15:0 。0:使能;1:不使能0 x0 保留0 x5600002C 保留未定義3端口端口C控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.10) 表表3.4.10 端口端口 C控制寄存器控制寄存器寄存器地址 讀/寫 描述 復(fù)位值GPDCON 0 x56000030 R/W 配置端口D引腳端,使用位31:0,分別對(duì)端口B的16個(gè)引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0 x0 GPDDAT 0 x56000034 R/W 端口D數(shù)據(jù)寄存器,使用位15:0 未定義

40、GPDUP 0 x56000038 R/W 端口D上拉電阻不使能寄存器,使用位15:0。0:使能;1:不使能0 xF000 保留 0 x5600003C 保留未定義 4端口端口D控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.11) 表表3.4.11 端口端口D控制寄存器控制寄存器 寄存器地址 讀/寫 描述 復(fù)位值GPECON 0 x56000040 R/W 配置端口E引腳端,使用位31:0,分別對(duì)端口B的16個(gè)引腳端進(jìn)行配置。 00:輸入;01:輸出;10:第2功能;11:保留/第3功能0 x0 GPEDAT 0 x56000044 R/W 端口E數(shù)據(jù)寄存器,使用位15:0 未定義 GPEUP 0

41、x56000048 R/W 端口E上拉電阻不使能寄存器,使用位15:0 。0:使能;1:不使能0 x0 保留0 x5600004C 保留未定義5端口端口E控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.12) 表表3.4.12 端口端口 E控制寄存器控制寄存器寄存器地址 讀/寫 描述 復(fù)位值GPFCON 0 x56000050 R/W 配置端口F引腳端,使用位15:0,分別對(duì)端口B的8個(gè)引腳端進(jìn)行配置。 00:輸入;01:輸出;10:第2功能;11:保留0 x0 GPFDAT 0 x56000054 R/W 端口F數(shù)據(jù)寄存器,使用位7:0 未定義 GPFUP 0 x56000058 R/W 端口F上拉

42、電阻不使能寄存器,使用位7:0 。0:使能;1:不使能0 x0 保留0 x5600005C 保留未定義6端口端口F控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.13) 表表3.4.13 端口端口F控制寄存器控制寄存器寄存器地址 讀/寫 描述 復(fù)位值GPGCON 0 x56000060 R/W 配置端口G引腳端,使用位31:0,分別對(duì)端口B的16個(gè)引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0 x0 GPGDAT 0 x56000064 R/W 端口G數(shù)據(jù)寄存器,使用位15:0 未定義 GPGUP 0 x56000068 R/W 端口G上拉電阻不使能寄存器,使用位15:

43、0 。0:使能;1:不使能0 xF800保留 0 x5600006C 保留未定義7端口端口G控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.14) 表表3.4.14 端口端口G控制寄存器控制寄存器寄存器地址 讀/寫 描述 復(fù)位值GPHCON 0 x56000070 R/W 配置端口H引腳端,使用位21:0,分別對(duì)端口B的11個(gè)引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0 x0 GPHDAT 0 x56000074 R/W 端口H數(shù)據(jù)寄存器,使用位10:0 未定義 GPHUP 0 x56000078 R/W 端口H上拉電阻不使能寄存器,使用位10:0 。0:使能;1:不

44、使能0 x0 保留 0 x5600007C 保留未定義8端口端口H控制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.15) 表表3.4.15 端口端口H控制寄存器控制寄存器寄存器地址 讀/寫 描述 復(fù)位值MISCCR 0 x56000080 R/W 上拉電阻、高阻狀態(tài)、USB Pad和CLKOUT的選擇控制 0 x103309雜項(xiàng)控制寄存器參見(jiàn)表雜項(xiàng)控制寄存器參見(jiàn)表3.4.16) 表表3.4.16 雜項(xiàng)控制寄存器雜項(xiàng)控制寄存器寄存器地址 讀/寫 描述 復(fù)位值DCLKCON 0 x56000084 R/W DCLK0/1 控制,位27:16控制DCLK1,位11:0控制DCLK9 0 x0 10DCLK控

45、制寄存器參見(jiàn)表控制寄存器參見(jiàn)表3.4.17) 表表3.4.17 DCLK控制寄存器控制寄存器寄存器地址讀/寫描述復(fù)位值EXTINT00 x56000088R/W外部中斷控制寄存器0 ,使用位30:0,分別對(duì)EINT7EINT0觸發(fā)信號(hào)進(jìn)行配置。000:低電平觸發(fā);001:高電平觸發(fā);01x:下降沿下降;10 x:上升沿觸發(fā);11x:雙邊沿觸發(fā)0 x0EXTINT10 x5600008CR/W外部中斷控制寄存器1,使用位30:0,分別對(duì)EINT15EINT8觸發(fā)信號(hào)進(jìn)行配置。000:低電平觸發(fā);001:高電平觸發(fā);01x:下降沿下降;10 x:上升沿觸發(fā);11x:雙邊沿觸發(fā)0 x011.外部中斷

46、控制寄存器參見(jiàn)表外部中斷控制寄存器參見(jiàn)表3.4.18) 表表3.4.18 外部中斷控制寄存器外部中斷控制寄存器EXTINT20 x56000090R/W外部中斷控制寄存器2,使用位30:0,分別對(duì)EINT23EINT16觸發(fā)信號(hào)進(jìn)行配置。000:低電平觸發(fā);001:高電平觸發(fā);01x:下降沿下降;10 x:上升沿觸發(fā);11x:雙邊沿觸發(fā)。位31為EINT23濾波器使能控制,1:使能;0:不使能0 x0寄存器地址 讀/寫 描述 復(fù)位值EINTFLT0 0 x56000094 R/W 保留EINTFLT1 0 x56000098 R/W 保留EINTFLT2 0 x5600009C R/W 外部中

47、斷控制寄存器 2 ,控制EINT19EINT16的濾波器時(shí)鐘和帶寬0 x0 EINTFLT3 0 x4C6000A0 R/W 外部中斷控制寄存器 3 ,控制EINT23EINT20的濾波器時(shí)鐘和帶寬0 x0 12外部中斷濾波寄存器參見(jiàn)表外部中斷濾波寄存器參見(jiàn)表3.4.19) 表表3.4.19 外部中斷濾波寄存器外部中斷濾波寄存器寄存器地址 讀/寫 描述 復(fù)位值EINTMASK 0 x560000A4 R/W 外部中斷屏蔽寄存器,使用位23:4 控制EINT23EINT4中斷屏蔽。0:使能中斷;1:屏蔽中斷0 x00FFFFF0 寄存器地址 讀/寫 描述 復(fù)位值EINTPEND 0 x56000

48、0A8 R/W 外部中斷掛起寄存器,使用位23:4 控制EINT23EINT4中斷請(qǐng)求。0:不被請(qǐng)求;1:被請(qǐng)求 0 x0 14.外部中斷掛起寄存器參見(jiàn)表外部中斷掛起寄存器參見(jiàn)表3.4.21) 表表3.4.21 外部中斷掛起寄存器外部中斷掛起寄存器13.外部中斷屏蔽寄存器參見(jiàn)表外部中斷屏蔽寄存器參見(jiàn)表3.4.20) 表表3.4.20 外部中斷屏蔽寄存器外部中斷屏蔽寄存器寄存器地址 讀/寫 描述 復(fù)位值GSTATUS0 0 x560000AC R 外部引腳端狀態(tài)Undefined GSTATUS1 0 x560000B0 R 芯片ID 0 x32410000 GSTATUS2 0 x560000

49、B4 R/W 復(fù)位狀態(tài) 0 x1 GSTATUS3 0 x560000B8 R/W Infrom 寄存器,可以利用nRESET和看門狗定時(shí)器清零0 x0 GSTATUS4 0 x560000BC R/W Infrom寄存器,可以利用nRESET和看門狗定時(shí)器清零0 x0 15.通用狀態(tài)寄存器參見(jiàn)表通用狀態(tài)寄存器參見(jiàn)表3.4.22) 表表3.4.22 通用狀態(tài)寄存器通用狀態(tài)寄存器3.5 S3C2410A的中斷控制的中斷控制n3.5.1 ARM系統(tǒng)的中斷處理n在ARM系統(tǒng)中,支持復(fù)位、未定義指令、軟中斷、預(yù)取中止、數(shù)據(jù)中止、IRQ和FIQ 7種異常,每種異常對(duì)應(yīng)于不同的處理器模式,有對(duì)應(yīng)的異常向量

50、固定的存儲(chǔ)器地址)。n在ARM系統(tǒng)中,一旦有中斷發(fā)生,正在執(zhí)行的程序都會(huì)停下來(lái),通常都會(huì)執(zhí)行如下的中斷步驟:n(1保存現(xiàn)場(chǎng)。保存當(dāng)前的PC值到R14,保存當(dāng)前的程序運(yùn)行狀態(tài)到SPSR。n(2模式切換。根據(jù)發(fā)生的中斷類型,進(jìn)入IRQ模式或FIQ模式。n(3獲取中斷服務(wù)子程序地址。PC指針跳到異常向量表所保存的IRQ或FIQ地址處,IRQ或FIQ的異常向量地址處一般保存的是中斷服務(wù)子程序的地址,PC指針跳入到中斷服務(wù)子程序,進(jìn)行中斷處理。 n(4多個(gè)中斷請(qǐng)求處理。在ARM系統(tǒng)中,可以存在多個(gè)中斷請(qǐng)求源,比如串口中斷、AD中斷、外部中斷、定時(shí)器中斷及DMA中斷等,所以可能出現(xiàn)多個(gè)中斷源同時(shí)請(qǐng)求中斷的

51、情況。為了更好地n區(qū)分各個(gè)中斷源,通常為這些中斷定義不同的優(yōu)先級(jí)別,并為每一個(gè)中斷設(shè)置一個(gè)中斷標(biāo)志位。當(dāng)發(fā)生中斷時(shí),通過(guò)判斷中斷優(yōu)先級(jí)以及訪問(wèn)中斷標(biāo)志位的狀態(tài)來(lái)識(shí)別哪一個(gè)中斷發(fā)生了,進(jìn)而調(diào)用相應(yīng)的函數(shù)進(jìn)行中斷處理。n(5中斷返回,恢復(fù)現(xiàn)場(chǎng)。當(dāng)完成中斷服務(wù)子程序后,將SPSR中保存的程序運(yùn)行狀態(tài)恢復(fù)到CPSR中,R14中保存的被中斷程序的地址恢復(fù)到PC中,繼續(xù)執(zhí)行被中斷的程序。n3.5.2 S3C2410A的中斷控制器nS3C2410A采用ARM920T CPU內(nèi)核,ARM920T CPU的中斷包含有IRQ和FIQ。IRQ是普通中斷,F(xiàn)IQ是快速中斷,F(xiàn)IQ的優(yōu)先級(jí)高于IRQ。FIQ中斷通常在進(jìn)

52、行大批量的復(fù)制、數(shù)據(jù)傳輸?shù)裙ぷ鲿r(shí)使用。nS3C2410A通過(guò)對(duì)程序狀態(tài)寄存器PSR中的F位和I位進(jìn)行設(shè)置控制CPU的中斷響應(yīng)。如果設(shè)置PSR的F位為1,則CPU不會(huì)響應(yīng)來(lái)自中斷控制器的FIQ中斷;如果設(shè)置PSR的I位為1,則CPU不會(huì)響應(yīng)來(lái)自中斷控制器的IRQ中斷。如果設(shè)置PSR的F位或I位設(shè)置為0,同時(shí)將中斷屏蔽寄存器INTMSK中的相對(duì)應(yīng)位設(shè)置為0,CPU響應(yīng)來(lái)自中斷控制器的IRQ或FIQ中斷請(qǐng)求。n中斷屏蔽寄存器用于指示中斷是否禁止。如果設(shè)置中斷屏蔽寄存器中的相對(duì)應(yīng)屏蔽位為1,表示相對(duì)應(yīng)的中斷禁止;如果設(shè)置為0,表示中斷發(fā)生時(shí)將正常執(zhí)行中斷服務(wù)。如果發(fā)生中斷時(shí)相對(duì)應(yīng)的屏蔽位正好為1,則中

53、斷掛起寄存器中的相對(duì)中斷源掛起位將置1。nS3C2410A有SRCPND中斷源掛起寄存器和INTPND中斷掛起寄存器兩個(gè)中斷掛起寄存器。SRCPND和INTPND兩個(gè)掛起寄存器用于指示某個(gè)中斷請(qǐng)求是否處于掛起狀態(tài)。當(dāng)多個(gè)中斷源請(qǐng)求中斷服務(wù)時(shí),SRCPND寄存器中的相應(yīng)位設(shè)置為1,仲裁過(guò)程結(jié)束后INTPND寄存器中只有1位被自動(dòng)設(shè)置為1。nS3C2410A中的中斷控制器能夠接收來(lái)自56個(gè)中斷源的請(qǐng)求,這些中斷源來(lái)自DMA控制器、UART、I2C及外部中斷引腳等。從表3.5.1可以看出,S3C2410A共有32個(gè)中斷請(qǐng)求信號(hào)。S3C2410A采用了中斷共享技術(shù),INT_UARTO、INT_UART

54、1、INT_UART2、EINT8_23和EINT4_7為多個(gè)中斷源共享使用的中斷請(qǐng)求信號(hào)。中斷請(qǐng)求的優(yōu)先級(jí)邏輯是由7個(gè)仲裁器組成的,其中包括6個(gè)一級(jí)仲裁器和1個(gè)二級(jí)仲裁器,如圖3.5.1所示。每個(gè)仲裁器是否使能由寄存器PRIORITY6:0決議。每個(gè)仲裁器可以處理46個(gè)中斷源,從中選出優(yōu)先級(jí)最高的。優(yōu)先級(jí)順序由寄存器PRIORITY20:7的相應(yīng)位決定。 表3.5.1 S3C2410A 的中斷源中斷源描述仲裁器分組INT_ADCADCEOC和觸摸中斷(INT_ADC/INT_TC)ARB5INT_RTCRTC報(bào)警中斷ARB5INT_SPI1SPI1中斷ARB5INT_UART0UART0中斷

55、(故障、接收和發(fā)送)ARB5INT_IICI2 C中斷ARB4VINT_USBHUSB主設(shè)備中斷ARB4INT_USBUSB從設(shè)備中斷ARB4保留保留ARB4INT_UART1UART1中斷(故障、接收和發(fā)送)ARB4INT_SPI0SPI0中斷ARB4INT_SDISDI中斷ARB3INT_DMA3DMA通道3中斷ARB3INT_DMA2DMA通道2中斷ARB3INT_DMA1DMA通道1中斷ARB3INT_DMA0DMA通道0中斷ARB3INT_LCDLCD中斷ARB3INT_UART2UART2中斷(故障、接收和發(fā)送)ARB2INT_TIMER4定時(shí)器4中斷ARB2INT_TIMERS定

56、時(shí)器3中斷ARB2INT_TIMER2定時(shí)器2中斷ARB2INT_TIMER1定時(shí)器1中斷ARB2INT_TIMER0定時(shí)器0中斷ARB2INT_WDT看門狗定時(shí)器中斷ARB1INT_TICKRTC時(shí)鐘滴答中斷ARB1nBATT_FLT電源故障中斷ARB1保留保留ARB1EINT8_23外部中斷823ARB1EINT4_7外部中斷47ARB1EINT3外部中斷3ARB0EINT2外部中斷2ARB0EINTI外部中斷1ARB0EINT0外部中斷0ARB0圖3.5.1 優(yōu)先級(jí)生成模塊寄存器地址R/W描述復(fù)位值SRCPND0X4A000000 R/W 中斷源掛起寄存器,為0時(shí),無(wú)中斷請(qǐng)求;當(dāng)有中斷產(chǎn)

57、生,相應(yīng)位置1。所有來(lái)自中斷源的中斷請(qǐng)求首先被登記到中斷源掛起寄存器中0 x00000000INTMOD0X4A000004 R/W 中斷模式寄存器:0=IRQ模式,1=FIQ模式。多個(gè)IRQ中斷的仲裁過(guò)程在優(yōu)先級(jí)寄存器進(jìn)行。0 x00000000INTMSK0X4A000008 R/W 中斷屏蔽寄存器:0=允許中斷,1=屏蔽中斷。中斷屏蔽寄存器的主要功能是屏蔽相應(yīng)中斷的請(qǐng)求,即使中斷掛起寄存器的相應(yīng)位已經(jīng)置1,也就是說(shuō)已經(jīng)有相應(yīng)的中斷請(qǐng)求發(fā)生了;但是如果此時(shí)中斷屏蔽寄存器的相應(yīng)位置1,則中斷控制器將屏蔽該中斷請(qǐng)求CPU不會(huì)響應(yīng)該中斷0 xFFFFFFFFS3C2410A中斷控制器的特殊寄存器

58、如表3.5.2所示,中斷控制需要正確 的設(shè)置這些寄存器,寄存器中每一位的含義請(qǐng)參閱S3C2410A數(shù)據(jù)手冊(cè)。表3.5.2中斷控制器的特殊寄存器PRIORITY0 x4A00000C R/W IRQ中斷優(yōu)先級(jí)控制寄存器0 x7FINTPND0X4A000010 R/W 中斷狀態(tài)指示寄存器:0=該中斷沒(méi)有請(qǐng)求,1=該中斷源發(fā)出中斷請(qǐng)求0 x00000000INTOFFSET0X4A000014 R中斷偏移寄存器,指示IRQ中斷源 0 x00000000SUBSRCPND0X4A000018 R/W 子中斷源狀態(tài)寄存器,指示中斷請(qǐng)求的狀態(tài)。0=該中斷沒(méi)有請(qǐng)求,1=該中斷源發(fā)出中斷請(qǐng)求0 x00000

59、000INTSUBMSK0X4A00001C R/W 定義哪幾個(gè)中斷源屏蔽。0=中斷服務(wù)允許,1=中斷服務(wù)屏蔽0 x7FFn3.5.3 S3C2410A的中斷編程實(shí)例n本小節(jié)介紹一個(gè)通過(guò)定時(shí)器1控制一個(gè)led燈每1秒鐘改變一次狀態(tài),需要完成的主要工作如下。n(1對(duì)定時(shí)器1初始化,并設(shè)定定時(shí)器的中斷時(shí)間為1,具體代碼參見(jiàn)Timed init( )函數(shù)。nvoid Timerl_initvoid)nrGPBCON = rGPBCON&0 xfffffffc&0 x00000001; nrGPBDAT= rGPBDAT |0 x001;nrTCFG0 = 255;nrTCFG1 =

60、04;nrTCNTB1 = 48828; /在pclk = 50MHz下,1s的記數(shù)值rTCNTB1 = 50000000/4/256=48828;nrTCMPB1 0 x00;nrTCON (1+11) | (19) | (08);/禁用定時(shí)器1,手動(dòng)加載nrTCON (1+11) | (09) | (18);/啟動(dòng)定時(shí)器1,自動(dòng)裝載nn(2為了使CPU響應(yīng)中斷,在中斷服務(wù)子程序執(zhí)行之前,必須打開(kāi)ARM920T的CPSR中的I位,以及相應(yīng)的中斷屏蔽寄存器中的位。打開(kāi)相應(yīng)的中斷屏蔽寄存器中的位,是在TimerlINT Init()函數(shù)中實(shí)現(xiàn)的,具體代碼如下。nvoid TimerlINT_Initvoid) /定

溫馨提示

  • 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)論