關於nor flash,nand flash, sram,sdram編址等困惑
SDRAM(Synchronous Dynamic Random Access Memory,同步動態隨機存儲器)也就是通常所說的內存。內存的工作原理、控制時序、及相關控制器的配置方法一直是嵌入式系統學習、開發過程中的一個難點。我們從其硬件的角度來分析其原理,然後再引出SDRAM的驅動編寫過程。
內存是代碼的執行空間,以PC機為例,程序是以文件的形式保存在硬盤裡面的,程序在運行之前先由操作系統裝載入內存中,由於內存是RAM(隨機訪問存儲器),可以通過地址去定位一個字節的數據,CPU在執行程序時將PC的值設置為程序在內存中的開始地址, CPU會依次的從內存裡取址,譯碼,執行,在內存沒有被初始化之前,內存好比是未建好的房子,是不能讀取和存儲數據的,因此我們要想讓MTOS運行在內存裡必須進行內存的初始化。
其實S3C2440內部帶有存儲器硬件控制器,針對SDRAM來說,有硬件控制機制,驅動內存時只需要先配置與內存存儲相關的寄存器,然後給定內存地址值就可以實現存儲,而像其他的信號線,nWE,CLK,nSRAS,nSCAS等都是由硬件來完成操作的,使用起來方便了不少。
本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2014-04/101119.htm