當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]ARM是一類嵌入式微處理器,同時(shí)也是一個(gè)公司的名字。ARM公司于1990年11月成立于英國(guó)劍橋,它是一家專門從事16/32位RISC微處理器知識(shí)產(chǎn)權(quán)設(shè)計(jì)的供應(yīng)商。ARM公司本身不直接從事芯片生產(chǎn),而只是授權(quán)ARM內(nèi)核,再給生產(chǎn)和銷售半導(dǎo)體的合作伙伴,同時(shí)也提供基于ARM架構(gòu)的開(kāi)發(fā)設(shè)計(jì)技術(shù)。

4.2ARM處理器硬件開(kāi)發(fā)平臺(tái)4.2.1ARM處理器簡(jiǎn)介

ARM是一類嵌入式微處理器,同時(shí)也是一個(gè)公司的名字。ARM公司于1990年11月成立于英國(guó)劍橋,它是一家專門從事16/32位RISC微處理器知識(shí)產(chǎn)權(quán)設(shè)計(jì)的供應(yīng)商。ARM公司本身不直接從事芯片生產(chǎn),而只是授權(quán)ARM內(nèi)核,再給生產(chǎn)和銷售半導(dǎo)體的合作伙伴,同時(shí)也提供基于ARM架構(gòu)的開(kāi)發(fā)設(shè)計(jì)技術(shù)。世界各大半導(dǎo)體生產(chǎn)商從ARM公司處購(gòu)買其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐罚瑥亩纬勺约旱腁RM微處理器芯片進(jìn)入市場(chǎng)。

ARM公司從成立至今,在短短幾十年的時(shí)間就占據(jù)了75%的市場(chǎng)份額,如今,ARM微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個(gè)領(lǐng)域。采用ARM技術(shù)的微處理器現(xiàn)在已經(jīng)遍及各類電子產(chǎn)品,汽車、消費(fèi)娛樂(lè)、影像、工業(yè)控制、海量存儲(chǔ)、網(wǎng)絡(luò)、安保和無(wú)線等市場(chǎng)。到2001年就幾乎已經(jīng)壟斷了全球RISC芯片市場(chǎng),成為業(yè)界實(shí)際的RISC芯片標(biāo)準(zhǔn)。圖4.3列舉了使用ARM微處理器的公司名稱。

圖4.3ARMIP核用戶

ARM的成功,一方面得益于它獨(dú)特的公司運(yùn)作模式,另一方面,當(dāng)然來(lái)自于ARM處理器自身的優(yōu)良性能。ARM處理器有如下特點(diǎn)。

n 體積小、低功耗、低成本、高性能。

n 支持ARM(32位)/Thumb(16位)/Thumb2(16/32位混合)指令集,能很好地兼容8位/16位器件。

n 大量使用寄存器,指令執(zhí)行速度更快。

n 大多數(shù)數(shù)據(jù)操作都在寄存器中完成。

n 尋址方式靈活簡(jiǎn)單,執(zhí)行效率高。

n 指令長(zhǎng)度固定。

小知識(shí)

常見(jiàn)的CPU指令集分為CISC和RISC兩種。

CISC(ComplexInstructionSetComputer)是“復(fù)雜指令集”。自PC機(jī)誕生以來(lái),32位以前的處理器都采用CISC指令集方式。由于這種指令系統(tǒng)的指令不等長(zhǎng),因此指令的數(shù)目非常多,編程和設(shè)計(jì)處理器時(shí)都較為麻煩。但由于基于CISC指令架構(gòu)系統(tǒng)設(shè)計(jì)的軟件已經(jīng)非常普遍了,所以包括Intel、AMD等眾多廠商至今使用的仍為CISC。

RISC(ReducedInstructionSetComputing)是“精簡(jiǎn)指令集”。研究人員在對(duì)CISC指令集進(jìn)行測(cè)試時(shí)發(fā)現(xiàn),各種指令的使用頻度相當(dāng)懸殊,其中最常使用的是一些比較簡(jiǎn)單的指令,它們僅占指令總數(shù)的20%,但在程序中出現(xiàn)的頻度卻占80%。RISC正是基于這種思想提出的。采用RISC指令集的微處理器處理能力強(qiáng),并且還通過(guò)采用超標(biāo)量和超流水線結(jié)構(gòu),大大增強(qiáng)并行處理能力。

4.2.2ARM體系結(jié)構(gòu)簡(jiǎn)介1.ARM微處理器工作狀態(tài)

