版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章應(yīng)用系統(tǒng)設(shè)計(jì)
4.1系統(tǒng)設(shè)計(jì)概述
4.2ARM920T簡(jiǎn)介
4.3S3c2410X處理盎能詳角星
4.4單元電路設(shè)計(jì)
45存儲(chǔ)器系統(tǒng)設(shè)計(jì)
4.6JTAG調(diào)試接口設(shè)計(jì)
4.7綜合訓(xùn)練之通過(guò)JTAG訪問(wèn)外設(shè)
4.1系統(tǒng)設(shè)計(jì)概述
圖4」開(kāi)發(fā)平臺(tái)系統(tǒng)組成.
4.2ARM920T簡(jiǎn)介
ARM920T是ARM920TDMI系列中的一款通用性的微處理器,ARM920TDMI系
列微處理器包含如下幾種類型的內(nèi)核。
?ARM9TDMI:只有內(nèi)核。
?ARM940T:由內(nèi)核、高速緩存和內(nèi)存保護(hù)單元組成。
?ARM920T:由內(nèi)核、高速緩存和內(nèi)存管理單元(MMU)組成。
4.2.1ARM920T系統(tǒng)結(jié)構(gòu)分析
4.2.2ARM920T內(nèi)核編程模型
ARM920T系統(tǒng)結(jié)構(gòu)分析
ARM9TDMI采用5級(jí)流水線,其結(jié)構(gòu)圖如圖4.2所示,具有分開(kāi)的指令和數(shù)據(jù)
存儲(chǔ)器,5級(jí)流水線具體如下。
(1)取指:從存儲(chǔ)器中取出指令,并將其放入指令流水線。
(2)譯碼:對(duì)指令進(jìn)行譯碼。
(3)執(zhí)行:把一個(gè)操作數(shù)移位,產(chǎn)生ALU的結(jié)果。
(4)緩沖/數(shù)據(jù):如果需要,則訪問(wèn)數(shù)據(jù)存儲(chǔ)器;否則ALU的結(jié)果只是簡(jiǎn)單
地緩沖1個(gè)時(shí)鐘周期,以便所有的指令具有同樣的流水線流程。
(5)回寫(xiě):將指令產(chǎn)生的結(jié)果回寫(xiě)到寄存器,包括任何從存儲(chǔ)器中讀取的數(shù)
據(jù)。
°ARM9TDMI處理器一個(gè)顯著的特點(diǎn)是采用指令和數(shù)據(jù)分離訪問(wèn)的方式,即采
用了指令緩存(l-Cache)和數(shù)據(jù)緩存(D-Cache)。這樣可以把指令訪問(wèn)和數(shù)
據(jù)訪問(wèn)單獨(dú)安排1級(jí)流水線。
取指令移位/ALU”數(shù)據(jù)存儲(chǔ)器訪問(wèn).
取指p譯碼。執(zhí)行〉存儲(chǔ)器*
圖4.2ARM9TDMI流水線圖-
ARM920T以ARM9TDMI為內(nèi)核,增加了高速緩存和內(nèi)存管理單元,系統(tǒng)結(jié)構(gòu)
圖如圖4.3所示。
m
圖4.3ARM920T系統(tǒng)結(jié)構(gòu)圖
ARM920T內(nèi)核編程模型
字(Word),在ARM體系結(jié)構(gòu)中,字的長(zhǎng)度為32位,而在8位/16位處理器體系結(jié)構(gòu)
中,字的長(zhǎng)度一般為16位。
半字(Half-Word),在ARM體系結(jié)構(gòu)中,半字的長(zhǎng)度為16位,與8位/16位處理器
體系結(jié)構(gòu)中字的長(zhǎng)度一致。
字節(jié)(Byte),在ARM體系結(jié)構(gòu)和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長(zhǎng)度均為8
位。
指令長(zhǎng)度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。
ARM920T中支持字節(jié)(8位)、半字(16位)、字(32位)3種數(shù)據(jù)類型,其中,
字需要4字節(jié)對(duì)齊,半字需要2字節(jié)對(duì)齊。
1.ARM微處理器的工作狀態(tài)
從編程的角度看,ARM920T微處理器的工作狀態(tài)一般有兩種:
?ARM狀態(tài),此時(shí)處理器執(zhí)行32位的、字對(duì)齊的ARM指令;
?Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。
ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,在程序的執(zhí)行過(guò)程中,微
處理器可以隨時(shí)在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處
理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開(kāi)始執(zhí)行代碼時(shí),應(yīng)該處
于ARM狀態(tài)。
當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器
從ARM狀態(tài)切換到Thumb狀態(tài)。當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令可以使
狀態(tài)切換到ARM狀態(tài)Tfe外處理器進(jìn)行異常處理時(shí)fFG指針
放入異常模式鏈接寄存器中,并從異常向量地址開(kāi)始執(zhí)行程序,也可以使處理器切換
到ARM狀態(tài)。
2.ARM體系結(jié)構(gòu)的存儲(chǔ)器格式
ARM920T體系結(jié)構(gòu)將存儲(chǔ)器看做是從零地址開(kāi)始的字節(jié)的線性組合。從0字
節(jié)到3字節(jié)放置第1個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第4個(gè)字節(jié)到第7個(gè)字節(jié)放置第2個(gè)存儲(chǔ)的
字?jǐn)?shù)據(jù),依次排列。作為32位的微處理器,ARM920T體系結(jié)構(gòu)所支持的最大尋
址空間為4GB(232字節(jié))。
ARM920T體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),分別稱為大端格式和小端格
式。
大端格式中字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高
地址中,如圖4.4所示。
31”2“23P1M15,8A,0+字地址.
8〃9V10*-'11。8“
4川5,6P4d
2y3d
低出七址~
圖4.4以大端格式存儲(chǔ)字?jǐn)?shù)據(jù).
與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字
節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。如圖4.5所示
31.->24」23,⑹138+702字地址,
11〃10。9川8P
7a6,5,4,
3,2“0“
低大!址,
圖4.5以小端格式存儲(chǔ)字?jǐn)?shù)據(jù)」
3.處理器模式
ARM920T支持7種運(yùn)行模式,分別為:
?用戶模式(usr),ARM處理器正常的程序執(zhí)行狀態(tài);
?快速中斷模式(fiq),用于高速數(shù)據(jù)傳輸或通道處理;
?外部中斷模式(irq),用于通用的中斷處理;
?管理模式(svc),操作系統(tǒng)使用的保護(hù)模式;
?數(shù)據(jù)訪問(wèn)終止模式(abt),當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于
虛擬存儲(chǔ)及存儲(chǔ)保護(hù);
?系統(tǒng)模式(sys),運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù);
?未定義指令中止模式(und),當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用
于支持硬件協(xié)處理器的軟件仿真。
ARM微處理器的運(yùn)行模式可以通過(guò)軟件改變,也可以通過(guò)外部中斷或異常處
理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),
某些被保護(hù)的系統(tǒng)資源是不能被訪問(wèn)的。
除用戶模式以外,其余的6種模式稱為非用戶模式或特權(quán)模式;其中除去用
戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及訪
問(wèn)受保護(hù)的系統(tǒng)資源等情況。
4.寄存器組織
ARM920T共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存
器。但是這些寄存器不能被同時(shí)訪問(wèn),具體哪些寄存器是可編程訪問(wèn)的,取決
于微處理器的工作狀態(tài)及具體的運(yùn)行模式。
在ARM狀態(tài)下,任一時(shí)刻可以訪問(wèn)16個(gè)通用寄存器和1?2個(gè)狀態(tài)寄存器。在
非用戶模式(特權(quán)模式)下,則可訪問(wèn)到特定模式分組寄存器,圖4.6所示為在
每一種運(yùn)行模式下,可以訪問(wèn)的寄存器。
在ARM狀態(tài)下有16個(gè)直接訪問(wèn)寄存器R0?R15,除R15寄存器外均為通用目
的,可用來(lái)存儲(chǔ)數(shù)據(jù)或地址值。除此之外,還有第17個(gè)寄存器用來(lái)存儲(chǔ)狀態(tài)信
息。
R14也稱為子程序連接寄存器(SubroutineLinkRegister)或連接寄存器LR。
當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),R14中得到R15(程序計(jì)數(shù)器PC)的備份。在其
他情況下,R14用做通用寄存器。與之類似,當(dāng)發(fā)生中斷或異常時(shí),對(duì)應(yīng)的分組
寄存器R14_svc、R14_irq>R14_fiq>R14_abt和R14_und用來(lái)保存R15的返回
值。
寄存器R15用做程序計(jì)數(shù)器(PC)。在ARM狀態(tài)下,位[1:0]為0,位[31:2]
用于保存PC;在Thumb狀態(tài)下,位⑼為0,位[31:1]用于保存PC。
寄存器R16用做當(dāng)前程序狀態(tài)寄存器(CurrentProgramStatusRegister,
CPSR),CPSR可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、
當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。
■■■
ARM狀態(tài)下的通用寄存器與程序計(jì)數(shù)器,,
System&User*1FIQ/Supervisor-'About/IRGfUndefined-'
RCkR(kR0<R0〃RWR(k
RbRK)RMRI。Rl“RW
R2tR2?R20R2>R2”R2--
R3-R3>R3“R3“時(shí)R3-'
R4.R4“R43RWR4。R4"
R5-1R5a心,R5aR5-'R5。
R6?1R6<1R6kR6-1RMR6~
R7;R7」R7dR7~R7dR7P
R“、R8_6q+R8<R“R8+R8<'
R9?」、R9__fiq*-'R9+眸R9」R9~
R10<1、R10_fiq-RIO4--RIO^RIO。RI04-'
Rib1\Rll_fiq,R1U-R1U)Rll“Rih'
R⑵、R12_fiq*R⑵R12~RI2^R⑵
R13u、R13__fiq-?,、R13_SVC「\R13_abh-'、R13_irq。、R13_und*
R14<、R14_fiq<J、R14_SVC〃R14__abt*J、R14_irq。\R14__und?-,
R15(PC>R15(PC)-R15(PC>R15(PC)<R15(PC>R15(PC)^
ARM狀態(tài)下的程序狀態(tài)寄存器?
CPSR。CPS的CPSR/CPSR"CPSRxCPSRv
\SPSR_fiq>、SPSR__svc<-\SPSR_abt<」\SPSRJrq-'、SPSR_undp
'=分組寄存器,
圖4.6ARNI狀態(tài)下的寄存器組織”
每一種非用戶模式下都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(Saved
ProgramStatusRegister,備份的程序狀態(tài)寄存器)。當(dāng)異常發(fā)生時(shí),SPSR用
于保存CPSR的當(dāng)前值,從異常退出時(shí)則可由SPSR來(lái)恢復(fù)CPSR。
fiq模式下有7個(gè)分組寄存器R8_fiq~R14_fiq,在ARM狀態(tài)下,許多fiq處理都
不用保存任何寄存器。usr、fiq、irq>svc、abt>und模式下有兩個(gè)分組寄存器
R13和R14,而每種模式都有一個(gè)自己的堆棧指針和連接寄存器
Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集,程序可以直接
訪問(wèn)8個(gè)通用寄存器(R7~R0)、程序計(jì)數(shù)器(PC)、堆棧指針(SP)、連接
寄存器(LR)和CPSR。同時(shí),在每一種特權(quán)模式下都有一組SP、LR和SPSR。
圖4.7所示表明Thumb狀態(tài)下的寄存器組織。
Thumb狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組織存在如下關(guān)系:
?Thumb狀態(tài)下和ARM狀態(tài)下的R0?R7是相同的;
?Thumb狀態(tài)下和ARM狀態(tài)下的CPSR和所有的SPSR是相同的;
?Thumb狀態(tài)下的SP對(duì)應(yīng)于ARM狀態(tài)下的R13;
?Thumb狀態(tài)下的LR對(duì)應(yīng)于ARM狀態(tài)下的R14;
?Thumb狀態(tài)下的程序計(jì)數(shù)器對(duì)應(yīng)于ARM狀態(tài)下的R15。
以上的對(duì)應(yīng)關(guān)系如圖4.8所小。
在Thumb狀態(tài)下,高位寄存器R8~R15并不是標(biāo)準(zhǔn)寄存器集的一部分,但可
使用匯編語(yǔ)言程序受限制地訪問(wèn)這些寄存器,將其用做快速的暫存器。使用帶特
殊變量的MOV指令,數(shù)據(jù)可以在低位寄存器和高位寄存器之間進(jìn)行傳送;高位
寄存器的值可以使用CMP和ADD指令進(jìn)行比較或加上低位寄存器中的值。
THUMBStateARMSlate?
RO?RO
RIRl.
R2.R2
R3?R3
R4R4.
R5.R5
R6R6.
R7.R7.
R8.
R9?
R1O..
Rll..
R12.
StackPoitSSP)SuckPointei(R13)
LinkBegkter(LR)LinkRegisteitRH)
ProgramCounter(PC)ProgramCountei(R15)
CPSRCPSR.
SPSRSPSR
圖48Thwb狀態(tài)下的寄存器組織/
5.程序狀態(tài)寄存器
ARM920T體系結(jié)構(gòu)中包含一個(gè)當(dāng)前程序狀態(tài)寄存器(CPSR)和5個(gè)備份的
程序狀態(tài)寄存器(SPSR)。備份的程序狀態(tài)寄存器用來(lái)進(jìn)行異常處理,其功能
包括:
?保存ALU中的當(dāng)前操作信息;
?控制允許和禁止中斷;
?設(shè)置處理器的運(yùn)行模式。
程序狀態(tài)寄存器每一位的安排如圖4.9所示。
條件碼標(biāo)志,保宜“控制牧
Cany/Boirow/ExijendStatebit
Zero---------------------------------FIQdisable
NegativeITwin----------------------------------IRQdi^bk?
圖4.9程序狀態(tài)寄存器格式丫
6.條件碼標(biāo)志(ConditionCodeFlags)
N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改
變,并且可以決定某條指令是否被執(zhí)行。條件碼標(biāo)志各位的具體含義如表4.1所示。
表4.1條件碼標(biāo)志的具體含義4
標(biāo)志像◎義.
N,當(dāng)用兩個(gè)科嗎愛(ài)家的帶符號(hào)數(shù)送行過(guò)算時(shí).N=1農(nóng)示運(yùn)算的結(jié)果的負(fù)數(shù);N=0我不運(yùn)算的統(tǒng)果為正數(shù)或察
Z,2=1及示運(yùn)算的續(xù)果為黑;Z=0表示過(guò)算的結(jié)果為非窯
C可以有4種方法設(shè)置C的但:
一加法運(yùn)算(包括比校指令CMP):當(dāng)運(yùn)算結(jié)果產(chǎn)生丁逸粒時(shí)(無(wú)符號(hào)數(shù)整出),C=E否則C=0
—減法運(yùn)算(包括比長(zhǎng)推母CMPL當(dāng)運(yùn)算時(shí)產(chǎn)生T借校(無(wú)符號(hào)基整出).C=0.否劃C=1
—附子包含移位慢作的非加/減運(yùn)算燧令,C欠移出值的最后一位
—對(duì)千其他的非加,減過(guò)篁微令.C的但圓堂不改變
V.可以有2種方法設(shè)餐V的值:
一和千加/蹴法過(guò)篁楂令.當(dāng)區(qū)作敵和過(guò)復(fù)結(jié)果為二澆制的料包農(nóng)不的藥符號(hào)基時(shí),V=1茂木符號(hào)位旅出
—對(duì)于其他的非加,減運(yùn)篁撥令.C的但遇常不改變
Q■在ARM9應(yīng)以上版近的E系列處理器中.用Q標(biāo)志檢攝示第裔的DSP過(guò)夏微令是否發(fā)生T溢出.在其他版
本的處理趨中.Q標(biāo)志粒無(wú)定義
7.控制位
CPSR的低8位(包括I、F、T和M[4:0])稱為控制位,當(dāng)發(fā)生異常時(shí)這些位
可以被改變。如果處理器運(yùn)行特權(quán)模式,這些位也可以由程序修改。
?中斷禁止位I、F:置1時(shí),禁止IRQ中斷和FIQ中斷。
?T標(biāo)志位:該位反映處理器的運(yùn)行狀態(tài)。當(dāng)該位為1時(shí),程序運(yùn)行于Thumb
狀態(tài),否則運(yùn)行于ARM狀態(tài)。該信號(hào)反映在外部弓I腳TBIT上。在程序中不得修
改CPSR中的TBIT位,否則處理器工作狀態(tài)不能確定。
?運(yùn)行模式位M[4:0]:MO、M1、M2、M3、M4是模式位。這些位決定了處
理器的運(yùn)行模式。具體含義如表4.2所示。
?保留位:CPSR中的其余位為保留位,當(dāng)改變CPSR中的條件碼標(biāo)志位或者
控制位時(shí),保留位不要被改變,在程序中也不要使用保留位來(lái)存儲(chǔ)數(shù)據(jù)。保留位
將用干ARM版本的擴(kuò)展.
n表4.2運(yùn)行模式位M[4:0]的具體含義「
M[4=0]」處理器極衣ARM梭衣出訪日的備存卷」THUMB枚式可訪日的備存期
0b10000.用戶模式、PC,CPSR,R0忘14PC,CPSR,R0~R7?LR.SP
Ob10001.FIQ模忒,PC.CPSR,SPSR^q,R14?~R8_fiq?R7-R0PC,CPSR,SPSRjaq.LR_fiq,SPR7-R0
Ob10010.IRQ梭衣,PC.CPSR,SPSR_irq,R14_irq,RBJrq.R12-R0PC.CPSR,SPSR_irq?LR_irq?SP_irq?R7-R£L
OblOOll.管理槐衣PC.CPSR.SPSR_fVC.R14_SVC?R13耳.R12-R0PC<CPSR.SPSR_5vc.LR_$vc..SP_$vt.R7~R0
OblOlll中止極式PC,CPSR,SPSRJbt,R14_sbt.R13_abt,R12~RDPC,CPSR,SPSR_abt,LR_abt,SP/rt,R7~R0
ObllOlli泉定義橙衣PC,CPSR.SPSRjmdeR14jmdeR13jmd.R12-R0PC.CPSR,SPSRjmdeLRjond.SPjmd.R7-R0
Oblllll1系統(tǒng)梭衣PC.CPSR,R14-R0,PC.CPSR,LR.SP.R7-R0
8.異常(Exceptions)
當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常。在處理異常之前,當(dāng)前處理
器的狀態(tài)必須保留,這樣,當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多
個(gè)異常同時(shí)發(fā)生,處理器會(huì)按固定的優(yōu)先級(jí)對(duì)多個(gè)異常進(jìn)行處理。ARM920T對(duì)異常的處
理按以下步驟操作:
(1)將下一條指令的地址存入相應(yīng)連接寄存器LR。若異常是從ARM狀態(tài)進(jìn)入,LR寄
存器中保存的是下一條指令的地址(當(dāng)前PC+4或PC+8,與異常的類型有關(guān));若異常
是從Thumb狀態(tài)進(jìn)入,則在LR寄存器中保存當(dāng)前PC的偏移量。這樣,異常處理程序就不
需要確定異常是從何種狀態(tài)進(jìn)入的,程序在處理異常返回時(shí)能從正確的位置重新開(kāi)始執(zhí)行。
例如:在軟件中斷異常SWI中,指令MOVPC,R14_svc總是返回到下一條指令,而不管
SWI是在ARM狀態(tài)執(zhí)行,還是在Thumb狀態(tài)執(zhí)行。
(2)將CPSR復(fù)制到相應(yīng)的SPSR中。
(3)根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。
(4)強(qiáng)制PC從相應(yīng)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理
程序處。
進(jìn)入異常處理前可以設(shè)置中斷禁止位,以禁止異常處理時(shí)對(duì)中斷的響應(yīng)。如果異常發(fā)
生時(shí),處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM
狀態(tài)。異常處理完畢之后,執(zhí)行以下操作從異常返回:
(1)將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。
(2)將SPSR復(fù)制回CPSR中。
(3)若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。
表4.3總結(jié)了進(jìn)入異常處理時(shí)保存在相應(yīng)R14中的PC值,及在退出異常處理時(shí)推薦
使用的指令。
表4.3異常進(jìn)入/退出
3以的的伏布
返回?cái)z令注徽,
ARMR14_xThumbR14_x」
BL,MOVPCrR14,PC-+-4,PC4-2,1」
SWI.MOVSPC,R14.PCI1PC-H21、
UDEFMOVSPC.R14jmdPC+4,PC+2,1,
FIQSUBSPC.R14_fiq.屏4PCI,PC4-4.,2.
IRQSUBSPC.R14_irq.盡4,PC+4iPC+42,
PABTSUBSPC,R14Jbt,N,PC+4.PC-4-41、
DABT.SUBSPC.R14_St,48.PC+8iPC-H83i
RESETNA、一,,-i4,
應(yīng)用程序中的異常處理:當(dāng)系統(tǒng)運(yùn)行時(shí),異??赡軙?huì)隨時(shí)發(fā)生。為保證在ARM處
理器發(fā)生異常時(shí)不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計(jì)中,首先要進(jìn)行異常處
理。采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處
理程序。當(dāng)ARM處理器發(fā)生異常時(shí),程序計(jì)數(shù)器PC會(huì)被強(qiáng)制設(shè)置為對(duì)應(yīng)的異常向
量,從而跳轉(zhuǎn)到異常處理程序。當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。
各異常向量地址如表4.4所示。
表4.4異常向曼表J
址,異常.,設(shè)入梭衣,
0x0000^000,復(fù)被冷理槐衣
0x0000^1004來(lái)定義檄令,耒是義極衣
0^0000^3008,SWI軟件中斷曾理模也,
0x0000pooC中止(初取橙令)中止叔忒?
0M000,010中止中止板式
0x0000^)014保密、保穿
0x0000/018.,IRQ.IRQ、
0x0000poic-RQ.FIQ-
當(dāng)多個(gè)異常同時(shí)發(fā)生時(shí),系統(tǒng)根據(jù)固定的優(yōu)先級(jí)決定異常的處理順序。
異常優(yōu)先級(jí)由高到低的排列次序?yàn)椋簭?fù)位、數(shù)據(jù)中止、FIQ、IRQ、預(yù)取指
令中止、未定義指令、SWL
4.3S3c2410X處理器詳解
S3c241OX在包含ARM920T核的同時(shí),增加了豐富的外圍資源,如圖4.10所
示。主要片內(nèi)外圍模塊包括:
?1個(gè)LCD控制器,支持STN和TFT液晶顯示屏;
?外部存儲(chǔ)器管理(SDRAM控制器和芯片選擇邏輯);
?3個(gè)通道的UART;
?4個(gè)通道的DMA,支持存儲(chǔ)器和I/O口之間的傳輸,以猝發(fā)模式提高傳輸率;
?4個(gè)具有PWM功能的16位定時(shí)/計(jì)數(shù)器和1個(gè)16位內(nèi)部定時(shí)器,支持外部時(shí)
鐘源;
?8通道的10位ADC,最高速率可達(dá)500kB/s,10位分辨率;
?觸摸屏接口;
?IIS總線接口;
?2個(gè)USB主機(jī)接口,1個(gè)USB設(shè)備接口;
?2個(gè)SPI接口;
?SD卡接口和MMC卡接口;
?16位看門(mén)狗定時(shí)器;
?117位通用I/O口和24位外部中斷源;
?8通道10位AD控制器;
?電源管理。
S3C241OX及片內(nèi)外圍簡(jiǎn)介
ClockG?rmtor
£(MPLL)Bridgt&DMA(4Ch)
UART0,l,2<M>12C
USBDeviceK)Z=(><2=t>
SDFMMC.gIO..
VMchdog
Tiner0=€>
BUSCONT.
ADC
Art>ito(r/Decode0
SPI0,1Ta/PWM
00~3,4(加聞nal)
圖41。S3c2410X結(jié)構(gòu)框圖?
S3c2410X支持大、小端模式,將存儲(chǔ)空間分成8組(Bank),每組大小是
128MB,共計(jì)1GB。
OM[1:0]4)1F10OM[1^)]-01,10
OxFFFF...FFFF
求使用耒使用
0x6000....0000.1
<1專用功能備存落區(qū)專用功能音存巷區(qū)
0x4800...0000.
0x4000....0FFF,耒便用
BootSRAM(4KB)
0x4000....0000.
SROMSROM
(BANK7,nGCS7)(BANK7,nGCS7).
0x3800....0000
SROM.SROM.
(BANK5,nGCS6)(BANK6,nGCS6)
0x3000....0000
SROM.SROM..
(BANK5,nGCS5)(BANK5,nGCS5)
0x2800....0000
SROMSROM
(BANK4,nGCS4).(BANK4,nGCS4).
0x2000....0000?
SROMSROM
(BANKS,nGCS3).(BANK5,nGCS3).
0x1800....0000?
SROM..SROM..
(BANK2,nGCS2)(BAbTK2,nGCS2)
0x0100....0000
SROMSROM
0x0800....0000(BANKl,nGCSl>.(BANKhnGCSl).
SROM
0x0000....0000(BANK0,nGCS0).BootSRAM(4KB)
便用NANDFlash啟動(dòng)L
不使用NANDFlash啟動(dòng)
圖4.11S3c2410X復(fù)位后存緒器映射圖?
特殊功能寄存器
1.內(nèi)存控制器(MemoryController)
內(nèi)存控制器為訪問(wèn)外部存儲(chǔ)空間提供存儲(chǔ)器控制信號(hào),共有13個(gè)寄存器。
區(qū)4.5內(nèi)存控制寄存淤
寄存卷,地址大炭方忒讀閏,設(shè)明J定做后的但
BWSCON0X48000000,怠皎黨度和善待拄制備毒備0M)
BANKCONO0X48000004BANK0控制言存君■03U700
BANKC0N10X48000008BANK1控制備存超、0XD700
BANKC0N2、0X4800000CBANK2控制專存留0MD700
BANKC0N303(48000010.BANK3控制言存靜0MI700.
BANKC0N40X180000141BANK4拄制寄存器.0MJ700
BANKC0N5,0X48000018//耳,BANK5拄制寄存餐0MD700
BANKC0N60X4800001CBANK6控制備存卷、0X18008
BANKC0N7.0J38000020,BANK7控制備存&-0X18008
REFRESH0^8000024?SDRAM刷新控制備存百OWkCOOOO..
BANKSIZE0X48000028可變的緞大小寄存部0MD
L/DR.SR5603^800002CBANK6的極式設(shè)置志存巷:XXX
MRSEB70X48000030,BANK7的極式設(shè)置備存器3ODC
2.NandFlash控制器
S3c2410X支持NandFlash啟動(dòng),啟動(dòng)代碼存儲(chǔ)在NandFlash上。啟動(dòng)時(shí),
NandFlash的前4KB將被裝載到內(nèi)部的固定地址中,利用硬件糾錯(cuò)碼ECC對(duì)數(shù)據(jù)
的正確性檢驗(yàn),然后開(kāi)始執(zhí)行其中的啟動(dòng)代碼。一般情況下,該啟動(dòng)代碼會(huì)把
NandFlash中的內(nèi)容拷貝到SDRAM中去,拷貝完后,主程序?qū)⒃赟DRAM中執(zhí)
行。操作流程如圖4.13所示。
圖4.13NandFlash執(zhí)行流科
自動(dòng)引導(dǎo)模式流程:
?復(fù)位;
?如果自動(dòng)引導(dǎo)模式使能,NandFlash中的前4KB代碼拷貝到內(nèi)部的小石頭區(qū)域;
?小石頭映射到nGCSO;
?CPU開(kāi)始執(zhí)行小石頭區(qū)域中的代碼。
NandFlash模式:
?通過(guò)NFCONF寄存器設(shè)置NandFlash酉己置;
?iENandFlash命令寫(xiě)入NFCMD寄存器;
?fi5NandFlash地址寫(xiě)入NFADDR寄存器;
?讀/寫(xiě)數(shù)據(jù)同時(shí)通過(guò)NFSTAT寄存器檢測(cè)NandFlash狀態(tài)。讀操作前或者程序執(zhí)
行后檢查R/nB信號(hào)。
表4.7|NandFlash控制器
備存百出址、讀,耳.說(shuō)明復(fù)粒后的值
NFCON0?E?00000配置NandFlash:位15為1時(shí)使能N?ndFlash一,■
NFCMD.,03(40000004.1設(shè)置NandFlash一?■
讀,耳
NEADDRn0X4ED00008.1設(shè)置NandFlash地址.
NFDATA,o?nioooocNandFlash數(shù)據(jù)備存卷.一.
NFSTAT03SD300010NandFlash國(guó)作伏本一,
讀,
NFECC.03(40)00014NandFlashECC備存器?一.
「
3.時(shí)鐘和電源管理
S3c2410X的主時(shí)鐘由外部晶振或者外部時(shí)鐘提供,選擇后可以生成3種時(shí)鐘信號(hào),
分另U是CPU使用的FCLK,AHB總線使用的HCLK和APB總線使用的PCLK。時(shí)鐘
管理模塊同時(shí)擁有兩個(gè)鎖相環(huán),一個(gè)稱為MPLL,用于FCLK、HCLK和PCLK;另
一個(gè)稱為UPLL,用于USB設(shè)備。對(duì)時(shí)鐘的選擇是通過(guò)OM[3:2]實(shí)現(xiàn)的。
?OM[3:2]=00B時(shí),晶體為MPLLCLK和UPLLCLK提供時(shí)鐘源;
?OM[3:2]=01B時(shí),晶體為MPLLCLK提供時(shí)鐘源,EXTCLK為UPLLCLK提供0寸
鐘源;
?OM[3:2]=10B時(shí),EXTCLK為MPLLCLK提供時(shí)鐘源,晶體為UPLLCLK提供時(shí)
鐘源;
?OM[3:2]=11B時(shí),EXTCLK為MPLLCLK和UPLLCLK提供時(shí)鐘。
(1)鎖相環(huán)PLL。
鎖相環(huán)最基本的結(jié)構(gòu)由3個(gè)基本的部件組成:鑒相器(PFD)、環(huán)路濾波器
(LoopFilter)和壓控振蕩器(VCO),如圖4.14所示。鑒相器是個(gè)相位比較裝
置,它把輸入信號(hào)Fref與壓控振蕩器輸出分頻后的信號(hào)Fvc。的相位進(jìn)行比較,產(chǎn)
生對(duì)應(yīng)于兩個(gè)信號(hào)相位差的誤差電壓。環(huán)路濾波器的作用是濾除誤差電壓中的高
頻成分和噪聲,以保證環(huán)路所要求的性能,增加系統(tǒng)的穩(wěn)定性。壓控振蕩器受控
制電壓的控制,使壓控振蕩器的頻率向輸入信號(hào)的頻率靠攏,直至消除頻差而鎖
定。由此可見(jiàn),鎖相環(huán)是個(gè)相位誤差控制系統(tǒng)。它比較輸入信號(hào)和壓控振蕩器輸
出信號(hào)之間的相位差,從而產(chǎn)生誤差控制電壓來(lái)調(diào)整壓控振蕩器的頻率,以達(dá)到
與輸入信號(hào)同頻。
P[5:0]
Mf7:0]
S[1:O]
圖414PLL工作原理“
S3c2410X增加了1個(gè)轉(zhuǎn)換泵和3個(gè)除法器來(lái)增加控制。轉(zhuǎn)換泵首先對(duì)PFD的輸出信號(hào)按一
定比例轉(zhuǎn)換,然后傳遞給外部濾波器,最后由外部濾波器驅(qū)動(dòng)壓控振蕩VCO。除法器P對(duì)
輸入信號(hào)Fin分頻產(chǎn)生信號(hào)Fref,除法器M對(duì)壓控振蕩器輸出信號(hào)分頻產(chǎn)生信號(hào)Fvco,分頻
器S對(duì)壓控振蕩器輸出信號(hào)分頻后生成了MPLL。
在環(huán)路開(kāi)始工作時(shí),如果Fref與Fvco頻率不同,則是由于兩信號(hào)之間存在固有的頻率差
,因此它們之間的相位差一直在變化,使得鑒相器PFD輸出的誤差電壓就在一定范圍內(nèi)變
化。在這種誤差電壓的控制下,壓控振蕩器的頻率也在變化。若Fvco的頻率能夠變化到與
Frefffi等,那么在滿足穩(wěn)定性條件下就在這個(gè)頻率上穩(wěn)定下來(lái)。達(dá)到穩(wěn)定后,F(xiàn)ref與Fvco
之間的頻差為零,相差不再隨時(shí)間變化,誤差電壓為一固定值,此時(shí)環(huán)路進(jìn)入“鎖定”狀
態(tài)。這就是鎖相環(huán)工作的大致過(guò)程。
系統(tǒng)穩(wěn)定后Fref與Fvco相等,可得輸出頻率MPLL與輸入時(shí)鐘頻率Fin的關(guān)系式:
(M+8)xFin
MPLL—'L一一
(尸+2)x2
(2)時(shí)鐘控制邏輯。
時(shí)鐘控制邏輯決定了所使用的時(shí)鐘源,是采用MPLL作為FCLK,還是采用外
部時(shí)鐘。復(fù)位后,F(xiàn)in直接傳遞給FCLK,即使不想改變默認(rèn)的PLLCON值,也需
要重新寫(xiě)一遍。FCLK由ARM920T核使用,HCLK提供給AHB總線,PCLK提供
給了APB總線。
S3c2410X支持HCLK、FCLK和PCLK的分頻選擇,其比率是通過(guò)CLKDIV寄
存器中的HDIVN和PDIVN控制的,如表4.8所示。
表4.8分頻設(shè)定表”
HDIVNPDIVNFCLK,HCLK,PCLK,
0..0.FCLK.,FCLK..FCLK
O.tFCLK..FCLK,FCLK/2
1.0,F(xiàn)CLK,FCLK/2FCLKQ.
1FCLK,FCLK/2FCLK/4
(3)電源管理。
S3c241OX電源管理模塊通過(guò)4種模式有效地控制功耗:
?Normal模式:為CPU和所有的外設(shè)提供時(shí)鐘,所有的外設(shè)開(kāi)啟時(shí),該模式
下的功耗最大。這種模式允許用戶通過(guò)軟件控制外設(shè),可以斷開(kāi)提供給外設(shè)的時(shí)
鐘以降低功耗。
?Slow模式:采用外部時(shí)鐘生成FCLK的方式,此時(shí)電源的功耗取決于外部
時(shí)鐘。
?Idle模式:斷開(kāi)FCLK與CPU核的連接,外設(shè)保持正常,該模式下的任何中
斷都可喚醒CPU。
?Power-off模式:斷開(kāi)內(nèi)部電源,只給內(nèi)部的喚醒邏輯供電。一般模式下需
要兩個(gè)電源,一個(gè)提供給喚醒邏輯,另外一個(gè)提供給CPU和內(nèi)部邏輯,在
Power-off模式下,后一個(gè)電源關(guān)閉。該模式可以通過(guò)EINT[15:0]和RTC喚醒。
aLEBIT?L_____________
frienupts,EINTp:23],RTC
[RESET)
r—yWLQW_BI吧*4、
£041(15:0],
RTCalaim
((SLOW_BIT-1)
POWER-OFFBIT-1,
圖4.15S3c241UX的電源管理模式轉(zhuǎn)換關(guān)系圖,
(4)時(shí)鐘和電源管理寄存器。
S3c2410X通過(guò)控制寄存器實(shí)現(xiàn)對(duì)時(shí)鐘和電源的管理,相關(guān)寄存器
如表4.10所示。
表4.10時(shí)鐘控制寄存
比址.、我,耳1說(shuō)明定牧后的值
LOCKTIME0X4C00000、PLL假定時(shí)問(wèn)計(jì)數(shù)器OXOOKFKVTF
MPLL配置備存春:MDIV=I19:12],..
MPLLCON.0x4C00004,0x0005C0801
PDIV=p:4],SDIV=[1:O]
讀得
UPLLCON0X4C00008UPLL配置寄存希.同上■0x00028080
CLKCON0X4C0000C..時(shí)忖信號(hào)生成控制備存粉
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股份代持與代管合同協(xié)議2篇
- 二零二五年度水利工程監(jiān)測(cè)與施工測(cè)量服務(wù)合同范本3篇
- 二零二五版新能源設(shè)備搬運(yùn)安裝合同細(xì)則3篇
- 2025年度航空航天器發(fā)動(dòng)機(jī)安裝與測(cè)試合同3篇
- 二零二五年度綠色交通設(shè)施招標(biāo)投標(biāo)合同6篇
- 展會(huì)參展資格合同(2篇)
- 二零二五版水利工程鋼筋加工與分包合同規(guī)范范本3篇
- 二零二五版室內(nèi)外景觀裝飾一體化合同3篇
- 2025年度文化演出活動(dòng)承辦合同3篇
- 二零二五版單位職工食堂員工健康體檢承包合同2篇
- 中建集團(tuán)面試自我介紹
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
- 意識(shí)障礙患者的護(hù)理診斷及措施
- 2024版《53天天練單元?dú)w類復(fù)習(xí)》3年級(jí)語(yǔ)文下冊(cè)(統(tǒng)編RJ)附參考答案
- 2025企業(yè)年會(huì)盛典
- 215kWh工商業(yè)液冷儲(chǔ)能電池一體柜用戶手冊(cè)
- 場(chǎng)地平整施工組織設(shè)計(jì)-(3)模板
- 交通設(shè)施設(shè)備供貨及技術(shù)支持方案
- 美容美發(fā)店火災(zāi)應(yīng)急預(yù)案
- 餐車移動(dòng)食材配送方案
評(píng)論
0/150
提交評(píng)論