S3C2440存儲控制器、SDRAM原理、內存初始化
NOR Flash是總線(xiàn)型設備,可在芯片內執行(XIP,eXecute In Place),應用程序可以直接在FIash閃存內運行,不必再把代碼讀到系統RAM中;而NAND Flash則需I/O接口,因此使用時(shí)需要寫(xiě)入驅動(dòng)程序
本文引用地址:http://dyxdggzs.com/article/201611/316881.htm
SDRAM:Synchronous Dynamic Random Access Memory,同步動(dòng)態(tài)隨機存儲器,同步是指Memory工作需要同步時(shí)鐘,內部的命令的發(fā)送與數據的傳輸都以它為基準;動(dòng)態(tài)是指存儲陣列需要不斷的刷新來(lái)保證數據不丟失;隨機是指數據不是線(xiàn)性依次存儲,而是自由指定地址進(jìn)行數據讀寫(xiě)。
1.S3C2440存儲控制器特性
(1)S3C2440A的存儲器管理器提供訪(fǎng)問(wèn)外部存儲器的所有控制信號
27位地址信號、32位數據信號、8個(gè)片選信號、以及讀/寫(xiě)控制信號等
(2)總共有8個(gè)存儲器bank(bank0—bank7)
(3)bank0---bank5為固定128MB
bank6和bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB
最大共1GB
(4) bank0可以作為引導ROM。其數據線(xiàn)寬只能是16位和32位,其它存儲器的數據線(xiàn)寬可以是8位、16位和32位
(5) 7個(gè)固定存儲器bank(bank0-bank6)起始地址。bank7的開(kāi)始地址與bank6的結束地址相連接,但是二者的容量必須相等
(6)所有存儲器bank的訪(fǎng)問(wèn)周期都是可編程的
(7)支持SDRAM的自刷新和掉電模式
(8)支持大小端(軟件選擇)
注:8個(gè)128M的bank,一共只有1G(地址空間),剩余3G,有一部分是寄存器的地址,還有一部分沒(méi)有被使用,系統上電后從bank0執行bootloader程序。
S3C2440的8個(gè)bank在系統上電后必須進(jìn)行相應的初始化(n多寄存器的配置,S3c2440片內有NandFlash,SDRAM,NorFlash等配置寄存器),2440不然就不能工作。
S3C2440的每個(gè)bank都可以用來(lái)總線(xiàn)型設備,這些設備共用系統的總線(xiàn)。這些設備的片選端,都應該接到相應bank的片選信號上,因此所有總線(xiàn)型設備的地址線(xiàn)也是共用的。比如bank0接的就是norflash(bank0可以作為引導ROM), Bank6接SDRAM。NandFlash不是總線(xiàn)型設備,所以NandFlash沒(méi)有接在bank上,而是單獨和S3C2440連接。系統如果從NandFlash啟動(dòng)的話(huà),NandFlash里面必須燒有bootloader程序,NorFlash同理。
2.SDRAM原理分析:
型號:K4S561632(兩片共64M)
大?。?M*16bit*4banks*2= 512 bit = 64M字節
數據寬度:32 bit
連接在BANK6上,片選信號nGCS6
地址范圍:0x3000_0000—0x33FF_FFFF
SDRAM存儲原理:
SDRAM的內部是一個(gè)存儲陣列,陣列中的每個(gè)單元格就是一個(gè)存儲單元。
有四個(gè)邏輯BANK(L-BANK)
由BA1、BA0選擇
行地址數:13
列地址數:9
SDRAM儲存區域分配:
0x3000_0000~0x3100_0000(程序代碼區、文字常量區)
0x33ff_0000~0x33ff_4800(堆區)
0x33ff_4800~0x33ff_8000(棧區)
0x33ff_ff00~0x3400_000(偏移中斷向量表)
3.內存初始化
內存是嵌入式系統中非常重要的一部分,在系統啟動(dòng)前,必須配置內存讓其工作。
NOR FLASH
NOR FLASH (EN29LV160AB):
大?。?M
數據寬度:16bit
連接在BANK0上,片選信號nGCS0
地址范圍:0x0000_0000---0x0020_0000
特點(diǎn):
線(xiàn)性尋址
可直接按地址進(jìn)行讀寫(xiě)操作
寫(xiě)操作之前需進(jìn)行擦除操作
寫(xiě)入、擦除速度較慢,讀取速度較快,單位密度低、成本較高
NAND FLASH
大?。?56M* 8Bit
數據寬度:8位
地址范圍:有專(zhuān)門(mén)的時(shí)序控制總線(xiàn),不占用系統總線(xiàn)資源
特點(diǎn):
非線(xiàn)性尋址
讀操作,一次必須讀一個(gè)扇區(512字節)
寫(xiě)操作,可按指定地址直接寫(xiě)入
寫(xiě)之前必須進(jìn)行擦除操作
單位密度高、成本低、擦除速度快
壞塊:
NAND器件中的壞塊是隨機分布的,在初始化時(shí),需要對介質(zhì)進(jìn)行初始化掃描以發(fā)現壞塊,并將壞塊標記為不可用
位交換:
NAND Flash中發(fā)生的次數要比NOR Flash多,建議使用NAND閃存時(shí),同時(shí)使用EDC/ECC算法
使用方法:
NOR Flash是可在芯片內執行(XIP,eXecute In Place),應用程序可以直接在FIash閃存內運行,不必再把代碼讀到系統RAM中;而NAND Flash則需I/O接口,因此使用時(shí)需要寫(xiě)入驅動(dòng)程序
啟動(dòng)方式:
NandFlash沒(méi)有接在bank0上,而程序必須從0地址開(kāi)始執行,即bank0開(kāi)始。2440內部有一個(gè)叫做“起步石(Steppingstone)”的SRAM緩沖器。
系統啟動(dòng)時(shí)Nand flash存儲器的前面4K字節被自動(dòng)拷貝到Steppingstone中。
Steppingstone被映射到nGCS0對應的BANK0存儲空間。
CPU在Steppingstone的4-KB內部緩沖器中開(kāi)始執行引導代碼。
引導代碼執行完畢后,自動(dòng)跳轉到SDRAM執行。
評論