大容量SDRAM在windows CE系統(tǒng)中的應用設計
(3) 刷新間隔設置。關于刷新間隔值(DIR)的計算在手冊中是這樣給出的:本文引用地址:http://butianyuan.cn/article/152475.htm
目前公認的標準是,存儲體中電容的數(shù)據有效保存期上限是64 ms,也就是說每一行刷新的循環(huán)周期是64 ms。這樣刷新速度為:64 ms/行數(shù)量。由于行地址有13位(在MDCNFG寄存器的DRACO[1:0]中設置,需要與硬件一致),所以每行的的刷新時間為64 ms/213=64 ms/8 192=7.812 5/μs,則7.812 5μs×100 MHz/32=0x18,這樣就得到了系統(tǒng)的DRI值。
(4) 潛伏期的設置。潛伏期是指SDRAM在讀寫過程中所存在的延遲,潛伏期的時間長度是由以下幾個參數(shù)共同決定的:
CL:在選定列地址后,就已經確定了具體的存儲單元,剩下的事情就是數(shù)據通過數(shù)據I/O通道(數(shù)據總線)輸出到內存總線上。但是在CAS發(fā)出之后,仍要經過一定的時間才能有數(shù)據輸出,從CAS與讀取命令發(fā)出到第一筆數(shù)據輸出的這段時間被稱為讀取潛伏期。tRP:在發(fā)出預充電命令之后,要經過一段時間才能允許發(fā)送行有效命令打開新的工作行,這個間隔被稱為預充電有效周期(Precharge command Period)。tRCD:在發(fā)送列讀寫命令時必須要與行有效命令有一個間隔,這個間隔被定義為tRCD,即RAS to CASDelay(RAS至CAS延遲),也可以理解為行選通周期。tRAS:行有效至預充電命令間隔周期。tRC:包括行單元開啟和行單元刷新在內的整個過程所需要的時間。
所有參數(shù)可以從SDRAM數(shù)據手冊得到,計算出理論潛伏期時長為200/μs。
(5)其他設置
設置操作系統(tǒng)的入口點,這里用到的虛擬地址需要與系統(tǒng)中建立的映射表相對應。
3.2 BSP內代碼的實現(xiàn)
Windows cE系統(tǒng)啟動中,對SDRAM的操作分為兩個部分:首先對SDRAM的物理空間進行分配;其次將SDRAM所對應的物理地址轉換為虛擬地址。
3.2.1 地址的分配
地址的分配和系統(tǒng)加載的順序有著密切的關系。首先要在內存中開辟一段空間用來存放啟動代碼BootLoader,它被存放在sDRAM的第一個區(qū)域空間內。當發(fā)生外部復位中斷時系統(tǒng)會從這里重新開始運行。其次分配操作系統(tǒng)內核空間,它被存放在SDRAM的第二個區(qū)域,以便使BootLoader能夠順利加載操作系統(tǒng)內核。分配地址空間根據所建立系統(tǒng)內核來確定。剩余的內存空間用來存放系統(tǒng)下的應用程序。
3.2.2 地址的映射
在操作系統(tǒng)中,需要把SDRAM的空間連續(xù)起來并作為首地址,不僅方便內存管理,而且當應用程序申請大塊內存時,操作系統(tǒng)內核也可方便的分配。這就引入了將不連續(xù)的物理地址空間映射為連續(xù)的虛擬地址空間。PXA255的SDRAM起始物理地址OxA0000000,可將其映射為0x80000000,這里0x80000000將作為系統(tǒng)虛擬空間的起始地址,當有IRQ中斷發(fā)生時,系統(tǒng)PC指針會重新指向這個地址。需要注意的是這里分配的虛擬地址要與啟動代碼中BootLoader中所使用的虛擬地址對應起來。
3.2.3 軟件的移植
針對于PXA27x系列的高端處理器,微軟在Plat-Build 5.0中給出了相對應的內核代碼雖然在內核代碼的架構上有了很大的變化,但對于擴展SDRAM的思想并沒有改變,首先在BootLoader中初始化所使用的SDRAM,其次在BSP內建立地址映射表。
4 結 語
介紹了在嵌入式Windows CE系統(tǒng)平臺上,使用大容量SDRAM作為動態(tài)存儲設備的方案。詳細介紹了sDRAM硬件連接方案以及軟件接口的實現(xiàn)。該方案已經在工程設計中投入使用,其可以在同類的嵌入式高端產品中推廣使用。
評論