應(yīng)用系統(tǒng)設(shè)計_第1頁
應(yīng)用系統(tǒng)設(shè)計_第2頁
應(yīng)用系統(tǒng)設(shè)計_第3頁
應(yīng)用系統(tǒng)設(shè)計_第4頁
應(yīng)用系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章應(yīng)用系統(tǒng)設(shè)計

4.1系統(tǒng)設(shè)計概述

4.2ARM920T簡介

4.3S3c2410X處理盎能詳角星

4.4單元電路設(shè)計

45存儲器系統(tǒng)設(shè)計

4.6JTAG調(diào)試接口設(shè)計

4.7綜合訓練之通過JTAG訪問外設(shè)

4.1系統(tǒng)設(shè)計概述

圖4」開發(fā)平臺系統(tǒng)組成.

4.2ARM920T簡介

ARM920T是ARM920TDMI系列中的一款通用性的微處理器,ARM920TDMI系

列微處理器包含如下幾種類型的內(nèi)核。

?ARM9TDMI:只有內(nèi)核。

?ARM940T:由內(nèi)核、高速緩存和內(nèi)存保護單元組成。

?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級流水線,其結(jié)構(gòu)圖如圖4.2所示,具有分開的指令和數(shù)據(jù)

存儲器,5級流水線具體如下。

(1)取指:從存儲器中取出指令,并將其放入指令流水線。

(2)譯碼:對指令進行譯碼。

(3)執(zhí)行:把一個操作數(shù)移位,產(chǎn)生ALU的結(jié)果。

(4)緩沖/數(shù)據(jù):如果需要,則訪問數(shù)據(jù)存儲器;否則ALU的結(jié)果只是簡單

地緩沖1個時鐘周期,以便所有的指令具有同樣的流水線流程。

(5)回寫:將指令產(chǎn)生的結(jié)果回寫到寄存器,包括任何從存儲器中讀取的數(shù)

據(jù)。

°ARM9TDMI處理器一個顯著的特點是采用指令和數(shù)據(jù)分離訪問的方式,即采

用了指令緩存(l-Cache)和數(shù)據(jù)緩存(D-Cache)。這樣可以把指令訪問和數(shù)

據(jù)訪問單獨安排1級流水線。

取指令移位/ALU”數(shù)據(jù)存儲器訪問.

取指p譯碼。執(zhí)行〉存儲器*

圖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)中,字的長度為32位,而在8位/16位處理器體系結(jié)構(gòu)

中,字的長度一般為16位。

半字(Half-Word),在ARM體系結(jié)構(gòu)中,半字的長度為16位,與8位/16位處理器

體系結(jié)構(gòu)中字的長度一致。

字節(jié)(Byte),在ARM體系結(jié)構(gòu)和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長度均為8

位。

指令長度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。

ARM920T中支持字節(jié)(8位)、半字(16位)、字(32位)3種數(shù)據(jù)類型,其中,

字需要4字節(jié)對齊,半字需要2字節(jié)對齊。

1.ARM微處理器的工作狀態(tài)

從編程的角度看,ARM920T微處理器的工作狀態(tài)一般有兩種:

?ARM狀態(tài),此時處理器執(zhí)行32位的、字對齊的ARM指令;

?Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。

ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,在程序的執(zhí)行過程中,微

處理器可以隨時在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處

理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時,應(yīng)該處

于ARM狀態(tài)。

當操作數(shù)寄存器的狀態(tài)位(位0)為1時,可以采用執(zhí)行BX指令的方法,使微處理器

從ARM狀態(tài)切換到Thumb狀態(tài)。當操作數(shù)寄存器的狀態(tài)位為0時,執(zhí)行BX指令可以使

狀態(tài)切換到ARM狀態(tài)Tfe外處理器進行異常處理時fFG指針

放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換

到ARM狀態(tài)。

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

ARM920T體系結(jié)構(gòu)將存儲器看做是從零地址開始的字節(jié)的線性組合。從0字

節(jié)到3字節(jié)放置第1個存儲的字數(shù)據(jù),從第4個字節(jié)到第7個字節(jié)放置第2個存儲的

字數(shù)據(jù),依次排列。作為32位的微處理器,ARM920T體系結(jié)構(gòu)所支持的最大尋

址空間為4GB(232字節(jié))。

ARM920T體系結(jié)構(gòu)可以用兩種方法存儲字數(shù)據(jù),分別稱為大端格式和小端格

式。

大端格式中字數(shù)據(jù)的高字節(jié)存儲在低地址中,而字數(shù)據(jù)的低字節(jié)則存放在高

地址中,如圖4.4所示。

31”2“23P1M15,8A,0+字地址.

8〃9V10*-'11。8“

4川5,6P4d

2y3d

低出七址~

圖4.4以大端格式存儲字數(shù)據(jù).

與大端存儲格式相反,在小端存儲格式中,低地址中存放的是字數(shù)據(jù)的低字

節(jié),高地址存放的是字數(shù)據(jù)的高字節(jié)。如圖4.5所示

31.->24」23,⑹138+702字地址,

11〃10。9川8P

7a6,5,4,

3,2“0“

低大!址,

圖4.5以小端格式存儲字數(shù)據(jù)」

3.處理器模式

ARM920T支持7種運行模式,分別為:

?用戶模式(usr),ARM處理器正常的程序執(zhí)行狀態(tài);

?快速中斷模式(fiq),用于高速數(shù)據(jù)傳輸或通道處理;

?外部中斷模式(irq),用于通用的中斷處理;

?管理模式(svc),操作系統(tǒng)使用的保護模式;

?數(shù)據(jù)訪問終止模式(abt),當數(shù)據(jù)或指令預(yù)取終止時進入該模式,可用于

虛擬存儲及存儲保護;

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

?未定義指令中止模式(und),當未定義的指令執(zhí)行時進入該模式,可用

于支持硬件協(xié)處理器的軟件仿真。

ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處

理改變。大多數(shù)的應(yīng)用程序運行在用戶模式下,當處理器運行在用戶模式下時,

某些被保護的系統(tǒng)資源是不能被訪問的。

除用戶模式以外,其余的6種模式稱為非用戶模式或特權(quán)模式;其中除去用

戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及訪

問受保護的系統(tǒng)資源等情況。

4.寄存器組織

ARM920T共有37個32位寄存器,其中31個為通用寄存器,6個為狀態(tài)寄存

器。但是這些寄存器不能被同時訪問,具體哪些寄存器是可編程訪問的,取決

于微處理器的工作狀態(tài)及具體的運行模式。

在ARM狀態(tài)下,任一時刻可以訪問16個通用寄存器和1?2個狀態(tài)寄存器。在

非用戶模式(特權(quán)模式)下,則可訪問到特定模式分組寄存器,圖4.6所示為在

每一種運行模式下,可以訪問的寄存器。

在ARM狀態(tài)下有16個直接訪問寄存器R0?R15,除R15寄存器外均為通用目

的,可用來存儲數(shù)據(jù)或地址值。除此之外,還有第17個寄存器用來存儲狀態(tài)信

息。

R14也稱為子程序連接寄存器(SubroutineLinkRegister)或連接寄存器LR。

當執(zhí)行BL子程序調(diào)用指令時,R14中得到R15(程序計數(shù)器PC)的備份。在其

他情況下,R14用做通用寄存器。與之類似,當發(fā)生中斷或異常時,對應(yīng)的分組

寄存器R14_svc、R14_irq>R14_fiq>R14_abt和R14_und用來保存R15的返回

值。

寄存器R15用做程序計數(shù)器(PC)。在ARM狀態(tài)下,位[1:0]為0,位[31:2]

用于保存PC;在Thumb狀態(tài)下,位⑼為0,位[31:1]用于保存PC。

寄存器R16用做當前程序狀態(tài)寄存器(CurrentProgramStatusRegister,

CPSR),CPSR可在任何運行模式下被訪問,它包括條件標志位、中斷禁止位、

當前處理器模式標志位,以及其他一些相關(guān)的控制和狀態(tài)位。

■■■

ARM狀態(tài)下的通用寄存器與程序計數(shù)器,,

System&User*1FIQ/Supervisor-'About/IRGfUndefined-'

RCkR(kR0<R0〃RWR(k

RbRK)RMRI。Rl“RW

R2tR2?R20R2>R2”R2--

R3-R3>R3“R3“時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)下的寄存器組織”

每一種非用戶模式下都有一個專用的物理狀態(tài)寄存器,稱為SPSR(Saved

ProgramStatusRegister,備份的程序狀態(tài)寄存器)。當異常發(fā)生時,SPSR用

