发明内容
有鉴于此,本发明的目的在于提出一种闪存的数据引导方法和装置以及设备,能够实现无需进行任何搜索,就获得写入闪存的所有数据结构,方便快捷,同时又可避免量产时写入数据结构的过程碰到坏页而导致量产失败,从而保障闪存的正常量产。
根据本发明的一个方面,提供一种闪存的数据引导方法,包括:
在闪存的主控外围设置存储器件;
在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果;
将所述扫描得到的扫描结果整理成数据结构;
将所述整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置;
将所述采用的链表的结构方式对应的链表第一级的地址记录下来;
将所述记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入所述设置的存储器件的指定位置;
在闪存上电之后,控制闪存的主控从所述设置的存储器件的指定位置读取数据;其中,所述读取的数据是所述记录下来的链表第一级的地址的完整读命令序列;
将所述读取的数据作为命令序列发送给闪存;
使闪存的主控根据所述作为命令序列发送给闪存的数据,从而可以读取对应所述闪存地址存储的数据即获取所述闪存地址存储的第一级数据表。
其中,所述在闪存的主控外围设置存储器件,包括:
在设计闪存的主控时,在闪存的主控外围设置存储器件。
其中,所述将所述记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入所述设置的存储器件的指定位置,包括:
将所述记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入所述设置的存储器件的指定位置。
其中,在所述使闪存的主控根据所述作为命令序列发送给闪存的数据,从而可以读取对应所述闪存地址存储的数据即获取所述闪存地址存储的第一级数据表之后,还包括:
在所述获取的所述写入所述设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联所述所有数据结构的正确数据结构数据重新写入所述设置的存储器件。
根据本发明的另一个方面,提供一种闪存的数据引导装置,包括:
设置模块、扫描模块、整理模块、写进模块、记录模块、写入模块、控制模块、发送模块和获取模块;
所述设置模块,用于在闪存的主控外围设置存储器件;
所述扫描模块,用于在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果;
所述整理模块,用于将所述扫描得到的扫描结果整理成数据结构;
所述写进模块,用于将所述整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置;
所述记录模块,用于将所述采用的链表的结构方式对应的链表第一级的地址记录下来;
所述写入模块,用于将所述记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入所述设置的存储器件的指定位置;
所述控制模块,用于在闪存上电之后,控制闪存的主控从所述设置的存储器件的指定位置读取数据;其中,所述读取的数据是所述记录下来的链表第一级的地址的完整读命令序列;
所述发送模块,用于将所述读取的数据作为命令序列发送给闪存;
所述获取模块,用于使闪存的主控根据所述作为命令序列发送给闪存的数据,从而可以读取对应所述闪存地址存储的数据即获取所述闪存地址存储的第一级数据表。
其中,所述设置模块,具体用于:
在设计闪存的主控时,在闪存的主控外围设置存储器件。
其中,所述写入模块,具体用于:
将所述记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入所述设置的存储器件的指定位置。
其中,所述闪存的数据引导装置,还包括:
重新写入模块,用于在所述获取的所述写入所述设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联所述所有数据结构的正确数据结构数据重新写入所述设置的存储器件。
根据本发明的又一个方面,提供一种闪存的数据引导设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一项所述的闪存的数据引导方法。
根据本发明的再一个方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的闪存的数据引导方法。
可以发现,以上方案,可以在闪存的主控外围设置存储器件,和在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果,和将该扫描得到的扫描结果整理成数据结构,和将该整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置,和将该采用的链表的结构方式对应的链表第一级的地址记录下来,和将该记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入该设置的存储器件的指定位置,和在闪存上电之后,控制闪存的主控从该设置的存储器件的指定位置读取数据,其中,该读取的数据是该记录下来的链表第一级的地址的完整读命令序列,和将该读取的数据作为命令序列发送给闪存,以及使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表,能够实现无需进行任何搜索,就可以获得写入闪存的所有数据结构,方便快捷,同时又可避免量产时写入数据结构的过程碰到坏页而导致量产失败,从而保障闪存的正常量产。
进一步的,以上方案,可以在设计闪存的主控时,在闪存的主控外围设置存储器件,这样的好处是可以降低闪存的生产成本,并减少外围电路和输入/输出的使用。
进一步的,以上方案,可以将该记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入该设置的存储器件的指定位置,这样的好处是该以数据的方式写入到该设置的存储器件的指定位置的完整读命令序列是闪存的关键数据,能够提高闪存的可靠性,一定程度上提高了闪存的主控对于后续更新的闪存产品的支持能力。
进一步的,以上方案,可以在该获取的该写入该设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联该所有数据结构的正确数据结构数据重新写入该设置的存储器件,这样的好处是能够避免写入闪存的所有数据结构对应的数据出现坏页的情况或者坏块的情况,保障闪存的正常量产。
具体实施方式
下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种闪存的数据引导方法,能够实现无需进行任何搜索,就可以获得写入闪存的所有数据结构,方便快捷,同时又可避免量产时写入数据结构的过程碰到坏页而导致量产失败,从而保障闪存的正常量产。
请参见图1,图1是本发明闪存的数据引导方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:
S101:在闪存的主控外围设置存储器件。
其中,该在闪存的主控外围设置存储器件,可以包括:
在设计闪存的主控时,在闪存的主控外围设置存储器件,这样的好处是可以降低闪存的生产成本,并减少外围电路和IO(Input/Output,输入/输出)的使用。
在本实施例中,该设置的存储器件可以是OTP(One Time Programable,一次性可编程)存储器,也可以是通用串行总线闪存盘,还可以是安全数码卡,又可以是EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器),本发明不加以限定。
S102:在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果。
S103:将该扫描得到的扫描结果整理成数据结构。
S104:将该整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置。
S105:将该采用的链表的结构方式对应的链表第一级的地址记录下来。
S106:将该记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入该设置的存储器件的指定位置。
其中,该将该记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入该设置的存储器件的指定位置,可以包括:将该记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入该设置的存储器件的指定位置,这样的好处是该以数据的方式写入到该设置的存储器件的指定位置的完整读命令序列是闪存的关键数据,能够提高闪存的可靠性,一定程度上提高了闪存的主控对于后续更新的闪存产品的支持能力。
S107:在闪存上电之后,控制闪存的主控从该设置的存储器件的指定位置读取数据;其中,该读取的数据是该记录下来的链表第一级的地址的完整读命令序列。
S108:将该读取的数据作为命令序列发送给闪存。
S109:使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表。
其中,在该使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表之后,还可以包括:在该获取的该写入该设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联该所有数据结构的正确数据结构数据重新写入该设置的存储器件,这样的好处是能够避免写入闪存的所有数据结构对应的数据出现坏页的情况或者坏块的情况,保障闪存的正常量产。
可以发现,在本实施例中,可以在闪存的主控外围设置存储器件,和在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果,和将该扫描得到的扫描结果整理成数据结构,和将该整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置,和将该采用的链表的结构方式对应的链表第一级的地址记录下来,和将该记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入该设置的存储器件的指定位置,和在闪存上电之后,控制闪存的主控从该设置的存储器件的指定位置读取数据,其中,该读取的数据是该记录下来的链表第一级的地址的完整读命令序列,和将该读取的数据作为命令序列发送给闪存,以及使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表,能够实现无需进行任何搜索,就可以获得写入闪存的所有数据结构,方便快捷,同时又可避免量产时写入数据结构的过程碰到坏页而导致量产失败,从而保障闪存的正常量产。
进一步的,在本实施例中,可以在设计闪存的主控时,在闪存的主控外围设置存储器件,这样的好处是可以降低闪存的生产成本,并减少外围电路和输入/输出的使用。
进一步的,在本实施例中,可以将该记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入该设置的存储器件的指定位置,这样的好处是该以数据的方式写入到该设置的存储器件的指定位置的完整读命令序列是闪存的关键数据,能够提高闪存的可靠性,一定程度上提高了闪存的主控对于后续更新的闪存产品的支持能力。
请参见图2,图2是本发明闪存的数据引导方法另一实施例的流程示意图。本实施例中,该方法包括以下步骤:
S201:在闪存的主控外围设置存储器件。
可如上S101所述,在此不作赘述。
S202:在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果。
S203:将该扫描得到的扫描结果整理成数据结构。
S204:将该整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置。
S205:将该采用的链表的结构方式对应的链表第一级的地址记录下来。
S206:将该记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入该设置的存储器件的指定位置。
可如上S106所述,在此不作赘述。
S207:在闪存上电之后,控制闪存的主控从该设置的存储器件的指定位置读取数据;其中,该读取的数据是该记录下来的链表第一级的地址的完整读命令序列。
S208:将该读取的数据作为命令序列发送给闪存。
S209:使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表。
可如上S109所述,在此不作赘述。
S210:在该获取的该写入该设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联该所有数据结构的正确数据结构数据重新写入该设置的存储器件。
可以发现,在本实施例中,可以在该获取的该写入该设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联该所有数据结构的正确数据结构数据重新写入该设置的存储器件,这样的好处是能够避免写入闪存的所有数据结构对应的数据出现坏页的情况或者坏块的情况,保障闪存的正常量产。
本发明还提供一种闪存的数据引导装置,能够实现无需进行任何搜索,就可以获得写入闪存的所有数据结构,方便快捷,同时又可避免量产时写入数据结构的过程碰到坏页而导致量产失败,从而保障闪存的正常量产。
请参见图3,图3是本发明闪存的数据引导装置一实施例的结构示意图。本实施例中,该闪存的数据引导装置30包括设置模块31、扫描模块32、整理模块33、写进模块34、记录模块35、写入模块36、控制模块37、发送模块38和获取模块39。
该设置模块31,用于在闪存的主控外围设置存储器件。
该扫描模块32,用于在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果。
该整理模块33,用于将该扫描得到的扫描结果整理成数据结构。
该写进模块34,用于将该整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置。
该记录模块35,用于将该采用的链表的结构方式对应的链表第一级的地址记录下来。
该写入模块36,用于将该记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入该设置的存储器件的指定位置。
该控制模块37,用于在闪存上电之后,控制闪存的主控从该设置的存储器件的指定位置读取数据;其中,该读取的数据是该记录下来的链表第一级的地址的完整读命令序列。
该发送模块38,用于将该读取的数据作为命令序列发送给闪存。
该获取模块39,用于使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表。
可选地,该设置模块31,可以具体用于:在设计闪存的主控时,在闪存的主控外围设置存储器件。
可选地,该写入模块36,可以具体用于:将该记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入该设置的存储器件的指定位置。
请参见图4,图4是本发明闪存的数据引导装置另一实施例的结构示意图。区别于上一实施例,本实施例所述闪存的数据引导装置40还包括:重新写入模块41。
该重新写入模块41,用于在该获取的该写入该设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联该所有数据结构的正确数据结构数据重新写入该设置的存储器件。
本发明又提供一种闪存的数据引导设备,如图5所示,包括:至少一个处理器51;以及,与至少一个处理器51通信连接的存储器52;其中,存储器52存储有可被至少一个处理器51执行的指令,指令被至少一个处理器51执行,以使至少一个处理器51能够执行上述的闪存的数据引导方法。
其中,存储器52和处理器51采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器51和存储器52的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器51处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器51。
处理器51负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器52可以被用于存储处理器51在执行操作时所使用的数据。
本发明再提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
可以发现,以上方案,可以在闪存的主控外围设置存储器件,和在闪存量产时,通过量产工具对闪存进行初始化扫描得到扫描结果,和将该扫描得到的扫描结果整理成数据结构,和将该整理成的数据结构采用链表的结构方式,写进闪存的任意的有效位置,和将该采用的链表的结构方式对应的链表第一级的地址记录下来,和将该记录下来的用于读取第一级数据表的地址的完整读命令序列,通过量产工具写入该设置的存储器件的指定位置,和在闪存上电之后,控制闪存的主控从该设置的存储器件的指定位置读取数据,其中,该读取的数据是该记录下来的链表第一级的地址的完整读命令序列,和将该读取的数据作为命令序列发送给闪存,以及使闪存的主控根据该作为命令序列发送给闪存的数据,从而可以读取对应该闪存地址存储的数据即获取该闪存地址存储的第一级数据表,能够实现无需进行任何搜索,就可以获得写入闪存的所有数据结构,方便快捷,同时又可避免量产时写入数据结构的过程碰到坏页而导致量产失败,从而保障闪存的正常量产。
进一步的,以上方案,可以在设计闪存的主控时,在闪存的主控外围设置存储器件,这样的好处是可以降低闪存的生产成本,并减少外围电路和输入/输出的使用。
进一步的,以上方案,可以将该记录下来的用于读取第一级数据表的地址的完整读命令序列以数据的方式,通过量产工具写入该设置的存储器件的指定位置,这样的好处是该以数据的方式写入到该设置的存储器件的指定位置的完整读命令序列是闪存的关键数据,能够提高闪存的可靠性,一定程度上提高了闪存的主控对于后续更新的闪存产品的支持能力。
进一步的,以上方案,可以在该获取的该写入该设置的存储器件的所有数据结构对应的数据出现坏页的情况或者坏块的情况时,采用关联该所有数据结构的正确数据结构数据重新写入该设置的存储器件,这样的好处是能够避免写入闪存的所有数据结构对应的数据出现坏页的情况或者坏块的情况,保障闪存的正常量产。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。