在淘寶上買修改openwrt的路由器,基本上都是改的16MB flash,那么為什么不改到1GB呢?
現在U盤的價格也很便宜啊。
於是我調查了一下,發現flash分為兩種,NorFlash與NandFlash。
一般路由器需要一個bootloader來啟動,一開始上電啟動的時候,從0x00開啟運行代碼,
這個bootloader代碼一般是可寫的,不是固化在ROM里的,是燒寫在flash里面的。
那么需要從flash里面運行代碼這一點,就決定了路由器需要采用NorFlash,而不是NandFlash。
下面用一張表總結了NorFlash與NandFlash的特性區別:
根據參考資料(http://www.cnblogs.com/wi100sh/p/4255072.html和http://zhidao.baidu.com/question/72486639.html):
Nor Flash 的特點是芯片內執行和不能直接寫操作,程序可以直接在其中運行,而不必將程序讀取到RAM 中運行。
理論上來說,有了Nor Flash,不用RAM就可以運行所有的代碼。目前的spi flash一般指的是Nor flash。
Nand Flash 的特點是采用非線性存儲模式,程序無法在其中運行,它只能作為程序或數據的存儲載體,
存儲在其中的程序只能先拷貝到RAM 中才能運行。cpu會自動從NAND flash中讀取前4KB的數據放置在片內SRAM里,通過這個載體把nandflash中大代碼復制到RAM(一般是SDRAM)中去執行)。程序員要完成的工作是把最核心的代碼放在nandflash的前4K中
從應用上來說,U盤都用的是Nand Flash,Nor Flash的大小目前基本上都只有幾十兆。
現在的Openwrt路由器基本上都是用的Nor Flash,但也有采用Nand flash 和 Nor Flash做組合的,用Nand flash做啟動
,用Nor Flash存儲資料文件。
在這里也有對它的總結:
另外在查找資料的過程中發現有很便宜的編程器可以來燒寫flash( CH341A編程器)
參考資料:
http://www.embedu.org/column/column05.htm
http://baike.baidu.com/view/2741245.htm
http://blog.micro-studios.com/?p=3888
http://blogs.ejb.cc/archives/7715/openwrt-tutorial-b-jffs2-filesystem
http://www.cnblogs.com/wi100sh/p/4255072.html
http://bbs.dzsc.com/space/viewspacepost.aspx?postid=69978
http://zhidao.baidu.com/question/72486639.html
http://forum.eepw.com.cn/thread/264953/1
http://bbs.xiaomi.cn/forum.php?mod=viewthread&action=printable&tid=8976496