于保存CPSR的當前值,從異常退出時則可由SPSR來恢復(fù)CPSR。

fiq模式下有7個分組寄存器R8_fiq~R14_fiq,在ARM狀態(tài)下,許多fiq處理都

不用保存任何寄存器。usr、fiq、irq>svc、abt>und模式下有兩個分組寄存器

R13和R14,而每種模式都有一個自己的堆棧指針和連接寄存器

Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個子集,程序可以直接

訪問8個通用寄存器(R7~R0)、程序計數(shù)器(PC)、堆棧指針(SP)、連接

寄存器(LR)和CPSR。同時,在每一種特權(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對應(yīng)于ARM狀態(tài)下的R13;

?Thumb狀態(tài)下的LR對應(yīng)于ARM狀態(tài)下的R14;

?Thumb狀態(tài)下的程序計數(shù)器對應(yīng)于ARM狀態(tài)下的R15。

以上的對應(yīng)關(guān)系如圖4.8所小。

在Thumb狀態(tài)下,高位寄存器R8~R15并不是標準寄存器集的一部分,但可

使用匯編語言程序受限制地訪問這些寄存器,將其用做快速的暫存器。使用帶特

殊變量的MOV指令,數(shù)據(jù)可以在低位寄存器和高位寄存器之間進行傳送;高位

寄存器的值可以使用CMP和ADD指令進行比較或加上低位寄存器中的值。

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)中包含一個當前程序狀態(tài)寄存器(CPSR)和5個備份的

程序狀態(tài)寄存器(SPSR)。備份的程序狀態(tài)寄存器用來進行異常處理,其功能

包括:

?保存ALU中的當前操作信息;

?控制允許和禁止中斷;

?設(shè)置處理器的運行模式。

程序狀態(tài)寄存器每一位的安排如圖4.9所示。

條件碼標志,保宜“控制牧

Cany/Boirow/ExijendStatebit

Zero---------------------------------FIQdisable

NegativeITwin----------------------------------IRQdi^bk?

圖4.9程序狀態(tài)寄存器格式丫

6.條件碼標志(ConditionCodeFlags)

N、Z、C、V均為條件碼標志位。它們的內(nèi)容可被算術(shù)或邏輯運算的結(jié)果所改

變,并且可以決定某條指令是否被執(zhí)行。條件碼標志各位的具體含義如表4.1所示。

表4.1條件碼標志的具體含義4

標志像◎義.

N,當用兩個科嗎愛家的帶符號數(shù)送行過算時.N=1農(nóng)示運算的結(jié)果的負數(shù);N=0我不運算的統(tǒng)果為正數(shù)或察

Z,2=1及示運算的續(xù)果為黑;Z=0表示過算的結(jié)果為非窯

C可以有4種方法設(shè)置C的但:

一加法運算(包括比校指令CMP):當運算結(jié)果產(chǎn)生丁逸粒時(無符號數(shù)整出),C=E否則C=0

—減法運算(包括比長推母CMPL當運算時產(chǎn)生T借校(無符號基整出).C=0.否劃C=1

—附子包含移位慢作的非加/減運算燧令,C欠移出值的最后一位

—對千其他的非加,減過篁微令.C的但圓堂不改變

V.可以有2種方法設(shè)餐V的值:

一和千加/蹴法過篁楂令.當區(qū)作敵和過復(fù)結(jié)果為二澆制的料包農(nóng)不的藥符號基時,V=1茂木符號位旅出

—對于其他的非加,減運篁撥令.C的但遇常不改變

Q■在ARM9應(yīng)以上版近的E系列處理器中.用Q標志檢攝示第裔的DSP過夏微令是否發(fā)生T溢出.在其他版

本的處理趨中.Q標志粒無定義

7.控制位

CPSR的低8位(包括I、F、T和M[4:0])稱為控制位,當發(fā)生異常時這些位

可以被改變。如果處理器運行特權(quán)模式,這些位也可以由程序修改。

?中斷禁止位I、F:置1時,禁止IRQ中斷和FIQ中斷。

?T標志位:該位反映處理器的運行狀態(tài)。當該位為1時,程序運行于Thumb

狀態(tài),否則運行于ARM狀態(tài)。該信號反映在外部弓I腳TBIT上。在程序中不得修

改CPSR中的TBIT位,否則處理器工作狀態(tài)不能確定。

?運行模式位M[4:0]:MO、M1、M2、M3、M4是模式位。這些位決定了處

理器的運行模式。具體含義如表4.2所示。

?保留位:CPSR中的其余位為保留位,當改變CPSR中的條件碼標志位或者

控制位時,保留位不要被改變,在程序中也不要使用保留位來存儲數(shù)據(jù)。保留位

將用干ARM版本的擴展.

n表4.2運行模式位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)