ARM微處理器的工作狀態(tài)一般有三種,并可來(lái)回切換。

n 第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令。

n 第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。

n 第三種為Thumb2狀態(tài),此時(shí)處理執(zhí)行16/32位混合的、多類型對(duì)齊的指令。

2.ARM體系結(jié)構(gòu)的存儲(chǔ)格式

n 大端格式:在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。

n 小端格式:與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。

3.ARM處理器模式

ARM微處理器支持7種運(yùn)行模式,分別如下。

n 用戶模式(usr):應(yīng)用程序執(zhí)行狀態(tài)。

n 快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理等快速中斷處理。

n 外部中斷模式(irq):用于通用的中斷處理。

n 管理模式(svc):特權(quán)模式,操作系統(tǒng)使用的保護(hù)模式。

n 數(shù)據(jù)訪問(wèn)終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。

n 系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。

4.2.3ARM9體系結(jié)構(gòu)1.ARM微處理器系列簡(jiǎn)介

ARM微處理器系列主要特點(diǎn)如表4.2所示。

表4.2 ARM微處理器系列

ARM核

主要特點(diǎn)

ARM7TDMI

•使用v4T體系結(jié)構(gòu)

•最普通的低端ARM核

•3級(jí)流水線

•馮·諾依曼體系結(jié)構(gòu)

•CPI約為1.9

T表示支持Thumb指令集(ARM指令是32位的;Thumb指令是16位的)

DI表示“EmbeddedICELogic”,支持JTAG調(diào)試

M表示內(nèi)嵌硬件乘法器

ARM720T是具有cache、MMU(內(nèi)存管理單元)和寫(xiě)緩沖的一種ARM7TDMI

ARM9TDMI

•使用v4T體系結(jié)構(gòu)

•5級(jí)流水線:CPI被提高到1.5,提高了最高主頻

•哈佛體系結(jié)構(gòu):增加了存儲(chǔ)器有效帶寬(指令存儲(chǔ)器接口和數(shù)據(jù)存儲(chǔ)器接口),實(shí)現(xiàn)了同時(shí)訪問(wèn)指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的功能。

•一般提供附帶的cache:ARM922T有2X8KB的cache、MMU和寫(xiě)緩沖;ARM920T除了有2×16KB的cache之外,其他的與ARM922t相同;ARM940T有一個(gè)MPU(內(nèi)存保護(hù)單元)

ARM9E

•ARM9E是在ARM9TDMI的基礎(chǔ)上,增加了一些功能:支持V5TE版本的體系結(jié)構(gòu),實(shí)現(xiàn)了單周期32×16乘法器和EmbeddedICELogicRT

•ARM926EJ-S/ARM946E-S:有可配置的指令和數(shù)據(jù)cache、指令和數(shù)據(jù)TCM接口以及AHB總線接口。ARM926EJ-S有MMU,ARM946E-S有MPU

•ARM966E-S:有指令和數(shù)據(jù)TCM接口,沒(méi)有cache、MPU/MMU

ARM11系列

•ARM1136JF-S:使用ARMV6體系結(jié)構(gòu),性能強(qiáng)大(8級(jí)流水線,有靜態(tài)/動(dòng)態(tài)分支預(yù)測(cè)器和返回堆棧),有低延遲中斷模式,有MMU,有支持物理標(biāo)記的4-64k指令和數(shù)據(jù)cache,有一些內(nèi)嵌的可配置的TCM,有4個(gè)主存端口(64位存儲(chǔ)器接口),可以集成VFP協(xié)處理器(可選)。

•ARM1156T2(F)-S:有MPU,支持Thumb2ISA。

•ARM1176JZ(F)-S:在ARM1136JF-S基礎(chǔ)上實(shí)現(xiàn)了TrustZone技術(shù)。

Cortex系列

•Cortex-A8:使用v7A體系結(jié)構(gòu),支持MMU、AXI、VFP和NEON。

•Cortex-R4:使用v7R體系結(jié)構(gòu),支持MPU(可選)、AXI和DualIssue技術(shù)。

•Cortex-M3:使用v7M體系結(jié)構(gòu),支持MPU(可選)、AHBLite和APB

因?yàn)楸緯?shū)所采用的FS2410開(kāi)發(fā)板的S3C2410X是一款A(yù)RM9核處理器,所以下面重點(diǎn)學(xué)習(xí)ARM9核處理器。

2.ARM9主要特點(diǎn)

