[发明专利]一种安全烧写闪存的方法及数据写入方法无效
申请号: | 200810093230.1 | 申请日: | 2008-04-23 |
公开(公告)号: | CN101567217A | 公开(公告)日: | 2009-10-28 |
发明(设计)人: | 孟祥飞 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G11C16/10 | 分类号: | G11C16/10;G11C29/24 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙 洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 安全 闪存 方法 数据 写入 | ||
技术领域
本发明涉及一种内存烧写方法,尤其涉及一种安全烧写闪存的方法及数据写入方法。
背景技术
Flash(闪存)是嵌入式系统中常用的存储设备,一般用来保存掉电不丢失的数据,例如:bootloader(引导加载程序)、kernel image(内核镜像)、file system(文件系统)等。一般的NAND Flash(与非闪存)在其最前面的启动块中不会有坏块的,所以在此启动块空间可以保存一些不能发生错误的数据;而其余的部分,有可能会产生一些坏块,这跟生产厂家的生产质量有关。
烧写NAND Flash的方法很多,市场上有很多种NAND Flash烧写器。图1所示的烧写方式,是指定一个地址,将数据整个烧写进去,并不考虑Flash内部是否有坏块的情况。如果Flash内部有坏块,将会导致写入的数据不完整,如果写入的是kernel image,那么在系统启动时,系统就无法正常运行。
如图2所示,另外一种烧写方法是用JTAG(Joint Test Action Group,联合测试行动组)口烧写Flash的时候将重要的数据(例如kernel image)分别烧录在两个地址下,相当于做了一个备份,如果一块出了问题,则从备份中的对应的块中读取数据。
上述方法中,很可能出现将数据保存在Flash的坏块上的情况,如果保存的是操作系统镜像,则会导致整个系统不能运行。
发明内容
本发明要解决的技术问题是提供一种安全烧写闪存的方法,保证数据都写入闪存中完好的数据块。
为了解决上述问题,本发明提供了一种安全烧写闪存的方法,包括:将待写入数据写入闪存中时,每次将数据写入闪存的一存储单元后,判断此存储单元是否无坏块,如果无坏块,确定此存储单元为有效存储单元,否则,跳过此存储单元在下一个存储单元重新写入数据;将标识闪存中有效存储单元位置的信息做为索引,并将所述索引写入闪存的启动块中。
进一步地,将数据写入所述存储单元后,根据系统设定规则计算写入此存储单元的数据所对应的冗余校验数据,并将写入此存储单元的数据读出,根据所述规则计算读出数据对应的冗余校验数据,判断两次计算得到的冗余数据是否相同,如果相同,确定此存储单元无坏块,否则,确定此存储单元有坏块。
进一步地,将数据写入闪存后,系统启动时或启动后,根据所述索引中有效存储单元位置的信息将各个有效存储单元中的数据读出,并写入系统内存;所述有效存储单元位置的信息是指有效存储单元的首地址。
进一步地,所述闪存为与非闪存。
进一步地,在与非闪存中写入数据时,每页分两次写入:每写入256字节的数据后,根据此256字节的数据计算得到8字节的冗余校验数据,将写入的256字节数据读出,计算读出的256字节数据对应的8字节冗余校验数据,判断两次计算得到的冗余检验数据是否相同;如果每页分两次写入时分别判断其写入和读出的数据对应的冗余检验数据均相同,确定此页为有效页,否则,跳过此页,在下一页重新写该页的数据。
进一步地,所述待写入数据为内核镜像文件数据、引导程序可执行文件数据或文件系统数据。
进一步地,在与非闪存中写入数据时,通过联合测试行动组接口或串口或通用串行总线接口将待写入数据写入到同步动态随机存取存储器中,再从所述同步动态随机存取存储器中读出写入与非闪存中。
本发明还提供了一种数据写入方法,包括:将待写入数据写入闪存中时,每次将数据写入闪存的一存储单元后,判断此存储单元是否无坏块,如果无坏块,确定此存储单元为有效存储单元,否则,跳过此存储单元在下一个存储单元重新写入数据。
进一步地,将数据写入所述存储单元后,根据系统设定规则计算写入此存储单元的数据所对应的冗余校验数据,并将写入此存储单元的数据读出,根据所述规则计算读出数据对应的冗余校验数据,判断两次计算得到的冗余数据是否相同,如果相同,确定此存储单元无坏块,否则,确定此存储单元有坏块。
进一步地,在闪存中写入数据时,每页分两次写入:每写入256字节的数据后,根据此256字节的数据计算得到8字节的冗余校验数据,将写入的256字节数据读出,计算读出的256字节数据对应的8字节冗余校验数据,判断两次计算得到的冗余检验数据是否相同;如果每页分两次写入时判断其写入和读出的数据对应的冗余检验数据均相同,确定此页为有效页,否则,跳过此页,在下一页重新写该页的数据。
与其他烧写Flash的方法相比,本发明的方法可以保证数据都写在完好的Flash数据块上,保证了数据不会因为Flash的质量问题而丢失。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810093230.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置