當正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常。在處理異常之前,當前處理

器的狀態(tài)必須保留,這樣,當異常處理完成之后,當前程序可以繼續(xù)執(zhí)行。處理器允許多

個異常同時發(fā)生,處理器會按固定的優(yōu)先級對多個異常進行處理。ARM920T對異常的處

理按以下步驟操作:

(1)將下一條指令的地址存入相應(yīng)連接寄存器LR。若異常是從ARM狀態(tài)進入,LR寄

存器中保存的是下一條指令的地址(當前PC+4或PC+8,與異常的類型有關(guān));若異常

是從Thumb狀態(tài)進入,則在LR寄存器中保存當前PC的偏移量。這樣,異常處理程序就不

需要確定異常是從何種狀態(tài)進入的,程序在處理異常返回時能從正確的位置重新開始執(zhí)行。

例如:在軟件中斷異常SWI中,指令MOVPC,R14_svc總是返回到下一條指令,而不管

SWI是在ARM狀態(tài)執(zhí)行,還是在Thumb狀態(tài)執(zhí)行。

(2)將CPSR復(fù)制到相應(yīng)的SPSR中。

(3)根據(jù)異常類型,強制設(shè)置CPSR的運行模式位。

(4)強制PC從相應(yīng)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理

程序處。

進入異常處理前可以設(shè)置中斷禁止位,以禁止異常處理時對中斷的響應(yīng)。如果異常發(fā)

生時,處理器處于Thumb狀態(tài),則當異常向量地址加載入PC時,處理器自動切換到ARM

狀態(tài)。異常處理完畢之后,執(zhí)行以下操作從異常返回:

(1)將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。

(2)將SPSR復(fù)制回CPSR中。

(3)若在進入異常處理時設(shè)置了中斷禁止位,要在此清除。

表4.3總結(jié)了進入異常處理時保存在相應(yīng)R14中的PC值,及在退出異常處理時推薦

使用的指令。

表4.3異常進入/退出

3以的的伏布

返回攝令注徽,

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)用程序中的異常處理:當系統(tǒng)運行時,異??赡軙S時發(fā)生。為保證在ARM處

理器發(fā)生異常時不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計中,首先要進行異常處

理。采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處

理程序。當ARM處理器發(fā)生異常時,程序計數(shù)器PC會被強制設(shè)置為對應(yīng)的異常向

量,從而跳轉(zhuǎn)到異常處理程序。當異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。

各異常向量地址如表4.4所示。

表4.4異常向曼表J

址,異常.,設(shè)入梭衣,

0x0000^000,復(fù)被冷理槐衣

0x0000^1004來定義檄令,耒是義極衣

0^0000^3008,SWI軟件中斷曾理模也,

0x0000pooC中止(初取橙令)中止叔忒?

0M000,010中止中止板式

0x0000^)014保密、保穿

0x0000/018.,IRQ.IRQ、

0x0000poic-RQ.FIQ-

當多個異常同時發(fā)生時,系統(tǒng)根據(jù)固定的優(yōu)先級決定異常的處理順序。

異常優(yōu)先級由高到低的排列次序為:復(fù)位、數(shù)據(jù)中止、FIQ、IRQ、預(yù)取指

令中止、未定義指令、SWL

4.3S3c2410X處理器詳解

S3c241OX在包含ARM920T核的同時,增加了豐富的外圍資源,如圖4.10所

示。主要片內(nèi)外圍模塊包括:

?1個LCD控制器,支持STN和TFT液晶顯示屏;

?外部存儲器管理(SDRAM控制器和芯片選擇邏輯);

?3個通道的UART;

?4個通道的DMA,支持存儲器和I/O口之間的傳輸,以猝發(fā)模式提高傳輸率;

