nandflash和norflash都是flash的一種,都是散存,都是磁碟儲存介子,但是nandflash一般比較大,而norflash都比較小,並且norflash比較貴,並且norflash寫的速度比較慢,但讀的速度比較快 ,而nandflash讀的速度比較慢,寫的速度比較快。
nor flash是匯流排型裝置,可在晶元內執行(xip,execute in place),應用程式可以直接在fiash快閃儲存器內執行,不必再把**讀到系統ram中;而nand flash則需i/o介面,因此使用時需要寫入驅動程式
sdram:synchronous dynamic random access memory,同步動態隨機儲存器,同步是指memory工作需要同步時鐘,內部的命令的傳送與資料的傳輸都以它為基準;動態是指儲存陣列需要不斷的重新整理來保證資料不丟失;隨機是指資料不是線性依次儲存,而是自由指定位址進行資料讀寫。
1.s3c2440儲存控制器特性
(1) s3c2440a的儲存器管理器提供訪問外部儲存器的所有控制訊號
27位位址訊號、32位資料訊號、8個片選訊號、以及讀/寫控制訊號等
(2) 總共有8個儲存器bank(bank0—bank7)
(3) bank0---bank5為固定128mb
bank6和bank7的容量可程式設計改變,可以是2、4、8、16、32、64、128mb
最大共1gb
(4) bank0可以作為引導rom。其資料線寬只能是16位和32位,其它儲存器的資料線寬可以是8位、16位和32位
(5) 7個固定儲存器bank(bank0-bank6)起始位址。bank7的開始位址與bank6的結束位址相連線,但是二者的容量必須相等
(6) 所有儲存器bank的訪問週期都是可程式設計的
(7) 支援sdram的自重新整理和掉電模式
(8) 支援大小端(軟體選擇)
注:8個128m的bank,一共只有1g(位址空間),剩餘3g,有一部分是暫存器的位址,還有一部分沒有被使用,系統上電後從bank0執行bootloader程式。
s3c2440的8個bank在系統上電後必須進行相應的初始化(n多暫存器的配置,s3c2440片內有nandflash,sdram,norflash等配置暫存器),2440不然就不能工作。
s3c2440的每個bank都可以用來匯流排型裝置,這些裝置共用系統的匯流排。這些裝置的片選端,都應該接到相應bank的片選訊號上,因此所有匯流排型裝置的位址線也是共用的。比如bank0接的就是norflash(bank0可以作為引導rom), bank6接sdram。nandflash不是匯流排型裝置,所以nandflash沒有接在bank上,而是單獨和s3c2440連線。系統如果從nandflash啟動的話,nandflash裡面必須燒有bootloader程式,norflash同理。
nor flash是可在晶元內執行(xip,execute in place),應用程式可以直接在fiash快閃儲存器內執行,不必再把**讀到系統ram中;而nand flash則需i/o介面,因此使用時需要寫入驅動程式
啟動方式:
nandflash沒有接在bank0上,而程式必須從0位址開始執行,即bank0開始。2440內部有乙個叫做「起步石(steppingstone)」 的 sram緩衝器。
系統啟動時nand flash儲存器的前面4k位元組被自動拷貝到steppingstone中。
steppingstone被對映到ngcs0對應的bank0儲存空間。
cpu在steppingstone的4-kb內部緩衝器中開始執行引導**。
引導**執行完畢後,自動跳轉到sdram執行。
S3C2440儲存器SDRAM控制筆記
最近一年多的時間一直在從事任意輪系機械人運動控制及慣性導航的研究實踐,買的開發板閒置了一年多了,決定繼續 延續一年多前的學習,繼續做筆記。cpu發出ngcs6訊號,選中bank7,對應開發板nscs引腳,引腳標號19 sdram晶元行位址使用13根位址線,列位址復用行位址9根位址線,同時還有兩根位址...
S3C2440 儲存管理器
假如要從網絡卡或者sdram等裝置讀取資料 位址為0x30000000 可以如下 mov r1,0x30000000 ldr r0,r1 也就是讀取4byte資料cpu不需要關心外設是什麼,硬體相關所有工作由儲存管理器完成 1.片選訊號 2.bank選擇 3.列位址 4.行位址 等等位址線 資料線 ...
S3C2440 儲存控制器 與 啟動方式
2440不支援ddr sram 使用非常簡單 只要發位址,讀寫即可,訪問快,高 網絡卡和norflash 與sram介面是一樣的,術語上稱ram like sdram 訪問比較複雜,需要 bank位址,列位址,行位址,才能讀寫,並且需要不斷的重新整理 2440總共8個bank,每個128m,總共1g...