1. 程式人生 > >SDRAM和NAND Flash的幾個注意點

SDRAM和NAND Flash的幾個注意點

1、首先CPU向SDRAM傳送一個讀地址,A0-A14對應的地址訊號是001000000000000b,此時SDRAM上的A0-A12上的地址訊號是0010000000000b,然後SDRAM返回該地址對應的儲存單元的資料(32位資料),最後儲存器控制器將該資料的8資料返回給CPU;

2、CPU向SDRAM傳送下一個讀地址,A0-A14對應的地址訊號是001000000000001b,此時SDRAM上的A0-A12上的地址訊號是0010000000000b,然後SDRAM返回該地址對應的儲存單元的資料,最後儲存器控制器將該資料的次低8資料返回給CPU;

3、CPU向SDRAM傳送下一個讀地址,A0-A14對應的地址訊號是001000000000010b,此時SDRAM上的A0-A12上的地址訊號是0010000000000b,然後SDRAM返回該地址對應的儲存單元的資料,最後儲存器控制器將該資料的次高

8資料返回給CPU;

4、CPU向SDRAM傳送下一個讀地址,A0-A14對應的地址訊號是001000000000011b,此時SDRAM上的A0-A12上的地址訊號是0010000000000b,然後SDRAM返回該地址對應的儲存單元的資料,最後儲存器控制器將該資料的8資料返回給CPU;

這樣,就完成了一個32位資料的完整讀取過程,從中可以發現,CPU的A0和A1地址線被自動遮蔽,並不參與譯碼,也就是說CPU傳送的地址訊號必須是4的倍數,這樣讀寫的資料才是變化的。

總結:一般地,外設與CPU的連線方式取決於外設的資料位數:

如果外設的資料位數是8位,則CPU的A0連線外設的A0;

如果外設的資料位數是16位,則CPU的A1連線外設的A0;

如果外設的資料位數是32位,則CPU的A2連線外設的A0;

2)NAND Flash啟動方式

ST2410開發板支援從NAND Flash啟動系統。

我們知道,應用程式通常需要被裝載到記憶體中才可以執行,而NAND Flash並沒有連線到系統總線上,只是通過幾個IO口與S3C2410連線,那麼系統是怎樣從NAND Flash上啟動的呢?首先看一下2410啟動後的儲存器對映圖:


圖的右邊是從NAND Flash啟動後的對映圖,可以看到在最下面有4KB大小的SRAM被對映到bank0處,其實現原理是這樣的:S3C2410內部提供一個叫做“Stepping stone”的SRAM緩衝器,系統啟動時NAND Flash的前4KB程式碼(通常是bootloader的stage 1)被自動複製到Stepping stone中,又因為程式的執行是從0地址開始的,所以stepping stone被對映到bank0處,然後CPU開始執行這段程式碼,當引導程式碼執行完之後就自動跳轉到SDRAM中執行,開始啟動作業系統。

3)NOR Flash

由於NOR Flash通過系統匯流排與S3C2410相連,所以應用程式可以直接在Flash裡面執行,無需再裝載到記憶體中,所以bootloader一般放在NOR Flash中。