ARM處理器憑借它的低功耗、高性能等特點(diǎn),被廣泛應(yīng)用于個(gè)人通信等嵌入式領(lǐng)域,而ARM7也曾在中低端手持設(shè)備中占據(jù)了一席之地。然而,ARM7的處理性能逐漸無(wú)法滿足人們?nèi)找嬖鲩L(zhǎng)的高性能處理的需求,它開(kāi)始退出主流應(yīng)用領(lǐng)域,取而代之的是性能更加強(qiáng)大的ARM9系列處理器。

新一代的ARM9處理器,通過(guò)全新的設(shè)計(jì),能夠達(dá)到兩倍以上于ARM7處理器的處理能力。它的主要特點(diǎn)如下所述。

(1)5級(jí)流水線。

ARM7處理器采用的3級(jí)流水線設(shè)計(jì),而ARM9則采用5級(jí)流水線設(shè)計(jì),如圖4.4所示。

通過(guò)使用5級(jí)流水線機(jī)制,在每一個(gè)時(shí)鐘周期內(nèi)可以同時(shí)執(zhí)行5條指令。這樣就大大提高了處理性能。在同樣的加工工藝下,ARM9處理器的時(shí)鐘頻率是ARM7的1.8~2.2倍。

圖4.4ARM7與ARM9流水線比較

(2)采用哈佛結(jié)構(gòu)。

首先讀者需要了解什么叫哈佛結(jié)構(gòu)。在計(jì)算機(jī)中,根據(jù)計(jì)算機(jī)的存儲(chǔ)器結(jié)構(gòu)及其總線連接形式,計(jì)算機(jī)系統(tǒng)可以被分為馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu),其中馮·諾依曼結(jié)構(gòu)共用數(shù)據(jù)存儲(chǔ)空間和程序存儲(chǔ)空間,它們共享存儲(chǔ)器總線,這也是以往設(shè)計(jì)時(shí)常用的方式;而哈佛結(jié)構(gòu)則具有分離的數(shù)據(jù)和程序空間及分離的訪問(wèn)總線。所以哈佛結(jié)構(gòu)在指令執(zhí)行時(shí),取址和取數(shù)可以并行,因此具有更高的執(zhí)行效率。ARM9采用的就是哈佛結(jié)構(gòu),而ARM7采用的則是馮·諾依曼結(jié)構(gòu)。如圖4.5和圖4.6分別體現(xiàn)了馮·諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)的數(shù)據(jù)存儲(chǔ)方式。

圖4.5馮·諾依曼結(jié)構(gòu) 圖4.6哈佛結(jié)構(gòu)

由于在RISC架構(gòu)的處理器中,程序中大約有30%的指令是Load-Store指令,而采用哈佛結(jié)構(gòu)大大提升了這兩個(gè)指令的執(zhí)行速度,因此對(duì)提高系統(tǒng)效率的貢獻(xiàn)是非常明顯的。

(3)高速緩存和寫(xiě)緩存的引入。

由于在處理器中,一般處理器速度遠(yuǎn)遠(yuǎn)高于存儲(chǔ)器訪問(wèn)速度,那么,如果存儲(chǔ)器訪問(wèn)成為系統(tǒng)性能的瓶頸,則處理器再快都毫無(wú)作用。在這種情況下,高速緩存(Cache)和寫(xiě)緩存(WriteBuffer)可以很好地解決這個(gè)問(wèn)題,它們存儲(chǔ)了最近常用的代碼和數(shù)據(jù),以供CPU快速存儲(chǔ),如圖4.7所示。

(4)支持MMU。

圖4.7ARM9的高速緩存和讀緩存

MMU是內(nèi)存管理單元,它把內(nèi)存以“頁(yè)(page)”為單位來(lái)進(jìn)行處理。一頁(yè)內(nèi)存是指一個(gè)具有一定大小的連續(xù)的內(nèi)存塊,通常為4096B或8192B。操作系統(tǒng)為每個(gè)正在運(yùn)行的程序建立并維護(hù)一張被稱為進(jìn)程內(nèi)存映射(ProcessMemoryMap)的表,表中記錄了程序可以存取的所有內(nèi)存頁(yè)以及它們的實(shí)際位置。

