搜索 nand 启动 nor 地址
把nor放在bank0那从nand启动肯定是读不到nor的。根据官方的数据手册,从nand启动必须要设置OM[1:0]=00,而bank0的数据宽度也是由OM[1:0]来决定,但是他只有两个模式01和10对应16-bit和32-bit。换句话说,假如设定了从nand启动,那nor的数据宽度就不合要求了这样是不可能访问nor成功的。
严格说NOR flash有自己的数据和地址总线,因此可以采用类似RAM的随机访问,因此是可以直接在它上面运行程序的,因此NOR flash是可以用来boot的。这种片上运行叫做execute in place即EIP。
NAND flash的采用了i/o方式读取,他只有8位的数据地址共用的总线,因此需要软件去控制读取时序,因此不能像NOR flash那样直接连到地址和数据总线上,即不能像内存那样访问,因此不能EIP,因此不能直接作为boot之用。
而像s3c2410之所以可以将loader代码烧在NAND上从而boot,是由于s3c2410有一个内置的SRAM,叫做stepping stone.当加电后,可以自动将NAND的起始4k的内容拷贝到SRAM里,然后在RAM里执行,将NAND里的代码拷贝至SDRAM.也就是说我们就可以将一个小于4k的loader烧至NAND flash上就可以了。
此外还可以不采用这种功能,而是将loader代码烧在另外的ROM里,直接在ROM里运行loader将代码由NAND拷贝至SDRAM。
此外还有一种技术叫code shadowing,代码影射,即加电后自动将NAND的前面代码拷贝到SDRAM里,这种 机制可以用软件或者硬件来实现。如果用软件,那么就需要有个ROM来保存执行code shadowing的代码,此时这就跟上面的在ROM里面保存loader的意义相似了。如果用硬件来实现code shadowing也可以,就需要真正的电路来实现。
一般来说,如果有NOR flash我们就用NOR flash比较好,可以EIP.
NOR flash本来就是适合做代码存储并EIP的,读取速度快吗。NAND本来就是适合用来作大量数据存储的。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。