?4個具有PWM功能的16位定時/計數(shù)器和1個16位內(nèi)部定時器,支持外部時

鐘源;

?8通道的10位ADC,最高速率可達500kB/s,10位分辨率;

?觸摸屏接口;

?IIS總線接口;

?2個USB主機接口,1個USB設(shè)備接口;

?2個SPI接口;

?SD卡接口和MMC卡接口;

?16位看門狗定時器;

?117位通用I/O口和24位外部中斷源;

?8通道10位AD控制器;

?電源管理。

S3C241OX及片內(nèi)外圍簡介

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支持大、小端模式,將存儲空間分成8組(Bank),每組大小是

128MB,共計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啟動L

不使用NANDFlash啟動

圖4.11S3c2410X復(fù)位后存緒器映射圖?

特殊功能寄存器

1.內(nèi)存控制器(MemoryController)

內(nèi)存控制器為訪問外部存儲空間提供存儲器控制信號,共有13個寄存器。

區(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啟動,啟動代碼存儲在NandFlash上。啟動時,

NandFlash的前4KB將被裝載到內(nèi)部的固定地址中,利用硬件糾錯碼ECC對數(shù)據(jù)

的正確性檢驗,然后開始執(zhí)行其中的啟動代碼。一般情況下,該啟動代碼會把

NandFlash中的內(nèi)容拷貝到SDRAM中去,拷貝完后,主程序?qū)⒃赟DRAM中執(zhí)

行。操作流程如圖4.13所示。

圖4.13NandFlash執(zhí)行流科

自動引導模式流程:

?復(fù)位;

?如果自動引導模式使能,NandFlash中的前4KB代碼拷貝到內(nèi)部的小石頭區(qū)域;

?小石頭映射到nGCSO;

?CPU開始執(zhí)行小石頭區(qū)域中的代碼。

NandFlash模式:

?通過NFCONF寄存器設(shè)置NandFlash酉己置;

?iENandFlash命令寫入NFCMD寄存器;

?fi5NandFlash地址寫入NFADDR寄存器;

?讀/寫數(shù)據(jù)同時通過NFSTAT寄存器檢測NandFlash狀態(tài)。讀操作前或者程序執(zhí)

行后檢查R/nB信號。

表4.7|NandFlash控制器

備存百出址、讀,耳.說明復(fù)粒后的值

NFCON0?E?00000配置NandFlash:位15為1時使能N?ndFlash一,■

NFCMD.,03(40000004.1設(shè)置NandFlash一?■

讀,耳

NEADDRn0X4ED00008.1設(shè)置NandFlash地址.

NFDATA,o?nioooocNandFlash數(shù)據(jù)備存卷.一.

NFSTAT03SD300010NandFlash國作伏本一,

讀,

NFECC.03(40)00014NandFlashECC備存器?一.

3.時鐘和電源管理

S3c2410X的主時鐘由外部晶振或者外部時鐘提供,選擇后可以生成3種時鐘信號,

分另U是CPU使用的FCLK,AHB總線使用的HCLK和APB總線使用的PCLK。時鐘

管理模塊同時擁有兩個鎖相環(huán),一個稱為MPLL,用于FCLK、HCLK和PCLK;另

一個稱為UPLL,用于USB設(shè)備。對時鐘的選擇是通過OM[3:2]實現(xiàn)的。

?OM[3:2]=00B時,晶體為MPLLCLK和UPLLCLK提供時鐘源;

?OM[3:2]=01B時,晶體為MPLLCLK提供時鐘源,EXTCLK為UPLLCLK提供0寸

鐘源;

?OM[3:2]=10B時,EXTCLK為MPLLCLK提供時鐘源,晶體為UPLLCLK提供時

鐘源;

?OM[3:2]=11B時,EXTCLK為MPLLCLK和UPLLCLK提供時鐘。

(1)鎖相環(huán)PLL。

鎖相環(huán)最基本的結(jié)構(gòu)由3個基本的部件組成:鑒相器(PFD)、環(huán)路濾波器

(LoopFilter)和壓控振蕩器(VCO),如圖4.14所示。鑒相器是個相位比較裝

置,它把輸入信號Fref與壓控振蕩器輸出分頻后的信號Fvc。的相位進行比較,產(chǎn)

生對應(yīng)于兩個信號相位差的誤差電壓。環(huán)路濾波器的作用是濾除誤差電壓中的高

頻成分和噪聲,以保證環(huán)路所要求的性能,增加系統(tǒng)的穩(wěn)定性。壓控振蕩器受控

制電壓的控制,使壓控振蕩器的頻率向輸入信號的頻率靠攏,直至消除頻差而鎖

定。由此可見,鎖相環(huán)是個相位誤差控制系統(tǒng)。它比較輸入信號和壓控振蕩器輸

出信號之間的相位差,從而產(chǎn)生誤差控制電壓來調(diào)整壓控振蕩器的頻率,以達到

與輸入信號同頻。

P[5:0]

Mf7:0]

