精华内容
下载资源
问答
  • FLASH闪存

    千次阅读 2013-09-15 11:19:57
    FLASH闪存  闪存的英文名称是"Flash Memory",一般简称为"Flash",它属于内存器件的一种,是一种不挥发性( Non-Volatile )内存。闪存的物理特性与常见的内存有根本性的差异:目前各类 DDR 、 SDRAM 或者 RDRAM ...

    FLASH闪存

     闪存的英文名称是"Flash Memory",一般简称为"Flash",它属于内存器件的一种,是一种不挥发性( Non-Volatile )内存。闪存的物理特性与常见的内存有根本性的差异:目前各类 DDR 、 SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存;闪存在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础

     

    概述

    闪存是一种不挥发性( 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的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
    执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时, 设计师必须权衡以下的各项因素。
    ● NOR的读速度比NAND稍快一些。
    ● NAND的写入速度比NOR快很多。
    ● NAND的4ms擦除速度远比NOR的5s快。
    ● 大多数写入操作需要先进行擦除操作。
    ● NAND的擦除单元更小,相应的擦除电路更少。

    接口差别

    NOR flash带有SRAM接口,有足够的地址 引脚寻址,可以很容易地存取其内部的每一个字节。
    NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个 引脚用来传送控制、地址和数据信息。
    NAND读和写操作采用512 字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他 块设备

    容量和成本

    NAND flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
    NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于 数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。

    可靠性和耐用性

    采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。

    寿命(耐用性)

    在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等厂商所采用。

     

    编辑本段flash memory的工作原理

    发现者

    1957年,受雇于 索尼公司的江崎玲於奈(Leo Esaki,1940~)在改良高频晶体管2T7的过程中发现,当增加PN结两端的电压时电流反而减少,江崎玲於奈将这种反常的负电阻现象解释为隧道效应。此后,江崎利用这一效应制成了隧道二极管(也称 江崎二极管)。
    1960年,美裔 挪威籍科学家加埃沃(Ivan  Giaever,1929~)通过实验证明了在超导体隧道结中存在单电子隧道效应。在此之前的1956年出现的“库珀对”及BCS理论被公认为是对超导现象的完美解释,单电子隧道效应无疑是对超导理论的一个重要补充。
    1962年,年仅22岁的 英国剑桥大学实验物理学研究生 约瑟夫森(Brian David Josephson,1940~)预言,当两个超导体之间设置一个绝缘薄层构成SIS(Superconductor-Insulator-Superconductor)时,电子可以穿过绝缘体从一个超导体到达另一个超导体。 约瑟夫森的这一预言不久就为P.W.安德森和J.M.罗厄耳的实验观测所证实——电子对通过两块超导金属间的薄绝缘层(厚度约为10埃)时发生了隧道效应,于是称之为“ 约瑟夫森效应”。      宏观量子隧道效应确立了微电子器件进一步微型化的极限,当微电子器件进一步微型化时必须要考虑上述的量子效应。例如,在制造 半导体集成电路时,当电路的尺寸接近电子波长时,电子就通过隧道效应而穿透绝缘层,使器件无法正常工作。因此, 宏观量子隧道效应已成为微电子学、光电子学中的重要理论。

    应用

    闪存
    闪存的 存储单元为三端器件,与场效应管有相同的名称:源极、漏极和栅极。栅极与硅衬底之间有二氧化硅绝缘层,用来保护浮置栅极中的电荷不会泄漏。采用这种结构,使得 存储单元具有了电荷保持能力,就像是装进瓶子里的水,当你倒入水后,水位就一直保持在那里,直到你再次倒入或倒出,所以闪存具有记忆能力。
    与场效应管一样,闪存也是一种电压控制型器件。NAND型闪存的擦和写均是基于隧道效应,电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据)。而NOR型闪存擦除数据仍是基于隧道效应(电流从浮置栅极到硅基层),但在写入数据时则是采用热电子注入方式(电流从浮置栅极到源极)。
    场效应管工作原理 场效应晶体管(Field Effect Transistor缩写(FET))简称场效应管。一般的晶体管是由两种极性的载流子,即多数载流子和 反极性的少数载流子参与导电,因此称为 双极型晶体管,而FET仅是由多数载流子参与导电,它与双极型相反,也称为 单极型晶体管。它属于电压控制型半导体器件,具有输入电阻高(108~109Ω)、噪声小、功耗低、动态范围大、易于集成、没有二次击穿现象、安全工作区域宽等优点,现已成为 双极型晶体管和功率晶体管的强大竞争者。

     

    展开全文
  • Flash闪存是非易失性存储器,这是相对于SDRAM等存储器所说的。即存储器断电后,内部的数据仍然可以保存。Flash根据技术方式分为Nand、NorFlash和AG-ANDFlash,而升级。但是经过了十多年之后,仍然有相当多的硬件...
  • Flash闪存分类介绍

    2009-01-08 09:37:43
    Flash闪存分类介绍Flash闪存分类介绍
  • FlashGenius是一款FLASH闪存参数查询工具,可以快速查出FLASH芯片的制造商、产品类别、工作电压、存储容量、芯片版本、特征类型等。  软件绿色小巧,操作简单易用,是电子爱好者和数码维修人员身边的好助手。  ...
  • flash闪存的读写时序

    2009-12-15 10:58:41
    flash闪存的读写时序。。。。。。。。
  • 采用C51与插拔式FLASH闪存设计无纸记录仪 ATMEL公司推出的带有看门狗功能的单片机AT89C55WD带有20K的程序存储器,是8051系列中一款较为先进的产品,其看门狗功能可以大大提高产品的稳定性,大容量的内部程序...
  • FlashGenius是一款FLASH闪存参数查询工具,可以快速查出FLASH芯片的制造商、产品类别、工作电压、存储容量、芯片版本、特征类型等。 软件绿色小巧,操作简单易用,是电子爱好者和数码维修人员身边的好助手。 更新...
  • 文章目录固态硬盘SSD之Flash闪存的基本概念Flash闪存的类型NAND Flash的结构NAND Flash闪存的读写闪存转换层(FTL:Flash Translation Layer) 固态硬盘SSD之Flash闪存的基本概念 固态硬盘,又称固态驱动器,是用...

    固态硬盘SSD之Flash闪存的基本概念

    固态硬盘,又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。其下的存储介质大致可分为以下几类:

    1. 闪存(FLASH芯片)
      数据保护不受电源控制,能适应于各种环境,适合于个人用户使用。寿命较长,根据不同的闪存介质会有所不同。可靠性也很高,高品质的家用固态硬盘可轻松达到普通家用机械硬盘十分之一的故障率。
    2. DRAM
      动态随机存取存储器(Dynamic Random Access Memory,DRAM)是一种半导体存储器,主要的作用原理是利用电容内存储电荷的多寡来代表一个二进制比特(bit)是1还是0,需要周期性地充电来定时刷新。
    3. 3d XPoint
      3D XPoint的工作原理与NAND存在着根本性的不同。NAND通过绝缘浮置栅极捕获不同数量的电子以实现bit值定义,而3D XPoint则是一项以电阻为基础的存储技术成果,其通过改变单元电阻水平来区分0与1。

    关于DRAM和3d XPoint以后有机会再聊,这一篇博客主要讲一下目前最广泛应用的——基于Flash闪存的SSD。

    Flash闪存的类型

    Flash闪存可分为两类:NOR闪存和NAND闪存。

    NOR闪存的访问模式为线性随机访问,存储能力比较低,擦写次数约为10~100万次,写入和擦除的速度较慢,比较适合用来进行程序的存储;NAND闪存的访问模式为以页的方式进行访问,单元存储密度高,擦写次数约为1~10万次,写入和擦除速度很快,比较适合存储大量的数据。这两者也存在着一些共同点,比如NOR闪存和NAND闪存的写代价和擦除代价都要明显高于读代价,都需要进行“写前擦除”操作,都存在擦除次数的限制等。
    目前,几乎所有的BIOS和一些机顶盒上都是使用NOR Flash,它的大小一般在1MB到32MB之间,价格昂贵,而NAND Flash则广泛应用在各种存储卡,U盘,SSD,eMMC等等大容量设备中,现有的大部分研究很多都基于NAND Flash。

    NAND闪存包含两种类型:SLC(Single-Level Cell)和MLC(Multi-Level Cell)。MLC比SLC的存储密度更高,由于MLC比SLC价格更低,容量更高,因此,它已经被用于很多低端的消费类电子产品中。但是,SLC结构简单,在写入数据时电压变化的区间小,所以寿命较长,传统的SLC NAND闪存可以经受10万次的读写。由于SLC比MLC具有更高的速度和寿命(寿命通常是MLC的10倍[ChenKZ09]),因此,SLC大多用于对性能和可靠性要求较高的工业化应用中。

    NAND Flash的结构

    闪存芯片有多个层次组成,粒度由小到大分别是:页(page)——块(block)——分组(plane)——晶圆(die)——芯片(chip)

    chip:芯片层是最外层结构,通常,芯片层拥有一套完整的外围电路,外部信号线。在很多时候,闪存厂商为了节约成本和空间,将多个芯片在物理上叠加起来,叠加在一起的每个芯片有一个独立的片选信号和一个独立的工作状态信号线,外部看来这些芯片就是一个整体,被称之为颗粒(package)。

    die:晶圆层是闪存的第二层,每个晶圆有一个内部的工作状态信号线,与芯片层的工作状态信号线不同的是,用户无法看到内部的工作状态信号线,它存在于芯片内部,用于查询每个晶圆的当前状态。

    plane:分组层是闪存中的关键层次,为了提高闪存的读写速度,在每个分组中设置了一个或者多个寄存器,数据被暂存在这个寄存器中,通过I/O信号线逐步传入或传出。

    block:块层是闪存中擦除操作的基本单元,通常,一个分组中有固定数量的物理块。

    page:页层是闪存中读写操作的基本单元,通常,一个物理块内有固定数量的物理页。

    NAND Flash闪存的读写

    1. NAND Flash以页的方式进行访问,每个闪存页的状态可以是以下三种状态中的一种:(1)有效;(2)无效;(3)自由/擦除。当没有数据被写入一个页时,这个页就处于“擦除”状态,这时,页中的所有位都是1。一个写操作只能针对处于擦除状态的页,然后把这个页的状态改变为“有效”。异地更新会导致一些页面不再有效,它们被称为“无效页”。

    2. 闪存在最初始阶段,所有位都被设置成1。读操作:返回被读取目标页的所有位;写操作:把目标页中选中的一些位从1变成0;擦除操作:把目标块的所有位都设置为1。

    3. 页面在块内部会被顺序写入,即当一个块中的第i页被写入后,块中的第j页(1<j<i)就不能被写入,直到这个块被擦除。

    4. 闪存不支持对原来数据的直接覆盖,为了对存储在闪存中的现有数据项进行更新,必须在写入数据之前执行一个耗时的擦除操作,然后在这个擦除过的页面上写入新数据,擦除操作的平均延迟是1500微秒,比写操作慢得多。闪存的这个特性,严重制约了写操作的性能。为了避免每次更新操作都带来代价高昂的擦除操作,闪存一般采用“异地更新”的方式,即在更新数据时,把更新操作引导到其他空闲页执行,原来的旧数据所在的页可以暂时不擦除,只要简单设置为“无效”即可,只需要等到垃圾回收的时候才统一执行擦除操作。

    5. DRAM和磁盘都具有读写操作对称性,即读操作和写操作的时间开销都相同,而闪存则表现出了读写操作的不对称性,写操作的时间开销要比读操作高一个数量级。而且闪存中存在耗时的擦除操作,擦除操作的时间开销比读操作开销高两个数量级,而DRAM和磁盘中则不存在擦除操作。

    因为上述的这些读写特性,所以SSD必须在设备内部提供一些机制来保证硬盘能高效进行读写,这就有了闪存文件系统和闪存转换层(FTL:Flash Translation Layer)。

    闪存转换层(FTL:Flash Translation Layer)

    闪存转换层:Flash Translation Layer,简称FTL,通过一个中间层把闪存设备模拟成一个块设备,具有广泛的应用范围,代表产品有各种FTL机制,比如BAST、LAST

    FTL的基本功能包括地址映射、垃圾回收、磨损均衡和断电恢复等。FTL位于文件系统与闪存之间,为文件系统提供了虚拟的磁盘,文件系统可以像使用磁盘一样来使用闪存。

    FTL扮演的一个主要角色就是提供LBA(逻辑块地址)到PBA(物理块地址)的映射,这个功能是由FTL映射表来实现的。

    1. 在任何时间点,闪存的擦除块往往会同时包含有效页和无效页。如果一个擦除块包含了有效页,那么,执行擦除操作可以有两种选择:(1)把擦除块b中的有效页首先拷贝到内存中,对该块b执行擦除操作,然后再把内存中的有效页回写到已经擦除过的这个块b中;(2)把擦除块b中的有效页直接拷贝到其他具有空闲页的块中,然后对块b执行擦除操作。

    2. 典型的磨损均衡策略主要包括:(1)基于阈值的控制方法:当块之间的擦除次数差距超过事先设定的阈值时,就启动回收过程,收回擦除次数最少的闪存块,从而实现更好的磨损均衡,这种做法的代价是,可能会在一定程度上降低垃圾回收的效率;(2)移动数据页的方法:在各擦除块之间周期性地移动数据页,避免一些具有较低更新频率的块的擦除次数过低,从而使得不同块之间具有比较均衡的擦除次数;(3)基于双队列的损耗均匀控制方法:当某个块的擦除次数过多时,就把冷数据(很少被访问的数据)存储在该块中,由于冷数据的访问频率很低,因此,就可以降低该块在未来一段时间内的擦除频率。

    3. 固态盘中通常都会配置少量易失的SRAM,用来存储地址映射表,加快逻辑地址到物理地址的转换过程,提高请求响应速度。但是,当发生断电的时候,SRAM中的信息会立即丢失。FTL必须设计相应的断电恢复机制。

    展开全文
  • STM32F4——FLASH闪存编程原理

    千次阅读 2015-10-14 16:56:32
     首先是对FLASH闪存的一个基本了解和认识。FLASH闪存分为多个模块。其中有:主存储器、系统存储器、OTP区域、选项字节。现在主要认识的是有关主存储器的相关结构,主存储器分为了多个扇区,每个扇区都有相关字节的...

     一、简介:

        首先是对FLASH闪存的一个基本了解和认识。FLASH闪存分为多个模块。其中有:主存储器、系统存储器、OTP区域、选项字节。现在主要认识的是有关主存储器的相关结构,主存储器分为了多个扇区,每个扇区都有相关字节的存储区域,通过扇区的方式来管理内存可以方便数据的存储。

    二、有关FLASH闪存的操作。

        1、锁定和解锁操作:

        为了对FLASH闪存数据做好一定的防护工作,需要在不必要操作闪存数据时锁定闪存,同时在需要操作闪存数据时执行解锁操作,相关库函数;void FLASH_Unlock(void)和void FLASH_Lock(void);

        2、写操作:

        根据写入的数据长度的不同可以分为字节、半字、字、双字写入。都分别提供了相应的函数。有关FLASH的写入操作下边还会做相关介绍。

        3、擦除操作:

        由于在向FLASH内存入数据之前先要保证FLASH中的数据时被擦除过的,所以在写入操作之前需要进行擦除操作。擦除可以整个扇区的擦除也可以做整片的擦除。

        4、读操作。

        对于读可以直接通过语句return *(vu32*)faddr来返回地址的数据值。

    三、对FLASH运用的相关代码分析。

        1、写操作:

    void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite)	
    { 
      FLASH_Status status = FLASH_COMPLETE;
    	u32 addrx=0;
    	u32 endaddr=0;	
      if(WriteAddr<STM32_FLASH_BASE||WriteAddr%4)return;	//非法地址
    	FLASH_Unlock();					//解锁 
      FLASH_DataCacheCmd(DISABLE);//FLASH擦除期间,必须禁止数据缓存
     		
    	addrx=WriteAddr;				//写入的起始地址
    	endaddr=WriteAddr+NumToWrite*4;	//写入的结束地址
    	if(addrx<0X1FFF0000)			//只有主存储区,才需要执行擦除操作!!
    	{
    		while(addrx<endaddr)		//扫清一切障碍.(对非FFFFFFFF的地方,先擦除)
    		{
    			if(STMFLASH_ReadWord(addrx)!=0XFFFFFFFF)//有非0XFFFFFFFF的地方,要擦除这个扇区
    			{   
    				status=FLASH_EraseSector(STMFLASH_GetFlashSector(addrx),VoltageRange_3);//VCC=2.7~3.6V之间!!
    				if(status!=FLASH_COMPLETE)break;	//发生错误了
    			}else addrx+=4;
    		} 
    	}
    	if(status==FLASH_COMPLETE)
    	{
    		while(WriteAddr<endaddr)//写数据
    		{
    			if(FLASH_ProgramWord(WriteAddr,*pBuffer)!=FLASH_COMPLETE)//写入数据
    			{ 
    				break;	//写入异常
    			}
    			WriteAddr+=4;
    			pBuffer++;
    		} 
    	}
      FLASH_DataCacheCmd(ENABLE);	//FLASH擦除结束,开启数据缓存
    	FLASH_Lock();//上锁
    } 

        对于写操作需要说明的是:由于数据写入过程中数据要写入的扇区必须是整个扇区都是被擦除的,所以有必要在擦除操作之前作出相应的判断,遍历扇区的地址是否是被全部擦除的,如果不是就需要对扇区做擦除操作。而且在写的前后分别做解锁和上锁操作。

        2、读操作:

    //读取指定地址的半字(16位数据) 
    u32 STMFLASH_ReadWord(u32 faddr)
    {
    	return *(vu32*)faddr; 
    } 
    
    //从指定地址开始读出指定长度的数据
    void STMFLASH_Read(u32 ReadAddr,u32 *pBuffer,u32 NumToRead)   	
    {
    	u32 i;
    	for(i=0;i<NumToRead;i++)
    	{
    		pBuffer[i]=STMFLASH_ReadWord(ReadAddr);//读取4个字节.
    		ReadAddr+=4;//偏移4个字节.	
    	}
    }

     

    四、总结:

        对于FLASH的学习只是做了一个初步的认识,可以对其做一些基本的操作和运用,其中还有很大一部分没有做相关认识,需要慢慢积累。这一段时间的学习总体感觉是:感觉学习过程是有很多的困难,但是还是在受着一个方向的吸引和强烈的好奇心,智能设备的运作和物联网相关技术的应用和操作,下边是一个了解到的一个人设计的一些有关家庭设备,虽然有些简易,但是却感觉非常有意思!!还有很多东西需要去学习和慢慢积累,呵呵.....

        视频演示:http://v.youku.com/v_show/id_XNzI2OTQyMTk2.html

    
    展开全文
  • FLASH闪存参数查询
  • 什么是FLASH闪存文件系统? 在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2
    FLASH闪存文件系统研究
    ,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
    什么是FLASH闪存文件系统?

    在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

    闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

    闪存文件系统介绍

    • JFFS2 : Journaling Flash File System version 2

    (David Woodhouse)

    – Has been integrated in Linux kernel since 2001.

    – Commonly used for low volume flash devices.

    – Compression is supported.

    • YAFFS2 : Yet Another Flash File System version 2

    (Charles Manning)

    – YAFFS is the first file system designed specifically for NAND (since 2001).

    – Version 2 supports 2KB large page NAND (since 2005).

    – Compression is not supported.

    • LogFS : Log Flash File System

    (Jörn Engel)

    – Mounting time is short (since 2005)

    – Under development (Needs more testing on large devices)

    – User data is not compressed, while meta data is compressed.

    (Jörn said that user data is also compressed in ELC2009, but we could not see it in our

    testing. We used the default settings.)

    • UBIFS : Unsorted Block Image File System

    (Artem Bityutskiy, Adrian Hunter)

    – Mainlined in 2.6.27 in Oct 2008.

    – Works on top of UBI volumes.

    – Compression is supported.

    闪存设备跟碟盘存储设备,在硬件上有不同的特性:

    抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

    耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

    随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

    设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

    最早的闪存文件系统之一,是微软所研发的 FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

    在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了 FlashFX与 FlashFX Pro,作为商业产品。

    在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

    本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势和不足分析》
    ,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
    什么是FLASH闪存文件系统?

    在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

    闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

    闪存文件系统介绍

    • JFFS2 : Journaling Flash File System version 2

    (David Woodhouse)

    – Has been integrated in Linux kernel since 2001.

    – Commonly used for low volume flash devices.

    – Compression is supported.

    • YAFFS2 : Yet Another Flash File System version 2

    (Charles Manning)

    – YAFFS is the first file system designed specifically for NAND (since 2001).

    – Version 2 supports 2KB large page NAND (since 2005).

    – Compression is not supported.

    • LogFS : Log Flash File System

    (Jörn Engel)

    – Mounting time is short (since 2005)

    – Under development (Needs more testing on large devices)

    – User data is not compressed, while meta data is compressed.

    (Jörn said that user data is also compressed in ELC2009, but we could not see it in our

    testing. We used the default settings.)

    • UBIFS : Unsorted Block Image File System

    (Artem Bityutskiy, Adrian Hunter)

    – Mainlined in 2.6.27 in Oct 2008.

    – Works on top of UBI volumes.

    – Compression is supported.

    闪存设备跟碟盘存储设备,在硬件上有不同的特性:

    抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

    耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

    随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

    设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

    最早的闪存文件系统之一,是微软所研发的 FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

    在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了 FlashFX与 FlashFX Pro,作为商业产品。

    在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

    本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势和不足分析》
    ,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
    什么是FLASH闪存文件系统?

    在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

    闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

    闪存文件系统介绍

    • JFFS2 : Journaling Flash File System version 2

    (David Woodhouse)

    – Has been integrated in Linux kernel since 2001.

    – Commonly used for low volume flash devices.

    – Compression is supported.

    • YAFFS2 : Yet Another Flash File System version 2

    (Charles Manning)

    – YAFFS is the first file system designed specifically for NAND (since 2001).

    – Version 2 supports 2KB large page NAND (since 2005).

    – Compression is not supported.

    • LogFS : Log Flash File System

    (Jörn Engel)

    – Mounting time is short (since 2005)

    – Under development (Needs more testing on large devices)

    – User data is not compressed, while meta data is compressed.

    (Jörn said that user data is also compressed in ELC2009, but we could not see it in our

    testing. We used the default settings.)

    • UBIFS : Unsorted Block Image File System

    (Artem Bityutskiy, Adrian Hunter)

    – Mainlined in 2.6.27 in Oct 2008.

    – Works on top of UBI volumes.

    – Compression is supported.

    闪存设备跟碟盘存储设备,在硬件上有不同的特性:

    抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

    耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

    随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

    设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

    最早的闪存文件系统之一,是微软所研发的 FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。

    在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了 FlashFX与 FlashFX Pro,作为商业产品。

    在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

    本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势和不足分析》
    ,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
    什么是FLASH闪存文件系统?
    ,转自中国存储网,原文链接:http://www.chinastor.com/a/jishu/FS/0112110212015.html
    什么是FLASH闪存文件系统?

    在嵌入式领域,FLASH是一种常用的存储介质,由于其特殊的硬件结构,所以普通的文件系统如ext2,ext3等都不适合在其上使用,于是就出现了专门针对FLASH的文件系统,比较常用的有jffs2,yaffs2,logfs,ubifs。

    闪存文件系统(Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。

    闪存文件系统介绍

    • JFFS2 : Journaling Flash File System version 2

    (David Woodhouse)

    – Has been integrated in Linux kernel since 2001.

    – Commonly used for low volume flash devices.

    – Compression is supported.

    • YAFFS2 : Yet Another Flash File System version 2

    (Charles Manning)

    – YAFFS is the first file system designed specifically for NAND (since 2001).

    – Version 2 supports 2KB large page NAND (since 2005).

    – Compression is not supported.

    • LogFS : Log Flash File System

    (Jörn Engel)

    – Mounting time is short (since 2005)

    – Under development (Needs more testing on largedevices)

    – User data is not compressed, while meta data is compressed.

    (Jörn said that user data is also compressed in ELC2009, but we could not seeit in our

    testing. We used the default settings.)

    • UBIFS : Unsorted Block Image File System

    (Artem Bityutskiy, Adrian Hunter)

    – Mainlined in 2.6.27 in Oct 2008.

    – Works on top of UBI volumes.

    – Compression is supported.

    闪存设备跟碟盘存储设备,在硬件上有不同的特性:

    抺除区块(Erasing blocks):闪存的区块(block)在写入之前,要先做抹除(erase)的动作。抺除区块的时间可能会很长,因此最好利用系统闲置的时间来进行抹除。

    耗损平均技术(Wear leveling):闪存的区块有抺写次数的限制,重复抺除、写入同一个单一区块将会造成读取速度变慢,甚至损坏而无法使用,因此闪存设备的驱动程序需要将抺写的区块分散,以延长闪存寿命。用于闪存的文件系统,也需要设计出平均写入各区块的功能。

    随机存取(Random access):一般的硬盘,读写数据时,需要旋转磁盘,以找到存放的扇区,因此,一般使用于磁盘的文件系统,会作优化,以避免搜索磁盘的作用。但是闪存可以随机存取,没有查找延迟时间,因此不需要这个优化。

    设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。

    最早的闪存文件系统之一,是微软所研发的 FFS2(FlashFile System 2),在1990年代,它被应用在MS-DOS上。

    在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创 造了 FlashFX与 FlashFX Pro,作为商业产品。

    在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。

    MTD全称是Memory Technology Device,内存技术设备. 实际上是一个虚拟设备驱动层,类似Virtual File System。它提供标准API给那些操作Raw Flash的device driver。那么Flash device和普通的Block device的区别是什么呢?
        普通的BLD只有两种操作:read和write
        而Flash Device有三种操作:read,write和erase,另外,还需要一种wear leveling算法来做损耗均衡
    这里要重点指出的是:
    SD/MMC卡、CF(Compact Flash)卡、USB Flash等并不是MTD设备,因为这些设备中已经有一个内置的Flash Translation Layer,这个layer处理erase、wear leveling事情了(这个TL应该是固件中支持的)。所以这些设备直接当做普通的Block Device使用


    本文是对FLASH闪存文件系统的一个概括性介绍,让大家了解什么是闪存文件系统,在哪些领域应用,接下来中国存储网的编辑会分别介绍这些闪存文件系统(jffs2,yaffs2,logfs,ubifs)的架构及工作原理。《UBIFS闪存文件系统详解篇》《JFFS2文件系统内部工作机制详解及优势 和不足分析》


    展开全文
  •  作为一种高科技的非易失性存储设备,FLASH闪存首先在数码相机、PDA、移动电话等数字产品当中得到了应用,随着工艺的进步和价格的下降,逐步向其他应用领域扩展,其容量大、功耗低、速度快、不易受损等优点正受到...
  • 电子政务-基于集成flash闪存的电子钥匙的单机安全检查系统.zip
  • STM32Flash闪存存储参考,支持多种类型操作(double,float等),已封装,便于移植
  • FlashGenius是一款FLASH闪存参数查询工具,可以快速查出FLASH芯片的制造商、产品类别、工作电压、存储容量、芯片版本、封装特征等。 软件绿色小巧,操作简单易用,是电子爱好者和数码维修人员身边的好助手。 更新...
  • 详细分析Flash闪存设备的接口设计方法,并针对Flash接口特点,提出Linux环境下NorFlash和NandFlash的驱动开发流程,给出详细的代码分析。
  • FlashGenius是一款FLASH闪存参数查询工具,可以快速查出FLASH芯片的制造商、产品类别、工作电压、存储容量、芯片版本、特征类型等。 软件绿色小巧,操作简单易用,是电子爱好者和数码维修人员身边的好助手。
  • 转载:[收藏] Flash闪存颗粒和工艺知识深度解析 Wafer即晶圆,是半导体组件“晶片”或“芯片”的基材,从沙子里面高温拉伸生长出来的高纯度硅晶体柱(Crystal Ingot)上切下来的圆形薄片称为“晶圆”。采用精密...
  • 对于许多消费类音视频产品而言,NAND Flash是一种比硬盘驱动器更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,Nand正被证明极具吸引力。  ...
  • Flash闪存的使用 杜洋工作室 www.DoYoung.net 洋桃电子 www.DoYoung.net/YT 在此声明一下所有代码均为 杜洋工作室 的不允许复制,转发等,本人只是在此程序上进行理解和注释。 上一次的笔记是在洋桃开发板上...
  • PC3000-FLASH 闪存修复工具 产品特点 支持U?盘SD/MS/xD/MMC/CF?存储卡录音笔iPhone以及SSD?固态硬盘等多种存储介质 配备PC?Flash?读卡器直接读取存储介质的存储芯片中的数据并重组虚拟控制器对其中的数据进行恢复 ...
  • 关键词 :闪存;接口;WISHBONE; FPGA引言 随着半导体工艺技术的发展,IC设计者已能将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,即SoC芯片。对片上系统(SoC)数据记录需要低...
  • 随着半导体工艺技术的发展,IC设计者已能将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,即SoC芯片。对片上系统(SoC)数据记录需要低功耗、大容量、可快速重复擦写的存储器。
  • flash C程序例子, flash 读写时序
  • Flash闪存分类介绍:SLC/MLC/黑片

    千次阅读 2008-08-31 00:53:00
    Flash闪存分类介绍:SLC/MLC/黑片1 Flash闪存是非易失性存储器,这是相对于SDRAM等存储器所说的。即存储器断电后,内部的数据仍然可以保存。Flash根据技术方式分为Nand 、Nor Flash和AG-AND Flash,而U盘和MP3中最...
  • FLASH 闪存的分类与介绍

    千次阅读 2017-08-10 19:40:41
    什么是闪存? 我们常说的闪存其实只是一个笼统的称呼,准确地说它是非易失随机访问存储器(NVRAM)的俗称,特点是断电后数据不消失,因此可以作为外部存储器使用。而所谓的内存是挥发性存储器,分为DRAM和SRAM两大...
  • FlashGenius是一款FLASH闪存参数查询工具,可以快速查出FLASH芯片的制造商、产品类别、工作电压、存储容量、芯片版本、封装特征等。 软件绿色小巧,操作简单易用,是电子爱好者和数码维修人员身边的好助手。 ...
  • 关键词 :闪存;接口;WISHBONE; FPGA 引言---随着半导体工艺技术的发展,IC设计者已能将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,即SoC芯片。对片上系统(SoC)数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,730
精华内容 7,892
关键字:

flash闪存