每當(dāng)程序存取一塊內(nèi)存時(shí),它會(huì)把相應(yīng)的虛擬地址(virtualaddress)傳送給MMU,而MMU會(huì)在PMM中查找這塊內(nèi)存的實(shí)際位置,也就是物理地址(physicaladdress),物理地址可以在內(nèi)存中或磁盤上的任何位置。如果程序要存取的位置在磁盤上,就必須把包含該地址的頁(yè)從磁盤上讀到內(nèi)存中,并且必須更新PMM以反映這個(gè)變化(這被稱為pagefault,即“頁(yè)錯(cuò)”)。MMU的實(shí)現(xiàn)過(guò)程如圖4.8所示。

圖4.8MMU的實(shí)現(xiàn)過(guò)程

只有擁有了MMU才能真正實(shí)現(xiàn)內(nèi)存保護(hù)。例如當(dāng)A進(jìn)程的程序試圖直接訪問(wèn)屬于B進(jìn)程的虛擬地址中的數(shù)據(jù),那么MMU會(huì)產(chǎn)生一個(gè)異常(Exception)來(lái)阻止A的越界操作。這樣,通過(guò)內(nèi)存保護(hù),一個(gè)進(jìn)程的失敗并不會(huì)影響其他進(jìn)程的運(yùn)行,從而增強(qiáng)了系統(tǒng)的穩(wěn)定性,如圖4.9所示。ARM9也正是因?yàn)閾碛辛薓MU,所以比ARM7具有更強(qiáng)的穩(wěn)定性和可靠性。

圖4.9內(nèi)存保護(hù)示意圖

4.2.4S3C2410處理器詳解

本書(shū)所采用的硬件平臺(tái)是深圳優(yōu)龍科技有限公司的開(kāi)發(fā)板FS2410(如圖4.10所示),它的中央處理器是三星公司的S3C2410X。S3C2410X是使用ARM920T核、采用0.18mm工藝CMOS標(biāo)準(zhǔn)宏單元和存儲(chǔ)編譯器開(kāi)發(fā)而成的。由于采用了由ARM公司設(shè)計(jì)的16/32位ARM920TRISC處理器,因此S3C2410X實(shí)現(xiàn)了MMU和獨(dú)立的16KB指令和16KB數(shù)據(jù)哈佛結(jié)構(gòu)的緩存,且每個(gè)緩存均為8個(gè)字長(zhǎng)度的流水線。它的低功耗、精簡(jiǎn)而出色的全靜態(tài)設(shè)計(jì)特別適用于對(duì)成本和功耗敏感的領(lǐng)域。

S3C2410X提供全面的、通用的片上外設(shè),大大降低系統(tǒng)的成本,下面列舉了S3C2410X的主要片上功能。

n 1.8VARM920T內(nèi)核供電,1.8V/2.5V/3.3V存儲(chǔ)器供電;

n 16KB指令和16KB數(shù)據(jù)緩存的MMU內(nèi)存管理單元;

n 外部存儲(chǔ)器控制(SDRAM控制和芯片選擇邏輯);

n 提供LCD控制器(最大支持4K色的STN或256K色TFT的LCD),并帶有1個(gè)通道的LCD專用DMA控制器;

n 提供4通道DMA,具有外部請(qǐng)求引腳;

n 提供3通道UART(支持IrDA1.0,16字節(jié)發(fā)送FIFO及16字節(jié)接收FIFO)/2通道SPI接口;

n 提供1個(gè)通道多主IIC總線控制器/1通道IIS總線控制器;

n 兼容SD主機(jī)接口1.0版及MMC卡協(xié)議2.11版;

n 提供2個(gè)主機(jī)接口的USB口/1個(gè)設(shè)備USB口(1.1版本);

n 4通道PWM定時(shí)器/1通道內(nèi)部計(jì)時(shí)器;

圖4.10優(yōu)龍F(tuán)S2410開(kāi)發(fā)板實(shí)物圖

n 提供看門狗定時(shí)器;

n 提供117個(gè)通用I/O口/24通道外部中斷源;

n 提供不同的電源控制模式:正常、慢速、空閑及電源關(guān)閉模式;

n 提供帶觸摸屏接口的8通道10位ADC;

n 提供帶日歷功能的實(shí)時(shí)時(shí)鐘控制器(RTC);

n 具有PLL的片上時(shí)鐘發(fā)生器。

S3C2410X系統(tǒng)結(jié)構(gòu)圖如圖4.11所示。

