- clou
-
norflash,nandflash,EEPROM都是些非易失性存储器,它们都是基于悬浮栅晶体管结构,但具体实现工艺上有差异。
EEPROM:(Electrically Erasable Programmable Read-Only Memory),我把它译作电擦电写只读存储器,也有书本译作“电可擦可编程只读存储器”。特点是可掉电存储数据,缺点是存储速度较慢,且早期的EEPROM需高压操作,现在的EEPROM一般片内集成电压泵,读写速度小于250纳秒,使用很方便。
FLASH:一般译为“闪存”,你可以理解为是EEPROM的一种,但存储速度较快,制作工艺优良,U盘的核心元件就是它。NandFlash一般比较大,而NorFlash都比较小,并且NorFlash比较贵,并且NorFlash写的速度比较慢,但读的速度比较快 ,而NandFlash读的速度比较慢,写的速度比较快.nandflash用于存储,而norflash除了存储数据功能外,还可以直接在上面运行程序。
至于dataflash则是一个抽象概念,可以由norflash nandflash EEPROM构成。
eMMC UFS NAND Flash相关知识点
说道NAND flash,首先提一下发明时间比较早的Nor-flash,Nor-flash相对于Nand-flash的特点是提供地址和数据引脚,可以像内存一样进行数据访问。 两种flash的主要差别: 从上图的比较可以看出,nand可以做更大的容量,同时擦写速度高于nor,随着nand的可靠性增加,越来越大的容量,后面的flash存储都是以nand为主。Nor-flash由于可以像内存一样读,可以将相关地址映射到CPU的地址空间进行XIP,由于物理特性Nor-flash存储程序比nand-flash更可靠,所以早期的嵌入式设备大部分使用Nor-flash作为程序存储和执行开启点。 从外部引脚看,主要差异emmc使用并行接口,ufs使用高效的串行接口,并且可以同时支持读和写。 从两者的读写速度看,ufs更快。 由于nand flash的特点,块擦写,page读,有循环回收算法,因此早期的nand flash驱动上面有MTD层,向上提供的是raw flash不带flash管理的,因此在上面挂在的文件系统需要进行坏块管理以及循环使用算法等,比较常见的有yaffs2 jffs2 ubifs等。 FTL原名“Flash Translation Layer”,工作在nand-flash和文件系统中间,模拟nand-flash为普通的块设备,文件系统挂在同硬盘一样,无需担心底层是什么硬件介质。因此,对于FTL一般集成了坏块管理,动态均衡算法,线性地址映射等算法。FTL一般作为software运行在cpu侧,随着mmc emmc ufs SD等标准的出现,硬件存储设备集成FTL算法,因此操作系统可以直接挂在ext4 ext3 FAT32等PC的文件系统。 像ext3 ext4 fat32等是给硬盘设计的文件系统,对flash的特性没有考虑。f2fs就是基于给nand-flash特性设计的,减少ftl的负担,对于nand-falsh来说优先选择。2023-07-26 23:26:541
请问nand flash和nor flash有什么不同?
1、写入/擦除操作的时间不同【nand flash】:擦除NAND器件以8~32KB的块进行,执行同一写入/擦除的操作时间为4ms【nor flash】:擦除NOR器件是以64~128KB的块进行,执行同一个写入/擦除操作的时间为5s2、接口不同【nand flash】:nand flash使用较为复杂的I/O口来串行地存取数据,并且各个产品或厂商的方法可能各不相同。【nor flash】:nor flash为SRAM接口,拥有足够的地址引脚用于寻址。3、容量成本不同【nand flash】:NAND flash的单元尺寸大约为NOR器件的一半,由于生产过程更为简单,因此价格较低。【nor flash】:NOR flash单元尺寸较大,生产过程也较为复杂,因此价格较高。4、耐用性不同【nand flash】:NAND闪存中每个块的最大擦写次数是一百万次。【nor flash】:NOR闪存中每个块的最大擦写次数是十万次。参考资料:百度百科-Nand flash2023-07-26 23:27:021
SPI flash,NADA flash,NOR flash如何区分?
SPI:serial peripheral interface串行外围设备接口x0dx0a是一种常见的时钟同步串行通信接口。x0dx0a外置flash按接口分有总线flash,SPI flash。x0dx0a总线flash需要你的MCU上有外部总线接口,SPI flash就是通过SPI口对flash进行读写。x0dx0a速度上,总线flash比SPI的快,但是SPI的便宜。x0dx0ax0dx0aNandFlash和NorFlash都是Flash的一种,都是散存,都是磁盘存储介子,但是NandFlash一般比较大,而NorFlash都比较小,并且NorFlash比较贵,并且NorFlash写的速度比较慢,但读的速度比较快 ,而NandFlash读的速度比较慢,写的速度比较快2023-07-26 23:27:181
norflash与nandflash区别
闪存是主要用于在不断的创例更新和系统变化的情况下,保留数据的存储设备,而nandflash和norflash是目前流行的闪存种类。它们有一些类似的特性,但也有重要的区别。NAND和NORFlash的最显著的不同之处是它们的存储结构和读取/写入性能。NANDFlash通常具有更大的存储容量,因此可以存储更多的数据,而且具有更快的读取/写入速度,适合写入大块数据。而NORFlash强调它们更高的可靠性和随机读取时间,更适合存储小型程序,运行时使用程序代码。此外,NANDFlash构造更加紧凑,可以提供更高的容量,可以节省更多的空间,而NORFlash则不同,其空间浪费更多。因此,NORFlash与NANDFlash之间的区别在于它们的存储结构、读取/写入性能及空间占用率。根据实际需求,用户可以根据具体需求来选择合适的闪存,以实现最好的效果。2023-07-26 23:27:251
下面关于NOR Flash和NAND Flash的叙述中,错误的是( )。
【答案】:DNOR Flash和NAND Flash是市场上两种主要的闪存技术;NOR Flash ROM的特点是以字节为单位随机存取,但NOR Flash ROM写入和擦除速度较慢,影响了它的性能。NAND Flash ROM以页(行)为单位随机存取,在容量、使用寿命和成本方面有较大优势。但是它的读出速度稍慢,编程较为复杂,因此大多作为数据存储器使用。数码相机存储卡和u盘中的Flash均采用NANDFlash。D选项错误,故本题选择D。2023-07-26 23:27:331
nandflash为啥怕高温
高温会导致nandflash数据保存失败。根据中关村在线资料,nanadflash为SSD内部担任储存数据的组件,一般来说,影响nanadflash数据保存,除了抹写次数,温度也是另一个因素。高温会导致nandflash数据保存失败。nanadflash存储器是flash存储器的一种,其内部采用非线性宏单元模式。2023-07-26 23:27:401
刷机后出现NAND Flash: ERROR: NAND Flash was not detected! 到底怎么回事啊,急急急!是硬件坏了吗
先说明你的机子型号跟系统版本好不???2023-07-26 23:27:574
nandflash和norflash的区别
nandflash和norflash的区别如下:1、开发的公司不同:NORflash是intel公司1988年开发出了NORflash技术。NOR的特点是芯片内执行(XIP,eXecuteInPlace)。Nandflash内存是flash内存的一种,1989年,东芝公司发表了NANDflash结构。其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。2、存储单元关系的不同:两种FLASH具有相同的存储单元,工作原理也一样,但NAND型FLASH各存储单元之间是串联的,而NOR型FLASH各单元之间是并联的。为了对全部的存储单元有效管理,必须对存储单元进行统一编址。3、擦除操作的不同:NANDFLASH执行擦除操作是十分简单的,而NORFLASH则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NORFLASH时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NANDFLASH是以8~32KB的块进行的,执行相同的操作最多只需要4ms。参考资料来源:百度百科-Nandflash参考资料来源:百度百科-NORFlash2023-07-26 23:28:061
SPI flash,NADA flash,NOR flash如何区分?
SPI flash就是通过SPI口对flash进行读写,NandFlash和NorFlash都是Flash的一种,都是散存,都是磁盘存储介子,但是NandFlash一般比较大,而NorFlash都比较小,并且NorFlash比较贵,写的速度比较慢,但读的速度比较快 ,而NandFlash读的速度比较慢,写的速度比较快。知识延展:SPI串行外围设备接口是一种常见的时钟同步串行通信接口,外置flash按接口分有总线flash,SPI flash,总线flash需要你的MCU上有外部总线接口。NADA flash又名闪存,是一种长寿命的非易失性存储器,它在断电情况下仍能保持所存储的数据信息,闪存是电子可擦除只读存储器的变种,闪存比EEPROM的更新速度快。NOR和NAND是现在市场上两种主要的非易失闪存技术,Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面,紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。2023-07-26 23:28:261
nand flash是什么意思
Nand-flash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。2023-07-26 23:28:351
nand flash 是什么意思
Flash名称的由来Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次性地将一个block,常见的块的大小是128KB/256KB。全部擦除为1,也就是里面的内容全部都是0xFF了,由于是一下子就擦除了,相对来说,擦除用的时间很短,可以用一闪而过来形容,所以,叫做Flash Memory。中文有的翻译为(快速)闪存。2023-07-26 23:28:452
NandFlash是什么???
这个应该是手机/相机/PDA上的说明。。。NandFlash是一种存储介质。相当于电脑的硬盘。是用来存储东西的。电脑上可存储的东西,在这里也都能存储。而1G2G4G8G16G是这种存储介质的大小容量。和电脑硬盘的多少G单位是一样的。这里为什么会有多种选择呢?因为同一款手机/相机/PDA在推出时,会考虑不同人的需求。而这种不同配置,相当与PC上硬盘大小的不同配置。有些人喜欢大容量的,有些人感觉小点就够用。当然,容量越小,价格越便宜。自己选择时,应考虑自己的实际情况和价格,来选取一个最优的。2023-07-26 23:28:531
Nand Flash和Nor Flash有什么区别?求解
可以看看这个,写得很清楚,http://wenku.baidu.com/view/4784877201f69e3143329482.html]2023-07-26 23:29:025
NAND FLASH与SD卡有什么不同
NANDFLASH一般是指未加入其他控制器的芯片IC,一般电子产品(MP3,导航仪,电脑,手机,智能穿戴等...)出厂前,厂商直接用机器贴片在主板上,主要用于电子产品内置储存文档,照片,音乐,影片用,即使没电储存在里面的资料还是存在的;而一般的DRAM内存条是电脑在开机后,用来运行程序的运行内存记忆体,没电时储存在里面的资料也就消失了。SD卡,T卡,U盘一般是电子产品(MP3,导航仪,电脑,手机,智能穿戴等...)须要扩容增加储存容量,或是为了方便携带拷贝文档,照片,音乐,影片,由产品外部接口(SD、T卡,USB接口)来扩充外部容量。SD卡,T卡,U盘是NANDFlash加了控制器的产品。现在电脑的SSD硬盘也是由NANDFLASH+SSD的控制器做成的。另外NANDFlash加了控制器的产品,封装成芯片IC样式的产品还有SPINAND,eMMC,SDNAND(贴片式T卡)等产品,主要品牌有三星,东芝,金士顿,米客方德,MakerFounder等,这类产品也是一般电子产品在出厂前,厂商直接用机器贴片在主板上。现在电脑的SSD硬盘也是由NANDFLASH+SSD的控制器做成的。2023-07-26 23:29:325
如何编写Linux下Nand Flash驱动
1. 了解硬件的nand flash的各个参数和工作原理具体参考nand flash的datasheet,主要包括,自己nand flash的厂商,型号等。Nand flash的页大小,oob大小,块大小,位宽8bit还是16bit。工作原理,上面已经做了一定描述,不清楚的,可以参考datasheet,多看看,就会明白很多。2. 按照linux下驱动编写规范编写nand flash驱动,可以参考其他已经有的驱动,比如内核源码中已经有的drivers/mtd/nand/s3c2410.c就是个很好的例子。自己以其为模板,实现自己板子的nand flash驱动。其实主要工作就是,实现static struct platform_driver s3c2410_nand_driver = { .probe = s3c2410_nand_probe, .remove = s3c2410_nand_remove, .suspend = s3c24xx_nand_suspend, .resume = s3c24xx_nand_resume, .driver = { .name = "s3c2410-nand", .owner = THIS_MODULE, },};中的XXX_nand_probe函数XXX_nand_remove函数XXX_nand_enable_hwecc,如果支持硬件ecc的话。对nand flash的读写,这两个函数,实现了对nand的具体操作。【Linux下Nand Flash驱动编写简单步骤】软件和硬件知识,都已经了解的话,由于上层的linux的 mtd框架中,已经完全封装好了,对nand flash的write page,write oob等相关函数的实现,那么剩下的只是相对来说已经是很少量的,关于nand 驱动具体内部操作方面的工作:1.初始化先是在nand 芯片初始化的时候,对其XXX_nand_init_chip()给对应的芯片chip赋给对应的XXX_nand_read_buf和XXX_nand_write_buf等函数: chip->cmd_ctrl = XXX_nand_hwcontrol; chip->dev_ready = XXX_nand_devready; chip->read_buf = XXX_nand_read_buf; chip->write_buf = XXX_nand_write_buf;以实现后续的对nand芯片的操作。然后根据ecc类型,赋给对应的ecc的校验与纠错函数: chip->ecc.hwctl = XXX_nand_enable_hwecc; chip->ecc.calculate = XXX _nand_calculate_ecc;3. 实现上面提到的对应的各个函数,关于如何实现,参考一下其他nand驱动,就会理解很多了。4. 驱动测试,参考具体的 ldd3(Linux Device Driver version 3)的测试相关部分内容。2023-07-26 23:29:481
emmc卡和mmc卡的区别是什么?以及与nand flash之间的区别有哪些?
eMMC是IC芯片;MMC是一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体(mmc卡)。简单的说eMMC是MMC卡的IC芯片(但不一定是,一般mmc卡独有的包装方式会不同于emmc)。NAND Flash 是一种存储介质,要在上面读写数据,外部要加主控和电路设计。eMMC是NAND flash+主控IC ,对外的接口协议与SD、TF卡类似;对厂家而言简化了电路设计,降低了成本。使用emmc的好处是,除了得到大容量的空间(这一点,只用NAND FLASH多堆叠也可以做到),还有就是emmc可以管理NAND (坏块处理,ECC)等。2023-07-26 23:29:571
NAND FLASH中two-plane是什么意思
如果你想知道这个,首先你要明白什么是page ,什么是WL,什么是BLock. 多少个page 组成一个BLock,然后多少个BLock 组成一个PLane.2023-07-26 23:30:053
uboot下如何正确适配nand flash?
很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到NandFlash中,幸好我们还有JLINK,用JLINK烧写U-boot到NorFlash中很简单,大部分NORFlash都已经被JLink的软件SEGGER所支持2023-07-26 23:30:121
我u盘怎么显示nand-flash
你好,1,出现这种问题。请尝试格式化。如果格式化不行的话 建议量产。2,如果优盘中有数据比较重要,建议找专业人士修复。2023-07-26 23:30:221
U盘显示Innostor NAND Flash USB device求救命
没数据就量产,不行只能扔了。2023-07-26 23:30:323
Flash存储器的简要介绍
闪存是一种不挥发性( Non-Volatile )内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。NAND 闪存的存储单元则采用串行结构,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块, NAND 的存储块大小为 8 到 32KB ),这种结构最大的优点在于容量可以做得很大,超过 512MB 容量的 NAND 产品相当普遍, NAND 闪存的成本较低,有利于大规模普及。NAND 闪存的缺点在于读速度较慢,它的 I/O 端口只有 8 个,比 NOR 要少多了。这区区 8 个 I/O 端口只能以信号轮流传送的方式完成数据的传送,速度要比 NOR 闪存的并行传输模式慢得多。再加上 NAND 闪存的逻辑为电子盘模块结构,内部不存在专门的存储控制器,一旦出现数据坏块将无法修,可靠性较 NOR 闪存要差。NAND 闪存被广泛用于移动存储、数码相机、 MP3 播放器、掌上电脑等新兴数字设备中。由于受到数码设备强劲发展的带动, NAND 闪存一直呈现指数级的超高速增长.NOR和NAND是市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5ms,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。● NOR的读速度比NAND稍快一些。● NAND的写入速度比NOR快很多。● NAND的4ms擦除速度远比NOR的5ms快。● 大多数写入操作需要先进行擦除操作。● NAND的擦除单元更小,相应的擦除电路更少。 NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。 NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8MB~128GB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。 所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。 NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。 可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。 当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。2023-07-26 23:30:511
NAND FLASH + FATFS 最小擦除单位是block 能不能用
NAND擦除的时候以block为单位是这种芯片的特性,擦除的时候有专门的命令,可以找相应NAND的DATASHEET看一下。2023-07-26 23:31:061
NANDFlash烧写器的功能描述
1.采用一托四的结构设计,可以对四片NAND Flash同时进行烧写,烧写过程实时校验写入数据,绝对保证数据的正确;2.支持多种软硬件平台的NAND Flash数据烧写,内置针对多种软硬件平台的量身定做的坏块管理及烧写方式,极大的提高烧录良品率。3.烧录速度快,512Byte小页面Flash速度约1.8MB/秒(带校验),2048Byte以上大页面SLC架构Flash编程速度约3MB/秒(带校验),2048Byte以上大页面MLC架构Flash编程速度约2.5MB/秒(数据全部比对校验)。4.标配4.3寸超大真彩液晶屏,一切操作可视化,触摸屏及按键双输入方式,无需连接电脑,方便用户实时观察烧录过程;5.支持以文件方式烧写和母片拷贝两种烧写方式:(1)母片拷贝方式:用于将用户原始Flash上的内容拷贝到板载Flash,之后再将板载Flash上相应的内容写入空的Flash;(2)文件方式烧写:用户可将指定文件置于SD卡或烧写器内置硬盘,本方式读出文件内容按指定方式(可支持特殊文件系统)写入Flash;6.可灵活配置多种参数,如页读取、页、块内容比较、生成文件、坏块扫描、擦除、扫描有数据区间等等多种操作:(1)对母片拷贝方式,可设置特殊坏块标记,方便适应不同的用户不同的坏块管理方式。且可设置拷贝区间,用户可选择拷贝有效数据区域,这样在之后烧写空片时可降低单位Flash的烧写时间;(2)可读取指定Flash任意页的内容显示,方便用户实时观察Flash上的数据分布;(3)可独立擦除指定的Flash,可独立扫描指定Flash的坏块,并形成详细坏块分布信息显示于屏幕;(4)可扫描Flash上的空白页或空白块,方便用户了解原始Flash上的空间使用情况;(5)可比较两个Flash之间不同块或不同页的内容,并将不同之处显示于屏幕,并可顺序浏览每一处不同;7.可根据用户的特殊要求快速修改软件,按你的特殊要求量身定做烧录方式(坏块管理方式),修改周期不超过3个工作日,且可定制特殊的文件系统的管理;2023-07-26 23:31:131
nand flash是rom还是ram?
ram2023-07-26 23:31:282
nor flash和nand flash的区别
1. 区别 NOR的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。优点是可以直接从FLASH中运行程序,但是工艺复杂,价格比较贵,NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。优点:大存储容量,而且便宜。缺点,就是无法寻址直接运行程序,只能存储数据。另外NAND FLASH 非常容易出现坏区,所以需要有校验的算法。任何flash器件的写入操作只能在空或已擦除的单元内进行(1)NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。(2)擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,NORFLASHSECTOR擦除时间视品牌、大小不同而不同,比如,4MFLASH,有的SECTOR擦除时间为60ms,而有的需要最大6S。与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms(3)当选择存储解决方案时,设计师必须权衡以下的各项因素。 ●NOR的读速度比NAND稍快一些。 ●NAND的写入速度比NOR快很多。 ●NAND的4ms擦除速度远比NOR的5s快。 ●大多数写入操作需要先进行擦除操作。 ●NAND的擦除单元更小,相应的擦除电路更少。(4)接口差别 NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,因此,基于NAND的存储器就可以取代硬盘或其他块设备。(5)容量差别:NORflash占据了容量为1~16MB闪存市场的大部分,而NANDflash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。(6)可靠性和耐用性-寿命(耐用性) 在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。-位交换 所有flash器件都受位交换现象的困扰。位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,在使用NAND闪存的时候,应使用EDC/ECC算法。用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。-坏块处理 NAND器件中的坏块是随机分布的,NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。(7)易于使用 可以非常直接地使用基于NOR的闪存。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。(8)软件支持在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。(9)在掌上电脑里要使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。除了SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND FLASH 启动程序。因此,必须先用一片小的NOR FLASH 启动机器,在把OS等软件从NAND FLASH 载入SDRAM中运行才行 2. 趋势 NOR Flash 生产厂商有 Intel和ST, Nand Flash厂商有Hynix,micon,Samsung,Toshiba和Fujitsu等。2006年NAND将占据59%的闪存市场份额,NOR的市场份额将下降到41%。而到2009年时,NAND的市场份额将上升到65%,NOR的市场份额将进一步下滑到35%。Nand 主要应用:Compacflash,Secure Digi-tal,Smartmedia,SD,MMC,Xd,PC Card,USB Sticks等。NOR的传输效率很高,在小容量时具有很高的成本效益,更加安全,不容易出现数据故障,因此,主要应用以代码存储为主,多与运算相关。目前,NAND闪存主要用在数码相机闪存卡和MP3播放机中,这两个市场的增长非常迅速。而NOR芯片主要用在手机和机顶盒中,这两个市场的增长速度相对较慢。 3. Samsung的S3C2440就能支持从NAND Flash和NOR Flash两种方式启动。2023-07-26 23:31:361
NAND flash和NOR flash的区别详解
我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的。这二种存储设备我们都统称为“FLASH”,FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通地过程序可以修改数据,即平时所说的“闪存”。Flash又分为NAND flash和NOR flash二种。U盘和MP3里用的就是这种存储器。 相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。 NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的, 通常是一次读取 512 个字节,采用这种技术的 Flash 比较廉价。用户 不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的开发板除了使用 NAND Flah 以外,还作上了 一块小的 NOR Flash 来运行启动代码。 NOR flash是intel公司1988年开发出了NOR flash技术。NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除 速度大大影响了它的性能。2023-07-26 23:31:451
TF卡是NAND FLASH吗
不是,TF包括了TF卡主控,NANDFLASH,NANDFLASH是用来存储数据的,主控是用来操作的。比方TF主控是除了硬盘以外的电脑部件,nandflash就是硬盘2023-07-26 23:32:331
如何编写Linux下Nand Flash驱动
【Linux下nand flash驱动编写步骤简介】1. 了解硬件的nand flash的各个参数和工作原理具体参考nand flash的datasheet,主要包括,自己nand flash的厂商,型号等。Nand flash的页大小,oob大小,块大小,位宽8bit还是16bit。工作原理,上面已经做了一定描述,不清楚的,可以参考datasheet,多看看,就会明白很多。2. 按照linux下驱动编写规范编写nand flash驱动,可以参考其他已经有的驱动,比如内核源码中已经有的drivers/mtd/nand/s3c2410.c就是个很好的例子。自己以其为模板,实现自己板子的nand flash驱动。其实主要工作就是,实现static struct platform_driver s3c2410_nand_driver = { .probe = s3c2410_nand_probe, .remove = s3c2410_nand_remove, .suspend = s3c24xx_nand_suspend, .resume = s3c24xx_nand_resume, .driver = { .name = "s3c2410-nand", .owner = THIS_MODULE, },};中的XXX_nand_probe函数XXX_nand_remove函数XXX_nand_enable_hwecc,如果支持硬件ecc的话。对nand flash的读写,这两个函数,实现了对nand的具体操作。【Linux下Nand Flash驱动编写简单步骤】软件和硬件知识,都已经了解的话,由于上层的linux的 mtd框架中,已经完全封装好了,对nand flash的write page,write oob等相关函数的实现,那么剩下的只是相对来说已经是很少量的,关于nand 驱动具体内部操作方面的工作:1.初始化先是在nand 芯片初始化的时候,对其XXX_nand_init_chip()给对应的芯片chip赋给对应的XXX_nand_read_buf和XXX_nand_write_buf等函数: chip->cmd_ctrl = XXX_nand_hwcontrol; chip->dev_ready = XXX_nand_devready; chip->read_buf = XXX_nand_read_buf; chip->write_buf = XXX_nand_write_buf;以实现后续的对nand芯片的操作。然后根据ecc类型,赋给对应的ecc的校验与纠错函数: chip->ecc.hwctl = XXX_nand_enable_hwecc; chip->ecc.calculate = XXX _nand_calculate_ecc;3. 实现上面提到的对应的各个函数,关于如何实现,参考一下其他nand驱动,就会理解很多了。4. 驱动测试,参考具体的 ldd3(Linux Device Driver version 3)的测试相关部分内容。说得很乱,希望对大家有些帮助。2023-07-26 23:32:401
Serial flash 和 nor flash nand flash 有什么区别
Serial flash一般采用一类总线接口(如SPI总线)与CPU进行通信的,数据是一位一位发送的;Nor flash采用并行地址和数据总线形式与CPU进行通信,若数据总线宽度为16,则通信时要一次发送16位的并行数据;Nand flash没有独立的地址线和数据线,其通信方式是由I/O口和控制信号所决定,其地址与数据都是通过I/O来串行的读取。2023-07-26 23:33:024
nand flash 读会产生坏块吗
nand flash 会产生坏块,发现后会对此坏块做记录,不影响使用。而nor flash不存在坏块问题。2023-07-26 23:33:091
spi nand flash 和nand flash什么区别
性能差别:对于Flash的写入速度,其实是写入和擦除的综合速度,Nand Flash擦除很简单,而Nor Flash需要将所有位全部写0(这里要说明一下,Flash器件写入只能把1写为0,而不能把0写为1,也就说,其写入的方式是按照逻辑与来进行的,譬如原来地址上的...2023-07-26 23:33:171
请问nand flash和nor flash有什么不同
可以看看这个,写得很清楚,http://wenku.baidu.com/view/4784877201f69e3143329482.html2023-07-26 23:33:262
SRAM,SROM,ROM,RAM,SDRAM,NORfalsh,NANDflash是什么?
SRAM,STATIC RANDOM ACCESS MEMORY 就是静态随即存储器SROM static read only memory 静态只读存储器ROM ,只读存储器RAM,随即存储器DRAM,英文全称Dynamic Random Access Memory,即动态随机存取存储器SDRAM,同步动态随机存储器 同步就是需要同步时钟NOR Flash 和 NAND Flash 是现在市场上两种主要的非易失闪存技术。2023-07-26 23:33:371
为什么不同厂家的nandflash读id和简单的读写擦命令都一样
1. 区别 NOR的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。优点是可以直接从FLASH中运行程序,但是工艺复杂,价格比较贵,NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。优点:大存储容量,而且便宜。缺点,就是无法寻址直接运行程序,只能存储数据。另外NAND FLASH 非常容易出现坏区,所以需要有校验的算法。任何flash器件的写入操作只能在空或已擦除的单元内进行(1)NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。(2)擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,NORFLASHSECTOR擦除时间视品牌、大小不同而不同,比如,4MFLASH,有的SECTOR擦除时间为60ms,而有的需要最大6S。与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms(3)当选择存储解决方案时,设计师必须权衡以下的各项因素。 ●NOR的读速度比NAND稍快一些。 ●NAND的写入速度比NOR快很多。 ●NAND的4ms擦除速度远比NOR的5s快。 ●大多数写入操作需要先进行擦除操作。 ●NAND的擦除单元更小,相应的擦除电路更少。(4)接口差别 NORflash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。 NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,因此,基于NAND的存储器就可以取代硬盘或其他块设备。(5)容量差别:NORflash占据了容量为1~16MB闪存市场的大部分,而NANDflash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。(6)可靠性和耐用性-寿命(耐用性) 在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。-位交换 所有flash器件都受位交换现象的困扰。位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,在使用NAND闪存的时候,应使用EDC/ECC算法。用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。-坏块处理 NAND器件中的坏块是随机分布的,NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。(7)易于使用 可以非常直接地使用基于NOR的闪存。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。(8)软件支持在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被WindRiverSystem、Microsoft、QNXSoftwareSystem、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。(9)在掌上电脑里要使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。除了SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND FLASH 启动程序。因此,必须先用一片小的NOR FLASH 启动机器,在把OS等软件从NAND FLASH 载入SDRAM中运行才行 2. 趋势 NOR Flash 生产厂商有 Intel和ST, Nand Flash厂商有Hynix,micon,Samsung,Toshiba和Fujitsu等。2006年NAND将占据59%的闪存市场份额,NOR的市场份额将下降到41%。而到2009年时,NAND的市场份额将上升到65%,NOR的市场份额将进一步下滑到35%。Nand 主要应用:Compacflash,Secure Digi-tal,Smartmedia,SD,MMC,Xd,PC Card,USB Sticks等。NOR的传输效率很高,在小容量时具有很高的成本效益,更加安全,不容易出现数据故障,因此,主要应用以代码存储为主,多与运算相关。目前,NAND闪存主要用在数码相机闪存卡和MP3播放机中,这两个市场的增长非常迅速。而NOR芯片主要用在手机和机顶盒中,这两个市场的增长速度相对较慢。 3. Samsung的S3C2440就能支持从NAND Flash和NOR Flash两种方式启动。2023-07-26 23:33:441
iMX6ull SD卡系统和Nandflash系统
系统源码和编译方法,[参见连接] ( https://community.nxp.com/docs/DOC-334274 )其中dtb文件针对LCD或HDMI修改的内容对iSpeaker无影响,不用去修改。我们会使用另外的dtb文件。 烧写SD方式也不采用这个文档中的方法,直接在linux命令行下如下操作: Nandflash使用zImage,dtb文件和SD卡中使用的完全一致。Uboot文件SD中使用的不能用于Nandflash,源码另见。 烧写Nandflash需要用SD卡系统盘启动,SD卡系统中需要已安装mtd-utils工具。系统启动后能正常看到mtd0~mtd4分区。按照下面步骤操作: $ flash_erase /dev/mtd0 0 0 $ flash_erase /dev/mtd1 0 0 $ flash_erase /dev/mtd2 0 0 $ kobs-ng init -x u-boot.imx --search_exponent=1 -v $ flash_erase /dev/mtd3 0 0 $ nandwrite -p /dev/mtd3 zImage $ nandwrite -p /dev/mtd3 -s 0x7e0000 imx.dtb $ ubiformat /dev/mtd4 -f ubi.img 其中使用ubi.img文件,在linux主机下制作方法如下: 使用的根文件系统和SD卡中的根文件系统一样,假设SD卡已插入linux主机usb接口,并将第二个分区挂载与/mnt下,首先在linux主机工作目录下建立文本文件ubifs.cfg,内容如下: [ubifs] mode=ubi image=ubifs.img vol_id=0 vol_type=dynamic vol_name=rootfs vol_flags=autoresize 然后执行如下命令: $ mkfs.ubifs -x zlib -m 2048 -e 124KiB -c 3965 -r /mnt ubifs.img $ ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 -O 2048 ubifs.cfg2023-07-26 23:33:511
nand flash为什么擦除最小单位是块
这是闪存特性决定的,P是衬底,在组织结构上,一个Block当中所有的存储单元是共用一个衬底的(Substrate)。当对某个衬底施加强电压,那么上面所有浮栅极(Floating Gate)的电子都会被吸出来。这就是Flash Erase操作。摘选自《深入浅出SSD》2023-07-26 23:34:012
请教nand flash interleave操作的问题
一、NAND flash和NOR flash的性能比较1、NOR的读速度比NAND稍快一些。2、NAND的写入速度比NOR快很多。3、NAND的4ms擦除速度远比NOR的5s快。4、大多数写入操作需要先进行擦除操作。5、NAND的擦除单元更小,相应的擦除电路更少。二、NAND flash和NOR flash的接口差别NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备。三、NAND flash和NOR flash的容量和成本NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。四、NAND flash和NOR flash的可靠性和耐用性采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。五、NAND flash和NOR flash的寿命(耐用性)在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。六、位交换所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用七、EDC/ECC算法这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。八、坏块处理NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。九、易于使用可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。十、软件支持当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。2023-07-26 23:34:292
如何测试nandflash可靠性
/*说明:测试nandflash的可靠性,有的时候nandflash写进去的内容会变位比如写进去1,可是存储的值变成了0,为了测试这种情况的频率写了下面的测试用例*//*nandflash挂载在/home/test目录下,通过不停的往test目录下写两个文件A,B(随便两个文件二进制文件都可以),写进去的文件名和顺序A0,B0,A1,B1,A2,B2....,每写进入一个文件读出来和A或者B比较*//*如果一旦发现写满了就删除文件重写继续写,一直持续下去,如果发现读出来的内容和写进入的内容就报错,然后再写一次,如果还错就退出程序*/ #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <fcntl.h>#include <sys/statfs.h> //for statfs#include <sys/vfs.h> //for statfs#include <sys/types.h>#include <sys/stat.h> //for stat#include <sys/time.h>#include "errno.h"static int nandflash_wrong=0;int check_remain_space(void){ int stat_flag=0; int i; struct statfs nandflash_stat; long hdisk_remainder_space; char path_name_check[32]; struct stat name_buf_check;stat_flag = statfs("/home/test", &nandflash_stat);//获取nandflash的信息 if(stat_flag<0) { printf("get nandflash info error! "); return -1; }hdisk_remainder_space = (float)nandflash_stat.f_bsize * nandflash_stat.f_bfree / 1024;//检测磁盘空间 if(hdisk_remainder_space<8*1024) //至少保留8M的空间 { for(i=0;i<200;i++) { sprintf(path_name_check,"/home/test/A%d",i); stat(path_name_check,&name_buf_check); if(errno!=ENOENT) //文件存在,则删除 { unlink(path_name_check);//不能重名 } sprintf(path_name_check,"/home/test/B%d",i); stat(path_name_check,&name_buf_check); if(errno!=ENOENT) //文件存在,则删除 { unlink(path_name_check);//不能重名 } } sleep(20); //删除文件并不是立即删除,所以要等待文件删除之后再写,防止写的速度比删除速度快,导致磁盘被写满的情况而出错 return 1; } return 0;}int write_read_nandflash(int mark,unsigned int i,int file_size,char *write_buf,char *read_buf){ FILE *fp; char path_name[32]; unsigned long buf_count=0; struct stat name_buf;if( mark == 0 ) { sprintf(path_name,"/home/test/A%d",i);//生成不同的文件名A0,A1,A2,A3....... } else { sprintf(path_name,"/home/test/B%d",i);}stat(path_name,&name_buf); if(errno!=ENOENT) //文件存在,则删除 { unlink(path_name);//不能重名 sleep(3); } if((fp=fopen(path_name,"w"))==NULL) { printf("fopen failed! "); return -1; }fwrite(write_buf,file_size,1,fp); fclose(fp);// printf("write file name is:%s ",path_name); if((fp=fopen(path_name,"r"))==NULL) { printf("fopen failed! "); return -1; } fread(read_buf,file_size,1,fp);for(buf_count=0;buf_count<(file_size-1);buf_count++)//将master/slave文件写到nandflash中的内容读出来比较 { if(read_buf[buf_count]!=write_buf[buf_count]) {system("date");//出错的时候打印的系统时间 printf("file name is %s: ",path_name); unlink(path_name); sleep(3); if((fp=fopen(path_name,"w"))==NULL) { printf("fopen failed! "); return -1; } nandflash_wrong++; fwrite(write_buf,file_size,1,fp);//出错之后再写一次 fclose(fp);if((fp=fopen(path_name,"r"))==NULL) { printf("fopen failed! "); return -1; } fread(read_buf,file_size,1,fp); for(buf_count=0;buf_count<(file_size-1);buf_count++) { if(read_buf[buf_count]!=write_buf[buf_count]) { printf("file name is %s: ",path_name); printf("write twice failed! "); fclose(fp); return -1; } } } } fclose(fp); return 0;}int main(void){ int A_size,B_size; A_size=B_size=0; int A_fd,B_fd;char *A_buf_read=NULL; char *B_buf_read=NULL; char *A_buf_write=NULL; char *B_buf_write=NULL;unsigned int iteation=0;int ret;A_fd=0; A_fd=open("/home/A",O_RDONLY); if(A_fd<0) { printf("open A faild! "); return -1; } A_size=lseek(A_fd,0,SEEK_END); lseek(A_fd,0,SEEK_SET); A_buf_write=(char *)malloc(A_size);if(NULL == A_buf_write) { printf("A_buf_write malloc failed! "); close(A_fd); return -1; }A_buf_read=(char *)malloc(A_size); if(NULL == A_buf_read) { printf("A_buf_read malloc failed! "); close(A_fd); return -1; } if(read(A_fd,A_buf_write,A_size)<0) { close(A_fd); printf("read A file failed "); }close(A_fd); B_fd=0; B_fd=open("/home/B",O_RDONLY); if(B_fd<0) { printf("open B faild! "); return -1; } B_size=lseek(B_fd,0,SEEK_END); lseek(B_fd,0,SEEK_SET); B_buf_write=(char *)malloc(B_size);if(NULL == B_buf_write) { printf("B_buf_write malloc failed! "); close(B_fd); return -1; }B_buf_read=(char *)malloc(B_size); if(NULL == B_buf_read) { printf("B_buf_read malloc failed! "); close(B_fd); return -1; } if(read(B_fd,B_buf_write,B_size)<0) { printf("read B file failed "); close(B_fd); } close(B_fd);system("date");//测试开始,开始读写nandflash while(1) {if((ret=check_remain_space())<0)//检测磁盘空间,小于8M,要删除文件重新从A0,B0,A1,B1,A2,B2。。。。写 { printf("check space wrong "); return -1; } else if(ret==1) { iteation=0; }if(write_read_nandflash(0,iteation,A_size,A_buf_write,A_buf_read)<0)//write A to nand and read it to compare { printf("write_read nand flash wrong "); return -1; } if(write_read_nandflash(1,iteation,B_size,B_buf_write,B_buf_read)<0)//write B { printf("write_read nand flash wrong "); return -1; } iteation++; }return 0;}2023-07-26 23:34:391
NAND Flash烧录器
西尔特5000以上都可以烧录,不过贵些,周立功的便宜些,你说下芯片型号,我帮你查一下哈2023-07-26 23:34:494
三星的系列NandFlash有什么区别
2016年,由于中国几个主要手机大厂(OPPO,VIVO,华为)的需求持续火爆,导致这些工厂给memory大厂的FORCAST数量也是非常巨大,据传2016年下半年的预测量是上半年的二倍。但是三星,海力士,镁光,东芝等大厂的产能有限,并且对于大容量的NAND 制程纷纷转向3D,3D整个转产并不顺利,良率一直不高。以上的所有原因导致2016年DRAM和大容量的NAND Flash市场价格一直上涨,价格居高不下,一些主流晶圆大厂三星,海力士,镁光,东芝等纷纷调整产能,停掉一些利润不大的产线,积极出货大容量DRAM和NAND Flash(EMMC)。NAND FLASH行业由于大容量的利润随着价格不断飙涨,原厂利润也越来越好,这样导致很多原厂停产了小容量SLC等级的NAND Flash。三星停产K9F1G08U0E,东芝减产小容量NAND flash,海力士也准备停产掉1Gb 的H27U1G8F2CTR。Spansion的小容量产品全线提价,并且告知客户缺货。停产导致价格持续上涨,给中小型企业带来了巨大的压力,客户急需找到一个能够持续稳定供货,并且有一定技术实力的原厂。环顾整个小容量nandflash市场,目前只有韩国ATO solution公司能够完成这个使命。他们是一家专注于小容量SLC NAND flash的厂商,容量从256Mb到 1Gb都有涉及。而且所有物料能够长期供货。他们具备一条M8晶圆产线使用,并且是自己独立研发的1Gb nandflash的产品,不受到其他公司专利权限制。2023-07-26 23:34:592
怎么查nandflash的坏块
首先调用erase,将NAND全部擦除一遍,然后执行如下检测操作,如果页大于512字节,badblockpos = 0;badblockbytes = 2;如果页小于512字节,badblockpos = 5;badblockbytes = 1;读取每个block的前两页OOB区域的第badblockpos开始的后badblockbytes字节是否为0xff,如果是,那么说明该block是好的,否则该block是坏块[gliethttp_20080523]!UINT_T create_bbt(FlashBootType_T fbt){ UINT_T Retval; P_FlashProperties_T pFlashP = GetFlashProperties(fbt); UINT_T BlkSize,BlkNum; UINT_T flash_addr;#define page_size (2048)#define page_spare_size (64)#define block_size (64*page_size)#define tmp_buffer_addr (0x80200000 - page_size - page_spare_size)#define tmp_spare_buffer_addr (tmp_buffer_addr + page_size) int i,j; char *bbpos; bbpos = (char*)(tmp_spare_buffer_addr + 0); BlkSize = pFlashP->BlockSize; BlkNum = pFlashP->NumBlocks; for(i = 0;i < BlkNum;i++) { flash_addr = i * BlkSize; for(j = 0;j < 2;j++) { Retval = xdfc_read((UINT_T *)tmp_buffer_addr, flash_addr + j*page_size, page_size, (UINT_T *)tmp_spare_buffer_addr, GetNANDProperties()); if(Retval) { goto __create_bbt_mark; } if(bbpos[0] != 0xff)goto __create_bbt_mark; if(bbpos[1] != 0xff)goto __create_bbt_mark; } continue;__create_bbt_mark: RelocateBlock( i, &GetFMProperties()->BBT, fbt ); }}2023-07-26 23:35:131
请你详细论述NAND FLASH的工作原理,以及S3C2410对其读写过程?
nand flash的存储原理,大概上就是它的最小物理存储单元,能够将电子存储起来,即使在断电的情况下。每个存储单元有无电子的状态,就能制成数据的0和1。制作Flash的厂商,都提供的外围接口了,包括地址线和各种信号线什么的,还提供各种命令的发送规则。你所说的S3C2410应该属于控制芯片了,它在对flash读写过程,实际上是向下发送读写命令,当然还包括地址和数据,flash会对发送的命令进行相应的操作,完成读写的过程。希望答案对你有所帮助。2023-07-26 23:35:201
nandflash和norflash的区别
NANDflash和NORflash的区别两种并行FLASHFlash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗振性强等优点,为嵌入式系统中典型的两种存储设备。1、NOR型Flash:如SST39VF160,可以直接读取芯片内存储器的数据,速度比较快,但价格较高;芯片内执行(XIP,eXecuteInPlace),应用程序可以直接在Flash上运行,不必再把代码读到系统RAM中;2、NAND型Flash:如K9F2808U0C,内部数据以块为单位存储,地址线和数据线共用,使用控制信号选择;极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也快,应用NAND型的困难在于Flash的管理需要特殊的系统接口。3、细述二者的差别:(1)、接口差别:NOR型Flash采用的SRAM接口,提供足够的地址引脚来寻址,可以很容易的存取其片内的每一个字节;NAND型Flash使用复杂的I/O口来串行的存取数据,各个产品或厂商的方法可能各不相同,通常是采用8个I/O引脚来传送控制、地址、数据信息。(2)、读写的基本单位:NOR型Flash操作是以“字”为基本单位,而NAND型Flash以“页面”为基本单位,页的大小一般为512字节。(3)、性能比较:NOR型Flash的地址线和数据线是分开的,传输效率很高,程序可以在芯片内部执行,NOR型的读速度比NAND稍快一些;NAND型Flash写入速度比NOR型Flash快很多,因为NAND读写以页为基本操作单位。(4)、容量和成本:NAND型Flash具有较高的单元密度,容量可以做得比较大,加之其生产过程更为简单,价格较低;NOR型Flash占据了容量为1~16MB闪存市场的大部分,而NAND型Flash只是用在8~128MB的产品中,这也说明NOR主要用在代码存储介质中,NAND适合数据存储在CompactFlash、PCCards、MMC存储卡市场上所占的份额最大。(5)、软件支持:NAND型和NOR型Flash在进行写入和擦除时都需要MTD(MemoryTechnologyDrivers,MTD已集成在Flash芯片内部,它是对Flash进行操作的接口。),这是它们的共同特点;但在NOR型Flash上运行代码不需要任何的软件支持,而在NAND型Flash上进行同样操作时,通常需要驱动程序,即内存技术驱动程序MTD。2023-07-26 23:35:331
NAND FLASH与SD卡有什么不同
这是一颗全新的IC尺寸6x8mm,LGA-8封装,容量从1Gbit到8Gbit。Q 9196 Q 509 Q 33 QNAND flash内核,走SD 协议,完美兼容TF卡,只要有CPU直接SD 接口,可以直接使用。相对于T卡的好处,贴片式T卡可以直接焊在在PCB上,增加了产品的稳定性,另外尺寸比TF卡小,大概只有TF卡的五分之一,节省一个卡槽。 157贴片式的形式,也减少了TF卡反复插拔造成接触不良的问题,也增强了可靠性,不容易因为产品的碰撞导致TF卡的脱落。 1081最重要的一点是,我们的贴片式T卡是用芯片级的封装技术,使用 的NAND是属于比较好的wafer,保证是good die。不会像TF卡,所使用的wafer参差不齐,这也是我们比较好的一个优势,贴片式TF使用的是SLC NAND,擦写次数能到达10万次。 5657郭先生2023-07-26 23:35:445
nandflash 一个block多大
觉得比较小2023-07-26 23:36:002
not supported NAND FLASH(Devid:eldo)是什么意思?
不支持NAND格式的flash (动画)2023-07-26 23:36:083
nand flash 都是串行?
是的,只有一根数据线,其它的都是寻址的地址线,串行干扰会小些2023-07-26 23:36:342
如何处理 nand flash 坏块
扔掉2023-07-26 23:36:412
有关NAND flash 的坏区定义与容量定义。
厂家所说的4G指的是4 000 000 000字节,是按1000进制计算的,而电脑是按照1024进制计算的,所以标称为4G的NAND Flash理论容量是4 000 000 000 / 1024 / 1024 / 1024 = 3.72529G。再扣掉Mp4自身的系统软件所占的空间和文件系统所占的空间,剩余3.54G可用空间是正常的。至于说你的Flash有坏区,大可不必担心。所有的Flash都有坏区,只要起始地址没坏,Flash就可以正常使用。存储区如果有损坏,是会被自行替换的,无需用户参与。至于其它容量的Flash,按照相同的算法,都可以算出相应的理论容量。2023-07-26 23:36:501
如何编写linux下nand flash驱动
【Linux下nand flash驱动编写步骤简介】1. 了解硬件的nand flash的各个参数和工作原理具体参考nand flash的datasheet,主要包括,自己nand flash的厂商,型号等。Nand flash的页大小,oob大小,块大小,位宽8bit还是16bit。工作原理,上面已经做了一定描述,不清楚的,可以参考datasheet,多看看,就会明白很多。2. 按照linux下驱动编写规范编写nand flash驱动,可以参考其他已经有的驱动,比如内核源码中已经有的drivers/mtd/nand/s3c2410.c就是个很好的例子。自己以其为模板,实现自己板子的nand flash驱动。其实主要工作就是,实现static struct platform_driver s3c2410_nand_driver = { .probe = s3c2410_nand_probe, .remove = s3c2410_nand_remove, .suspend = s3c24xx_nand_suspend, .resume = s3c24xx_nand_resume, .driver = { .name = "s3c2410-nand", .owner = THIS_MODULE, },};中的XXX_nand_probe函数XXX_nand_remove函数XXX_nand_enable_hwecc,如果支持硬件ecc的话。对nand flash的读写,这两个函数,实现了对nand的具体操作。【Linux下Nand Flash驱动编写简单步骤】软件和硬件知识,都已经了解的话,由于上层的linux的 mtd框架中,已经完全封装好了,对nand flash的write page,write oob等相关函数的实现,那么剩下的只是相对来说已经是很少量的,关于nand 驱动具体内部操作方面的工作:1.初始化先是在nand 芯片初始化的时候,对其XXX_nand_init_chip()给对应的芯片chip赋给对应的XXX_nand_read_buf和XXX_nand_write_buf等函数: chip->cmd_ctrl = XXX_nand_hwcontrol; chip->dev_ready = XXX_nand_devready; chip->read_buf = XXX_nand_read_buf; chip->write_buf = XXX_nand_write_buf;以实现后续的对nand芯片的操作。然后根据ecc类型,赋给对应的ecc的校验与纠错函数: chip->ecc.hwctl = XXX_nand_enable_hwecc; chip->ecc.calculate = XXX _nand_calculate_ecc;3. 实现上面提到的对应的各个函数,关于如何实现,参考一下其他nand驱动,就会理解很多了。4. 驱动测试,参考具体的 ldd3(Linux Device Driver version 3)的测试相关部分内容。说得很乱,希望对大家有些帮助。2023-07-26 23:37:061