目前已經不少ARM9的處理器都至少支持nand flash啓動 和nor flash啓動。那此兩種啓動方式到底有什麼區別呢?下面以S3C2440爲例說明。性能
NandFlash 與 NorFlash 區別spa
以下表所示接口
|
NOR內存 |
NADNci |
容量flash |
1~32MBtable |
16~512MB效率 |
XIP(芯片內執行)程序 |
Yes並行 |
No |
性能 |
擦除很是慢,寫慢,可是讀很是快 |
擦除、寫、讀都較快 |
可靠性 |
高,位反轉比例小於nandflash的10% |
比較低,位反轉比較常見 |
接口 |
與RAM同樣 |
I/O接口 |
訪問方法 |
隨機訪問 |
順序訪問 |
主要用途 |
保存代碼和關鍵數據 |
用於保存數據 |
價格 |
高 |
低 |
文件系統支持 |
Jffs2 |
Yaffs |
記住最重要一點,NOR Flash的接口與RAM同樣,因此能夠隨機訪問任意地址,效率高,因此讀的效率很是高。而NAND FLASH通常以512字節爲單位進行讀寫。前者更適合保存程序,然後者保存數據。
啓動方式對比
Nand啓動
分兩種狀況,應用程序小於4K和應用程序大於4K。
若是應用程序小於4K:
(1) 一上電,nand前4K自動拷貝到2440內部的SRAM中。(2440的片內存儲爲4K)
(2) CPU從0地址執行(此時,0地址在SRAM中)
若是應用程序大於4K,那麼應該怎麼辦呢。仍是同樣:
(1) 上電後,從nand前4K拷貝到片內的SRAM
(2)關看門狗、初始化存儲器管理器、SDRAM等
(3) 把代碼拷貝到SDRAM中,並繼續執行。
不一樣的是,須要訂製這4K的代碼,完成從nandflash到sdram代碼的複製。
Nor啓動
最根本的區別在於從nor啓動,因爲nor也是並行傳輸,能夠像內存(SRAM)同樣讀數據,但不能像內在同樣寫數據,因此能夠將0地址定位在norflash中
(1) 一上電,將0地址定位在nor flash中
(2) 一樣,CPU從0地址取址執行。