久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > mini2440 nand flash和nor flash啟動的區別

mini2440 nand flash和nor flash啟動的區別

作者: 時間:2016-11-28 來源:網絡 收藏
mini2440及其他類型的開發板一般都有從nand flashnor flash啟動兩種方式,那么這兩種啟動方式有什么區別呢,初學者一般都會一頭霧水。下面就講講這兩種啟動方式的區別。

本文引用地址:http://cqxgywz.com/article/201611/322614.htm

mini2440的nand flash128M,而nor flash只有2M,系統的bootloader一般很小,只有200多KB,而作為一個完整的系統,需要bootloader(200KB),kernel(2M),rootfs(100M),這些加起來就有100多M了,這三個部分需要一直存在系統中,掉電非易失,當然就不能放在內存(SDRAM)中了,需要放在非易失存儲器nandflash中,norflash因為很?。?M)只可以容納的下bootloader,所以mini2440的nandflash中存放bootloader(200KB),kernel(2M),rootfs(100M),norflash存放bootloader。因此mini2440既可以從nandflash啟動也可以從norflash啟動,但是運行操作系統的話只能從nandflash啟動,從nand flash啟動的時候整個操作系統也并不是在nand flash中運行,而是映射到內存SDRAM中運行。值得注意的是,在norflash啟動模式下進入bootloader菜單項,可以通過DNW下載程序或文件到nandflash中,也可以把nandflash中的東西上傳到PC機,而并不是只能在norflash和PC機之間傳送文件和程序等。

S3C2440的啟動時讀取的第一條指令是在0x00上,分成nandflash和norflash上啟動。

norflash有自己的地址線和數據線,可以采用類似于memory的隨機訪問方式,在norflash上可以直接運行程序,所以norflash可以直接用來做boot,采用norflash啟動的時候會把地址映射到0x00上。mini2440就是直接把vivi直接燒錄在norflash上。

nandflash是IO設備,數據、地址、控制線都是共用的,需要軟件區控制讀取時序,所以不能像norflash、內存一樣隨機訪問,不能EIP(片上運行),因此不能直接作為boot。

S3C2440把bootloader燒到nandflash上啟動,因為在S3C2440里有一個內置的SRAM,叫做steppingstone(墊腳石,很形象…),系統啟動加電后,會把nandflash上的起始4KB的內容拷貝到SRAM里執行,這樣就實現了從nandflash啟動。如果bootloader小于4KB的話(像vboot),在SRAM里就能boot,大于4KB的話(u-boot,vivi),在SRAM里做一些基本初始化后,再把bootloader的剩余部分拷貝到SDRAM里(>0x30000000)。

//=================================================================//注:bootloader是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核準備好正確的環境。通常,bootloader是嚴重地依賴于硬件而實現的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的bootloader幾乎是不可能的。盡管如此,我們仍然可以對BootLoader歸納出一些通用的概念來,以指導用戶特定的bootloader設計與實現。

//=================================================================//

我們使用S3C2440的時候,經常通過norflash啟動,進入vivi的菜單(S3C2440的norflash已經燒錄好了vivi),之后通過vivi的USB下載功能,把其他的bootloader下載到nandflash里,下載完成后,再通過nandflash啟動,測試我們的bootloader。

norflash適合做代碼存儲并EIP的,nandflash適合用來作大量數據存儲的。

Nandflash啟動:nandflash存儲器的前4K將被自動加載到Steppingstone(內部SRAM緩沖器),然后系統自動執行這些載入的啟動代碼,這4K的啟動代碼需要將nandflash中的內容復制到SDRAM中執行。nandflash的前4K空間放啟動代碼,SDRAM速度較快,用來執行主程序的代碼。

//================================================================//

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

//=================================================================//




評論


技術專區

關閉