下面依次對(duì)S3C2410X的系統(tǒng)管理器、NandFlash引導(dǎo)裝載器、緩沖存儲(chǔ)器、時(shí)鐘和電源管理及中斷控制進(jìn)行簡(jiǎn)要講解,要注意,其中所有模式的選擇都是通過(guò)對(duì)相關(guān)寄存器特定值的設(shè)定來(lái)實(shí)現(xiàn)的,因此,當(dāng)讀者需要對(duì)此進(jìn)行修改時(shí),請(qǐng)參閱三星公司提供S3C2410X用戶手冊(cè)。

1.系統(tǒng)管理器

S3C2410X支持小/大端模式,它將系統(tǒng)的存儲(chǔ)空間分為8個(gè)組(bank),其中每個(gè)bank有128MB,總共為1GB。每個(gè)組可編程的數(shù)據(jù)總線寬度為8/16/32位,其中bank0~bank5具有固定的bank起始地址和結(jié)束地址,用于ROM和SRAM。而bank6和bank7是大小可變的,用于ROM、SRAM或SDRAM。這里,所有的存儲(chǔ)器bank都具有可編程的操作周期,并且支持掉電時(shí)的SDRAM自刷新模式和多種類型的引導(dǎo)ROM。

2.nandflash引導(dǎo)裝載器

S3C2410X支持從nandflash存儲(chǔ)器啟動(dòng),其中,開(kāi)始的4KB為內(nèi)置緩沖存儲(chǔ)器,它在啟動(dòng)時(shí)將被轉(zhuǎn)載(裝載or轉(zhuǎn)載)到SDRAM中并執(zhí)行引導(dǎo),之后該4KB可以用作其他用途。

圖4.11S3C2410X系統(tǒng)結(jié)構(gòu)圖

小知識(shí)

Flash是一種非易失閃存技術(shù)。Intel于1988年首先開(kāi)發(fā)出NorFlash技術(shù)之后,徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。緊接著,1989年?yáng)|芝公司發(fā)布了NandFlash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本、更高的性能,并且像磁盤一樣可以通過(guò)接口輕松升級(jí)。

NorFlash的特點(diǎn)是芯片內(nèi)執(zhí)行(ExecuteInPlace),這樣應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,而不必再把代碼讀到系統(tǒng)RAM中。NorFlash的傳輸效率很高,在1~4MB的小容量時(shí)具有很高的成本效益,但是很低的寫(xiě)入和擦除速度大大影響了它的性能。

Nandflash結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,NAND讀和寫(xiě)操作采用512字節(jié)的塊,單元尺寸幾乎是nor器件的一半,同時(shí)由于生產(chǎn)過(guò)程更為簡(jiǎn)單,大大降低了生產(chǎn)的成本。NAND閃存中每個(gè)塊的最大擦寫(xiě)次數(shù)是100萬(wàn)次,是NorFlash的10倍,這些都使得NandFlash越來(lái)越受到人們的歡迎。

同時(shí),S3C2410X也支持從外部nGCS0片選的Norflash啟動(dòng),如在優(yōu)龍的開(kāi)發(fā)板上將JP1跳線去掉就可從NorFlash啟動(dòng)(默認(rèn)從NandFlash啟動(dòng))。在這兩種啟動(dòng)模式下,各片選的存儲(chǔ)空間分配是不同的,如圖4.12所示。

圖4.12S3C2410兩種啟動(dòng)模式地址映射

3.緩沖存儲(chǔ)器

S3C2410X是帶有指令緩存(16KB)和數(shù)據(jù)緩存(16KB)的聯(lián)合緩存裝置,一個(gè)緩沖區(qū)能夠保持16字的數(shù)據(jù)和4個(gè)地址。

4.時(shí)鐘和電源管理

S3C2410X采用獨(dú)特的時(shí)鐘管理模式,它具有PLL(相位鎖定環(huán)路,用于穩(wěn)定頻率)的芯片時(shí)鐘發(fā)生器,而在此,PLL又分為UPLL和MPLL。其中UPLL時(shí)鐘發(fā)生器用于主/從USB操作,MPLL時(shí)鐘發(fā)生器用于產(chǎn)生主時(shí)鐘,使其能以極限頻率203MHz(1.8V)運(yùn)行。

S3C2410X的電源管理模式又分為正常、慢速、空閑和掉電4種模式。其中慢速模式為不帶PLL的低頻時(shí)鐘模式,空閑模式始終為CPU停止模式,掉電模式為所有外圍設(shè)備全部掉電僅內(nèi)核電源供電的模式。

另外,S3C2410X對(duì)片內(nèi)的各個(gè)部件采用獨(dú)立的供電方式。