S[1:O]

圖414PLL工作原理“

S3c2410X增加了1個轉(zhuǎn)換泵和3個除法器來增加控制。轉(zhuǎn)換泵首先對PFD的輸出信號按一

定比例轉(zhuǎn)換,然后傳遞給外部濾波器,最后由外部濾波器驅(qū)動壓控振蕩VCO。除法器P對

輸入信號Fin分頻產(chǎn)生信號Fref,除法器M對壓控振蕩器輸出信號分頻產(chǎn)生信號Fvco,分頻

器S對壓控振蕩器輸出信號分頻后生成了MPLL。

在環(huán)路開始工作時,如果Fref與Fvco頻率不同,則是由于兩信號之間存在固有的頻率差

,因此它們之間的相位差一直在變化,使得鑒相器PFD輸出的誤差電壓就在一定范圍內(nèi)變

化。在這種誤差電壓的控制下,壓控振蕩器的頻率也在變化。若Fvco的頻率能夠變化到與

Frefffi等,那么在滿足穩(wěn)定性條件下就在這個頻率上穩(wěn)定下來。達到穩(wěn)定后,F(xiàn)ref與Fvco

之間的頻差為零,相差不再隨時間變化,誤差電壓為一固定值,此時環(huán)路進入“鎖定”狀

態(tài)。這就是鎖相環(huán)工作的大致過程。

系統(tǒng)穩(wěn)定后Fref與Fvco相等,可得輸出頻率MPLL與輸入時鐘頻率Fin的關(guān)系式:

(M+8)xFin

MPLL—'L一一

(尸+2)x2

(2)時鐘控制邏輯。

時鐘控制邏輯決定了所使用的時鐘源,是采用MPLL作為FCLK,還是采用外

部時鐘。復(fù)位后,F(xiàn)in直接傳遞給FCLK,即使不想改變默認的PLLCON值,也需

要重新寫一遍。FCLK由ARM920T核使用,HCLK提供給AHB總線,PCLK提供

給了APB總線。

S3c2410X支持HCLK、FCLK和PCLK的分頻選擇,其比率是通過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電源管理模塊通過4種模式有效地控制功耗:

?Normal模式:為CPU和所有的外設(shè)提供時鐘,所有的外設(shè)開啟時,該模式

下的功耗最大。這種模式允許用戶通過軟件控制外設(shè),可以斷開提供給外設(shè)的時

鐘以降低功耗。

?Slow模式:采用外部時鐘生成FCLK的方式,此時電源的功耗取決于外部

時鐘。

?Idle模式:斷開FCLK與CPU核的連接,外設(shè)保持正常,該模式下的任何中

斷都可喚醒CPU。

?Power-off模式:斷開內(nèi)部電源,只給內(nèi)部的喚醒邏輯供電。一般模式下需

要兩個電源,一個提供給喚醒邏輯,另外一個提供給CPU和內(nèi)部邏輯,在

Power-off模式下,后一個電源關(guān)閉。該模式可以通過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)時鐘和電源管理寄存器。

S3c2410X通過控制寄存器實現(xiàn)對時鐘和電源的管理,相關(guān)寄存器

如表4.10所示。

表4.10時鐘控制寄存

比址.、我,耳1說明定牧后的值

LOCKTIME0X4C00000、PLL假定時問計數(shù)器OXOOKFKVTF

MPLL配置備存春:MDIV=I19:12],..

MPLLCON.0x4C00004,0x0005C0801

PDIV=p:4],SDIV=[1:O]

讀得

UPLLCON0X4C00008UPLL配置寄存希.同上■0x00028080

CLKCON0X4C0000C..時忖信號生成控制備存粉

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論