非易失性的存储介质(flash)——存储器
Flash是一种非易失性的存储介质,主要分为Nor和Nand两种。其中Nor Flash又分为Series(串行)和Parallel(并行)两种。SPI Flash就是Series Nor Flash。Nor Flash主要用于存储容量小的场景。其特点是读取速度快,擦除与写操作慢;Nand Flash容量大,读写与擦除速度快,主要用于需要大容量存储的场景。
1 Nand Flash
1.1Nand Flash的特点
由于Nand Flash生产工艺的原因,出厂芯片中会随机出现坏块。坏块在出厂时已经被初始化,并在特殊区域中标记为不可用,在使用过程中如果出现坏块,也需要进行标记。芯片厂商保证出厂时,Block 0不为坏块,但在使用过程中可能损坏。对于坏块而言,存储的信息可能会丢失,不能正常使用。另外在Nand Flash擦除或者编程过程中,出现操作失败后,表示该块不能正常使用,也应标记成坏块。所以在一般情况下,在操作NAND Flash之前,先要检查一下要操作的是否是坏块,以免坏块标记被破坏。此外,为了保证存储信息的可靠性,从Nand Flash中读取的数据还可以引入ECC校验,ECC码一般存放在该页的spare区。
1.2 Nand Flash的空间结构
NAND FLASH是一种多维的空间结构,一般由block,page等结构组成。所以在有的文件系统中就衍生出各种分区信息和扇区信息等。Nand Flash的page中包含有spare区。一般用于存储坏块信息,如芯片出厂时的坏块标志,或者使用过程中产生的ECC等。
1.3 Nand Flash的坏块处理
常见的坏块处理方式为跳过坏块(Skip bad block)
2 Nor Flash
2.1 Nor Flash的特点
Nor Flash的特点是读取速度快,擦写操作慢,不存在坏块,数据保存安全。
3经验案例
3.1 Nor Flash中不要使用memcpy而要使用flash read接口
原因:尽量使用统一接口操作flash,避免出现数据不一致的情况。
3.2 使用cramfs/squashfs做根分区,有些机器不能正常启动
原因:使用Nand Flash时,必须考虑坏块的因素。某些文件系统,如cramfs、squashfs,本身不带有坏块处理,在遇到根文件分区有坏块时,就不能正常启动。解决方法:在Linux驱动层增加针对cramfs、squashfs的坏块处理补丁。
3.3 使用Nand Flash其中存储数据概率性被破坏
原因:Nand Flash容易出现位反转,当反转的数据超过ECC所能纠正的范围后,数据就无法恢复。解决方法:1)确认使用的Nand Flash支持的ECC bit数,确保CPU支持。2)在某些平台(STH237系列),使用硬件ECC算法,需要增加特别补丁,来支持squash等文件系统。3)使用UBI文件系统,UBI针对nand flash的支持较好,本身也有针对坏块的处理。
3.4 EMMC需考虑分区表
常规flash通常采用类似下面的命令更新uboottftp 82000000 u-boot.bin;mmc write 0 82000000 0 8000对于emmc,采用上面的命令后, 重启后发现无法启动盒子, 原因是需要给分区表预留512字节, 所以采用下面的命令:tftp 82000000 u-boot.bin;mmc write 0 82000000 1 7fff3.5 MT8637 EN9高温开关机出现死机问题
3.5 东芝Flash与镁光Flash差异
目前,公司所用到的4GB的Nand Flash有Toshiba:4701-T58BG0-0480Micon: 479B-M29BG2-0480在设计时需要注意第38脚,东芝工程师确认38Pin需要接3.3V上拉,否则有可能引起不稳定,导致片内很多坏块;而镁光规格书里的38pin是DO NOT USED,不能使用的。因此,在BOM中这两个物料不能作为替代料,如果BOM中两颗料都有的话,需要通过选择条件进行区分开。
如何使用MM32F3270单片机FSMC驱动外部NOR Flash
在某些应用中,需要较大容量的存储空间用于存储数据;可以通过SPI 外扩NOR Flash,NAND Flash, 或者通过SDIO扩展SD Card或TF-Card。但有些需要高速存储数据,上述方式还是不够快速,这时可以使用MM32F3270系列的FSMC来外扩并行NOR Flash来实现。 并行NOR Flash与并行SRAM和PSRAM的读写接口大部分相同,但NOR Flash的写入速度与SRAM和PSRAM比较,相对较慢,需要通过NWAIT 信号检查NOR Flash的操作状态,并做一些等待,相应的时序需要根据不同的NOR Flash芯片所规定的参数而做相应的设置即可。
FSMC控制器外部信号
结合MM32F3270 的FSMC外部接口信号,可使用异步方式访问Nor Flash,可以选用复用或非复用方式扩展NOR Flash,还可以通过配置实现外扩8位总线或16位总线接口的NOR Flash。
MM32F3270不同封装芯片与NOR Flash接口
MM32F3270系列MCU因为封装的原因,导致只有部分MCU产品可以通过硬件复用出全部或部分的FSMC接口的相关GPIO;外扩NOR Flash也只有使用 LQFP144引脚封装MCU芯片才能支持连接地址数据非复用和复用方式外扩并行NOR Flash;而LQFP100引脚封装芯片因地址线缩减,仅支持连接地址数据复用方式外扩并行NOR Flash。LQFP64因为无法引出足够的地址与数据总线,同样不支持外扩并行NOR Flash。目前市场上非复用型16位数据总线接口的NOR Flash也是较为普遍。 灵动微电子是本土领先的通用32位MCU产品及解决方案供应商。MCU产品以MM32为标识,基于Arm Cortex-M系列内核,自主研发软硬件和生态系统。代理商英尚微为客户提供从硬件芯片到软件算法、从参考方案全方位支持。
相关问答
stm32f4外接 flash 最大多大?看下STM32f103的FSMC寻址地址是从0x70000000到0x8FFFFFFF就是8*64M的nandflashbank2,bank3还支持SRAM看下STM32f103的FS...
为什么flashplayer播放swf文件有的会显示工具栏(文件,查看,控制),有的却没有啊?在制作flash的时候,可以使用代码控制全屏,是否显示菜单等操作你说的这个情况是以下的控制命令fscommand("showmenu","false");...
制作 flash 影片,如何让 Flash player要播放时自动全屏?在Flash中,可利用函数实现。在影片的第一帧上双击进入FrameAction指令编辑窗口,输入如下Action指令:fscommand("fullscreen","...
怎么调整 flash 影片的窗口大小?在第一祯加个代码fscommand("allowscale",true);allowscale,表示是否允许缩放。系统默认值为true。如果你已经有这个指令,则要看是不是里面的值被...
FLASH 软件无法安装,一直出现一个对话框:部件hmButton.ocx或...第二C:\WINDOWS\system32\Macromed\Flash把文件夹删掉!不行用QQ电脑管家粉碎第三:开始运行regedit打开注册表顺序展开HKEY_LOCAL_MACHI...
用STM32挂接的最大 NandFlash 到多少?看下STM32f103的FSMC寻址地址是从0x70000000到0x8FFFFFFF就是8*64M的nandflashbank2,bank3还支持SRAM看下STM32f103的FS...
应届生嵌入式Linux开发学到什么程度可以找工作?精通Linux安装设定操作,熟悉Linux指令,架设WEBServer、FTPServer、MAILServer、tomcat等中间件的配置使用熟练掌握Linux操作系统配置与调试,网...
电脑能联接网络 但是不能看视频-ZOL问答(1)首先检查电话线有无问题(可以拨一个电话测试),如果正常,接着检查信号分频器是否连接正常(其中电话线接Line口,电话机接Phone口,ADSLModem接Modem口)。(2)...
rtos能上文件系统吗?rtos用的文件系统,根据设备介质,分为几种:1.RAM上文件系统RAMFS,ROMFS2.SPIFLASH/SDCARD上文件系统为fatfs,spiffs,RelianceEdge...
为什么相同的网址,相同的网络,在不同的电脑,一个能打开,另一...fsfsf55电脑的防火墙和FLASH关联软件等多个因素都有关,可以用360修复一下试试,实在不行就重新做一下系统!有用(0)回复检查你的防火墙并清空系统和浏览器的缓...