在淘宝上买修改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