n 1.8V的內(nèi)核供電。

n 3.3V的存儲(chǔ)器獨(dú)立供電(通常對(duì)SDRAM采用3.3V,對(duì)移動(dòng)SDRAM采用1.8/2.5V)。

n 3.3V的VDDQ。

n 3.3V的I/O獨(dú)立供電。

由于在嵌入式系統(tǒng)中電源管理非常關(guān)鍵,它直接涉及功耗等各方面的系統(tǒng)性能,而S3C2410X的電源管理中獨(dú)立的供電方式和多種模式可以有效地處理系統(tǒng)的不同狀態(tài),從而達(dá)到最優(yōu)的配置。

5.中斷控制

中斷處理在嵌入式系統(tǒng)開(kāi)發(fā)中非常重要,尤其對(duì)于從單片機(jī)轉(zhuǎn)入到嵌入式的讀者來(lái)說(shuō),與單片機(jī)中簡(jiǎn)單的中斷模式相比,ARM中的中斷處理要復(fù)雜得多。如果讀者無(wú)相關(guān)基礎(chǔ),建議先熟悉相關(guān)的基礎(chǔ)概念再進(jìn)行下一步學(xué)習(xí)。

首先給出了一般的中斷處理流程,如圖4.13所示。

圖4.13一般中斷處理流程

S3C2410X包括55個(gè)中斷源,其中有1個(gè)看門狗定時(shí)器中斷、5個(gè)定時(shí)器中斷、9個(gè)通用異步串行口中斷、24個(gè)外部中斷、4個(gè)DMA中斷、2個(gè)RTC(實(shí)時(shí)時(shí)鐘控制器)中斷、2個(gè)USB中斷、1個(gè)LCD中斷和1個(gè)電池故障。其中,對(duì)外部中斷源具有電平/邊沿兩種觸發(fā)模式。另外,對(duì)于非常緊急的中斷可以支持使用快速中斷請(qǐng)求(FIQ)。

S3C2410X的中斷處理流程(該圖摘自S3C2410X用戶手冊(cè))如圖4.14所示。

圖4.14S3C2410X中斷處理流程

圖中的SUBSRCPND、SRCPND、SUBMASK、MASK和MODE都是與中斷相關(guān)的寄存器,其中SUBSRCPND和SRCPND寄存器用來(lái)表示有哪些中斷被觸發(fā)了和是否正在等待處理(pending);SUBMASK(INTSUBMSK寄存器)和MASK(INTMSK寄存器)用于屏蔽某些中斷。

圖中的“Requestsources(withsub–register)”表示的是INT_RXD0、INT_TXD0等11個(gè)中斷源,它們不同于“Requestsources(withoutsub–register)”的操作如下:

(1)“Requestsources(withoutsub–register)”中的中斷源被觸發(fā)之后,SRCPND寄存器中相應(yīng)位被置1,如果此中斷沒(méi)有被INTMSK寄存器屏蔽、或者是快中斷(FIQ)的話,它將被進(jìn)一步處理。

(2)對(duì)于“Requestsources(withsub–register)”中的中斷源被觸發(fā)之后,SUBSRCPND寄存器中的相應(yīng)位被置1,如果此中斷沒(méi)有被SUBMSK寄存器屏蔽的話,它在SRCPND寄存器中的相應(yīng)位也被置1。在此之后的兩者的處理過(guò)程是一樣的。

接下來(lái),在SRCPND寄存器中,被觸發(fā)的中斷的相應(yīng)位被置1,等待處理。

(1)如果被觸發(fā)的中斷中有快中斷(FIQ)——MODE(INTMOD寄存器)中為1的位對(duì)應(yīng)的中斷,則CPU的FIQ中斷函數(shù)被調(diào)用。注意:FIQ只能分配一個(gè),即INTMOD中只能有一位被設(shè)為1。

(2)對(duì)于一般中斷IRQ,可能同時(shí)有幾個(gè)中斷被觸發(fā),未被INTMSK寄存器屏蔽的中斷經(jīng)過(guò)比較后,選出優(yōu)先級(jí)最高的中斷,然后CPU調(diào)用IRQ中斷處理函數(shù)。中斷處理函數(shù)可以通過(guò)讀取INTPND(標(biāo)識(shí)最高優(yōu)先級(jí)的寄存器)寄存器來(lái)確定中斷源是哪個(gè),也可以讀INTOFFSET寄存器來(lái)確定中斷源。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