<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > S3C2440存儲控制器、SDRAM原理、內存初始化

          S3C2440存儲控制器、SDRAM原理、內存初始化

          作者: 時間:2016-11-11 來源:網絡 收藏
          NandFlash和NorFlash都是Flash的一種,都是散存,都是磁盤存儲介子,但是NandFlash一般比較大,而NorFlash都比較小,并且NorFlash比較貴,并且NorFlash寫的速度比較慢,但讀的速度比較快,而NandFlash讀的速度比較慢,寫的速度比較快。

          NOR Flash是總線型設備,可在芯片內執(zhí)行(XIP,eXecute In Place),應用程序可以直接在FIash閃存內運行,不必再把代碼讀到系統(tǒng)RAM中;而NAND Flash則需I/O接口,因此使用時需要寫入驅動程序

          本文引用地址:http://www.ex-cimer.com/article/201611/316881.htm

            

           SDRAM:Synchronous Dynamic Random Access Memory,同步動態(tài)隨機存儲器,同步是指Memory工作需要同步時鐘,內部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準;動態(tài)是指存儲陣列需要不斷的刷新來保證數(shù)據(jù)不丟失;隨機是指數(shù)據(jù)不是線性依次存儲,而是自由指定地址進行數(shù)據(jù)讀寫。

          1.S3C2440存儲控制器特性

          (1)S3C2440A的存儲器管理器提供訪問外部存儲器的所有控制信號

          27位地址信號、32位數(shù)據(jù)信號、8個片選信號、以及讀/寫控制信號等

          (2)總共有8個存儲器bank(bank0—bank7)

          (3)bank0---bank5為固定128MB

          bank6和bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB

          最大共1GB

          (4) bank0可以作為引導ROM。其數(shù)據(jù)線寬只能是16位和32位,其它存儲器的數(shù)據(jù)線寬可以是8位、16位和32位

          (5) 7個固定存儲器bank(bank0-bank6)起始地址。bank7的開始地址與bank6的結束地址相連接,但是二者的容量必須相等

          (6)所有存儲器bank的訪問周期都是可編程的

          (7)支持SDRAM的自刷新和掉電模式

          (8)支持大小端(軟件選擇)

          注:8個128M的bank,一共只有1G(地址空間),剩余3G,有一部分是寄存器的地址,還有一部分沒有被使用,系統(tǒng)上電后從bank0執(zhí)行bootloader程序。

          S3C2440的8個bank在系統(tǒng)上電后必須進行相應的初始化(n多寄存器的配置,S3c2440片內有NandFlash,SDRAM,NorFlash等配置寄存器),2440不然就不能工作。

          S3C2440的每個bank都可以用來總線型設備,這些設備共用系統(tǒng)的總線。這些設備的片選端,都應該接到相應bank的片選信號上,因此所有總線型設備的地址線也是共用的。比如bank0接的就是norflash(bank0可以作為引導ROM), Bank6接SDRAM。NandFlash不是總線型設備,所以NandFlash沒有接在bank上,而是單獨和S3C2440連接。系統(tǒng)如果從NandFlash啟動的話,NandFlash里面必須燒有bootloader程序,NorFlash同理。

          2.SDRAM原理分析:

          型號:K4S561632(兩片共64M)

          大?。?M*16bit*4banks*2= 512 bit = 64M字節(jié)

          數(shù)據(jù)寬度:32 bit

          連接在BANK6上,片選信號nGCS6

          地址范圍:0x3000_0000—0x33FF_FFFF

          SDRAM存儲原理:

          SDRAM的內部是一個存儲陣列,陣列中的每個單元格就是一個存儲單元。

          有四個邏輯BANK(L-BANK)

          由BA1、BA0選擇

          行地址數(shù):13

          列地址數(shù):9

          SDRAM儲存區(qū)域分配:

          0x3000_0000~0x3100_0000(程序代碼區(qū)、文字常量區(qū))

          0x33ff_0000~0x33ff_4800(堆區(qū))

          0x33ff_4800~0x33ff_8000(棧區(qū))

          0x33ff_ff00~0x3400_000(偏移中斷向量表)

          3.內存初始化

          內存是嵌入式系統(tǒng)中非常重要的一部分,在系統(tǒng)啟動前,必須配置內存讓其工作。

          NOR FLASH

          NOR FLASH (EN29LV160AB):

          大?。?M

          數(shù)據(jù)寬度:16bit

          連接在BANK0上,片選信號nGCS0

          地址范圍:0x0000_0000---0x0020_0000

          特點:

          線性尋址

          可直接按地址進行讀寫操作

          寫操作之前需進行擦除操作

          寫入、擦除速度較慢,讀取速度較快,單位密度低、成本較高

          NAND FLASH

          大?。?56M* 8Bit

          數(shù)據(jù)寬度:8位

          地址范圍:有專門的時序控制總線,不占用系統(tǒng)總線資源

          特點:

          非線性尋址

          讀操作,一次必須讀一個扇區(qū)(512字節(jié))

          寫操作,可按指定地址直接寫入

          寫之前必須進行擦除操作

          單位密度高、成本低、擦除速度快

          壞塊:

          NAND器件中的壞塊是隨機分布的,在初始化時,需要對介質進行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標記為不可用

          位交換:

          NAND Flash中發(fā)生的次數(shù)要比NOR Flash多,建議使用NAND閃存時,同時使用EDC/ECC算法

          使用方法:

          NOR Flash是可在芯片內執(zhí)行(XIP,eXecute In Place),應用程序可以直接在FIash閃存內運行,不必再把代碼讀到系統(tǒng)RAM中;而NAND Flash則需I/O接口,因此使用時需要寫入驅動程序

          啟動方式:

          NandFlash沒有接在bank0上,而程序必須從0地址開始執(zhí)行,即bank0開始。2440內部有一個叫做“起步石(Steppingstone)”的SRAM緩沖器。

          系統(tǒng)啟動時Nand flash存儲器的前面4K字節(jié)被自動拷貝到Steppingstone中。

          Steppingstone被映射到nGCS0對應的BANK0存儲空間。

          CPU在Steppingstone的4-KB內部緩沖器中開始執(zhí)行引導代碼。

          引導代碼執(zhí)行完畢后,自動跳轉到SDRAM執(zhí)行。



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();