S3C2410處理器的擴(kuò)展設(shè)計(jì)
1.需求分析
S3C2410是32位處理器(指令一次能夠操作32位數(shù)據(jù)(運(yùn)算器一次可以處理32位數(shù)據(jù));通用寄存器多是32位寄存器;處理器內(nèi)部數(shù)據(jù)通道也是32位的;處理器外部數(shù)據(jù)總線寬度通常是32位的,地址總線寬度只是代表CPU尋址范圍大小,與CPU是多少位的無(wú)關(guān),也即32位CPU的地址總線不一定是32根的,例如對(duì)于s3c2410,每一個(gè)Bank對(duì)應(yīng)27根地址線,尋址能力為128MB,全部8個(gè)Bank總的尋址能力為1GB),所以為了最大限度的發(fā)揮其性能,內(nèi)存最好也是32位(指數(shù)據(jù)寬度)的,(當(dāng)然,在s3c2410的8個(gè)bank中,除了Bank0只能選擇16/32數(shù)據(jù)位寬外,其余的7個(gè)Bank均可以單獨(dú)選擇8/16/32位寬的存儲(chǔ)系統(tǒng))然而市面上很少有32位寬度的單片SDRAM,所以一般都采取兩片16位的SDRAM進(jìn)行位擴(kuò)展得到32位的SDRAM
2.設(shè)計(jì)電路圖
2410與K4S561632D相連
本系統(tǒng)擴(kuò)展后的內(nèi)存系統(tǒng)為16M×32Bit的(此處32Bit是指數(shù)據(jù)位寬度,而非地址位,可以理解SDRAM數(shù)據(jù)位寬度與地址線的條數(shù)無(wú)關(guān),明白數(shù)據(jù)線和地址線的區(qū)別,對(duì)于下面地址線的連接方式的理解非常重要
3.初始化程序代碼
子函數(shù)說(shuō)明:初始化內(nèi)存控制器
memsetup:
mov r1,#MEM_CTL_BASE
adrl r2,mem_cfg_val
add r3,r1,#52
1:
ldr r4,[r2],#4 @將地址為R2的內(nèi)存單元數(shù)據(jù)讀取到R4中,然后r2=r2 +4
str r4,[r1],#4 @將r4的數(shù)據(jù)寫(xiě)入到r1的內(nèi)存單元,然后r1=r1+4
cmp r1,r3 @比較R1,R3是否設(shè)置完所有的13個(gè)寄存器。
bne 1b
S3C2410是32位處理器(指令一次能夠操作32位數(shù)據(jù)(運(yùn)算器一次可以處理32位數(shù)據(jù));通用寄存器多是32位寄存器;處理器內(nèi)部數(shù)據(jù)通道也是32位的;處理器外部數(shù)據(jù)總線寬度通常是32位的,地址總線寬度只是代表CPU尋址范圍大小,與CPU是多少位的無(wú)關(guān),也即32位CPU的地址總線不一定是32根的,例如對(duì)于s3c2410,每一個(gè)Bank對(duì)應(yīng)27根地址線,尋址能力為128MB,全部8個(gè)Bank總的尋址能力為1GB),所以為了最大限度的發(fā)揮其性能,內(nèi)存最好也是32位(指數(shù)據(jù)寬度)的,(當(dāng)然,在s3c2410的8個(gè)bank中,除了Bank0只能選擇16/32數(shù)據(jù)位寬外,其余的7個(gè)Bank均可以單獨(dú)選擇8/16/32位寬的存儲(chǔ)系統(tǒng))然而市面上很少有32位寬度的單片SDRAM,所以一般都采取兩片16位的SDRAM進(jìn)行位擴(kuò)展得到32位的SDRAM
2.設(shè)計(jì)電路圖
2410與K4S561632D相連
本系統(tǒng)擴(kuò)展后的內(nèi)存系統(tǒng)為16M×32Bit的(此處32Bit是指數(shù)據(jù)位寬度,而非地址位,可以理解SDRAM數(shù)據(jù)位寬度與地址線的條數(shù)無(wú)關(guān),明白數(shù)據(jù)線和地址線的區(qū)別,對(duì)于下面地址線的連接方式的理解非常重要
1: