1、mcu用的就是nor flash,好处是,linux系统中默认都是从0地址开始启动,stm32中默认是从0x08000000地址启动
NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。
NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制、地址和数据信息。由于时序较为复杂,所以一般CPU最好集成NAND控制器。
2、相比起NandFlash来说,NorFlash的容量要小,一般在1~16MByte左右,价格更贵一些。
3、NAND器件中的坏块是随机分布的,需要有坏块管理。而坏块问题在NorFlash上是不存在的。
4、在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。闪存的使用寿命同时和文件系统的机制也有关,要求文件系统具有损耗平衡功能。
5、NorFlash的升级较为麻烦,因为不同容量的NorFlash的地址线需求不一样,所以在更换不同容量的NorFlash芯片时不方便。通常我们会通过在电路板的地址线上做一些跳接电阻来解决这样的问题,针对不同容量的NorFlash。
7、写操作:任何flash器件的写入操作都只能在空或已擦除的单元内进行。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。擦除NOR器件时是以64~128KB的块进行的,执行一个擦除/写入操作的时间约为5s。擦除NAND器件是以8~32KB的块进行的,执行一个擦除/写入操作最多只需要4ms。
1、linux系统分区大小必须是擦除大小的整数倍,如果不是,则会锁死,变为只读
2、如果在工厂给nand flash首次烧录固件(空片),那么一定要加上ECC校验
如果是给nor flash 首次烧录固件,那么不需要加ecc校验。
如果是板子已经可以正常启动,然后用本地编的版本烧录,则不用添加ECC,因为编译生成的system已经加过了