Nand闪存固件烧录方法与流程

未命名 07-23 阅读:126 评论:0

nand闪存固件烧录方法
技术领域
1.本技术涉及半导体电数字处理领域,具体涉及一种nand闪存固件烧录方法。


背景技术:

2.对于nand闪存器件,固件(firm ware,fw)是存储在nand闪存中的驱动程序,通过控制器运行该固件使得操作系统按照标准进行运作。该固件存储nand闪存中时需消耗nand闪存的存储空间,由于需要避免客户使用该固件,因此需要将存储该固件的nand闪存的位置进行标记。
3.相关技术在向nand闪存中烧录固件时是采用分区烧录的方式,即向nand闪存的至少一个存储区中烧录固件代码,使得固件代码存储在该存储区的各个存储块中,然后对该存储区进行标记以避免客户访问。
4.但是相关技术在对存储区进行标记后该存储区中的所有存储块均会带有该标记,从而会出现不能被访问的块相连成片,不利于该nand闪存的存储性能。


技术实现要素:

5.本技术提供了一种nand闪存固件烧录方法,可以解决相关技术中按区烧录导致不能被访问的块相连成片的问题。
6.为了解决背景技术中所述的技术问题,本技术提供一种nand闪存固件烧录方法,所述nand闪存固件烧录方法包括以下步骤:接收固件代码;存储所述固件代码至所述nand闪存的至少一个存储区中;修改存储有所述固件代码的存储区中所有存储块的标记状态为第一标记;生成数据库,所述数据库中的记录数量等于所述nand闪存容量;所述数据库的每条记录对应唯一的序位号;向所述数据库各个序位号对应的记录中存入所述nand闪存各个存储块的地址信息和标记状态;确定存储在所述数据库一条记录中存储块的标记状态为第一标记时,将所述记录中存储块的地址信息,与随机序位号对应记录中存储块的地址信息进行交换。
7.可选地,所述确定存储在所述数据库一条记录中存储块的标记状态为第一标记时,将所述记录中存储块的地址信息,与随机序位号对应记录中存储块的地址信息进行交换的步骤,包括:获取所述数据库中当前序位号对应的记录;判断所述当前序位号对应记录中存储块的标记状态是否为第一标记;确定所述当前序位号对应记录中存储块的标记状态为第一标记时,将所述当前序位号对应记录的存储块的地址信息赋值给中间变量;随机确定所述数据库中的一随机序位号;
将所述随机序位号对应记录的存储块的地址信息转存至所述当前序位号对应的记录中,并修改所述当前序位号对应记录中存储块的标记状态为所述随机序位号对应记录的存储块标记状态;将所述中间变量的值转存至所述随机序位号对应记录中,并修改所述随机序位号对应记录中存储块的标记状态为第一标记。
8.可选地,所述随机确定所述数据库中的一随机序位号的步骤包括:基于随机序位号算法m=a+b*s+rand()%b,确定随机序位号;其中,m表示随机序位号;a为正整数,表示所述数据库中前端部序位号区域中的记录条数;b为正整数,表示所述数据库中相邻两个标记状态为第一标记的记录之间的目标间隔记录条数;s表示所述数据库中序位号的最大值与所述当前序位号之间的差值;rand()%b表示产生b以内的随机数。
9.可选地,所述前端部序位号区域为所述数据库中序位号范围为[c,d]的记录区域;其中,c的值为所述数据库中序位号的最小值,d的值小于或等于所述数据库总记录条数的二分之一。
[0010]
可选地,对所有标记状态为第一标记的存储块完成:所述确定存储在所述数据库一条记录中存储块的标记状态为第一标记时,将所述记录中存储块的地址信息与随机序位号对应记录中存储块的地址信息进行交换的步骤后,形成新的数据库;在所述新的数据库中,前a条记录中存储块的标记状态非第一标记;标记状态为第一标记的存储块平均分布在每b条记录的步长中。
[0011]
可选地,所述向所述数据库各个序位号对应的记录中存入所述nand闪存各个存储块的地址信息和标记状态的步骤,包括:将所述nand闪存中标记状态为第一标记的存储块地址信息和标记状态存入所述数据库的后端部序位号区域的各条记录中;位于所述后端部序位号区域中记录的总条数等于标记状态为第一标记的存储块的总个数。
[0012]
可选地,所述后端部序位号区域为所述数据库中序位号范围为[p,q]的记录区域;其中, p的值大于或等于所述数据库总记录条数的二分之一,q的值为所述数据库中序位号的最大值。
[0013]
可选地,标记状态为第一标记的存储块的总个数小于所述nand闪存容量的2%。
[0014]
可选地,所述生成一数据库,所述数据库中的记录数量等于所述nand闪存容量;所述数据库的每条记录对应唯一的序位号的步骤中,所述nand闪存中存储块的总数量表示所述nand闪存的容量,所述数据库中的记录数量等于所述nand闪存中存储块的总数量。
[0015]
可选地,在进行所述接收固件代码的步骤前还进行:确定所述nand闪存中原始不良的存储块,所述原始不良的存储块的标记状态为第一标记。
[0016]
本技术技术方案,至少包括如下优点:本技术按区存储固件代码方便存储但会导致存储固件代码的存储块连成一片,因此通过对存储固件代码的存储块进行标记,并建立
数据库,将具有标记的存储块与nand闪存中其他随机存储块进行地址信息交换,从而打乱了存储固件代码的存储块的排布,解决相关技术中按区烧录导致不能被访问的块相连成片的问题。
附图说明
[0017]
为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]
图1示出了本技术一实施例提供的nand闪存固件烧录方法的流程图;图2示出了步骤s2完成后的nand闪存部分区域示意图;图3示出了以nand闪存容量1g为例在步骤s5完成后数据库示意图;图4示出了图3所示数据库经过步骤s61至步骤s66后的示意图。
具体实施方式
[0019]
下面将结合附图,对本技术中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在不做出创造性劳动的前提下所获得的所有其它实施例,都属于本技术保护的范围。
[0020]
在本技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0021]
在本技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电气连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。
[0022]
此外,下面所描述的本技术不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0023]
图1示出了本技术一实施例提供的nand闪存固件烧录方法的流程图,从图1可以看出,该nand闪存固件烧录方法包括以下步骤s1至步骤s6:步骤s1:接收固件代码。
[0024]
步骤s2:存储所述固件代码至所述nand闪存的至少一个存储区中。
[0025]
参照图2,其示出了步骤s2完成后的nand闪存部分区域示意图。固件代码存储在图2所示的存储区100中,即图2中所示的nand闪存100包括存储块111,存储有固件代码的存储区100包括多个存储块111。
[0026]
步骤s3:修改存储有所述固件代码的存储区中所有存储块的标记状态为第一标
记。
[0027]
用户无法使用标记状态为第一标记的存储块。
[0028]
在其他实施例中,由于nand闪存本身的结构和制造的原因,除存储有固件代码的存储区中所有存储块的标记状态为第一标记以外,nand闪存中还存在一些原始不良的存储块,这些原始不良的存储块也无法被用户使用,因此也被标记为第一标记。其他实施例在进行步骤s1前还进行:确定所述nand闪存中原始不良的存储块,所述原始不良的存储块的标记状态为第一标记。
[0029]
步骤s4:生成数据库,所述数据库中的记录数量等于所述nand闪存容量;所述数据库的每条记录对应唯一的序位号。
[0030]
其中,可以通过nand闪存中存储块的总数量表示该nand闪存的容量。以nand闪存容量1g为例,1g nand闪存的存储块的总数量为1024,从而该数据库的记录总条数等于nand闪存中存储块的总数量即1024。数据库的序位号为0到1023。
[0031]
步骤s5:向所述数据库各个序位号对应的记录中存入所述nand闪存各个存储块的地址信息和标记状态。
[0032]
图3示出了以nand闪存容量1g为例在步骤s5完成后数据库示意图。从图3中可以看出该数据库的序位号为0到1023,数据库的一行为一条记录,各个序位号对应的记录中包括存储块的地址信息和存储块的标记状态。例如,0序位号对应记录中存储块的地址信息为a0,标记状态为0;1序位号对应记录中存储块的地址信息为a1,标记状态为0;2序位号对应记录中存储块的地址信息为a2,标记状态为0;3序位号对应记录中存储块的地址信息为a3,标记状态为0;k序位号对应记录中存储块的地址信息为ak,标记状态为0,该k为大于3小于1022的自然数;1022序位号对应记录中存储块的地址信息为ax,标记状态为1;1023序位号对应记录中存储块的地址信息为ay,标记状态为1。示例性地,标记状态为1表示第一标记。
[0033]
步骤s6:确定存储在所述数据库一条记录中存储块的标记状态为第一标记时,将所述记录中存储块的地址信息与随机序位号对应记录中存储块的地址信息进行交换。
[0034]
本技术按区存储固件代码方便存储但会导致存储固件代码的存储块连成一片,因此通过对存储固件代码的存储块进行标记,并建立数据库,将具有标记的存储块与nand闪存中其他随机存储块进行地址信息交换,从而打乱了存储固件代码的存储块的排布,解决相关技术中按区烧录导致不能被访问的块相连成片的问题。
[0035]
可以通过以下步骤s51实施本实施例中的步骤s5。
[0036]
步骤s51:将所述nand闪存中标记状态为第一标记的存储块地址信息和标记状态存入所述数据库的后端部序位号区域的各条记录中。
[0037]
其中,后端部序位号区域为位于所述数据库后端部的记录区域,即所述后端部序位号区域为序位号范围为[p,q]的记录区域, p的值大于等于所述数据库总记录条数的二分之一,q的值为所述数据库中序位号的最大值。
[0038]
位于所述后端部序位号区域中记录的总条数等于标记状态为第一标记的存储块的总个数。
[0039]
示例性地,标记状态为第一标记的存储块的总个数小于所述nand闪存容量的2%。
[0040]
以1g容量的nand闪存为例,标记状态为第一标记的存储块的总个数小于等于20个。当标记状态为第一标记的存储块的总个数为20个时,位于所述后端部序位号区域中记
录的总条数为20条。
[0041]
可以通过以下步骤s61至步骤s66实施本实施例中的步骤s6,下面结合图3所示数据库对步骤s61至步骤s66进行描述。
[0042]
步骤s61:获取所述数据库中当前序位号对应的记录。
[0043]
示例性地,当前序位号为1022,获取1022序位号对应记录中存储块的地址信息为ax,标记状态为1。
[0044]
步骤s62:判断所述当前序位号对应记录中存储块的标记状态是否为第一标记。
[0045]
步骤s63:确定所述当前序位号对应记录中存储块的标记状态为第一标记时,将所述当前序位号对应记录的存储块的地址信息赋值给中间变量。
[0046]
示例性地,1022序位号对应记录中存储块的标记状态为1,为第一标记。将1022序位号对应记录中存储块的地址信息为ax赋值给中间变量i,即i=ax。
[0047]
步骤s64:随机确定所述数据库中的一随机序位号。
[0048]
可以根据基于随机序位号算法确定随机序位号m=a+b*s+rand()%b;其中,m表示随机序位号,a表示所述数据库中前端部序位号区域中的记录条数,b表示所述数据库中相邻两个标记状态为第一标记的记录之间的目标间隔记录条数,s表示所述数据库中序位号的最大值与所述当前序位号之间的差值,rand()%b表示产生b以内的随机数。
[0049]
其中,所述前端部序位号区域为所述数据库中序位号范围为[c,d]的记录区域;c的值为所述数据库中序位号的最小值,d的值小于或等于所述数据库总记录条数的二分之一。
[0050]
由于例如nand闪存中启动代码等应用的运行需要最先访问前端部序位号区域中的存储块,通过m=a+b*s+rand()%b随机序位号算法确定的随机序位号,以保证前a条记录中存储块的标记状态非第一标记,从而保证类nand闪存中启动代码等应用的顺利完整运行。
[0051]
且通过m=a+b*s+rand()%b随机序位号算法确定的随机序位号,能够保证数据库中相邻两个标记状态为第一标记的记录之间的目标间隔b条记录,从而避免标记状态为第一标记的存储块大片相连。
[0052]
示例性地,a=20,b=50,rand()%b取1,数据库中序位号的最大值为1023,当前序位号为1022。
[0053]
即随机序位号m=20+50*(1023-1022)+rand()%50=71。
[0054]
步骤s65:将所述随机序位号对应记录的存储块的地址信息转存至所述当前序位号对应的记录中,并修改所述当前序位号对应记录中存储块的标记状态为所述随机序位号对应记录的存储块标记状态。
[0055]
示例性地,随机序位号71对应记录的存储块地址信息为a71,标记状态为0。将随机序位号71对应记录的存储块地址信息a71,转存至1022序位号对应记录的存储块地址信息ax,即ax= a71;将1022序位号对应记录的存储块标记状态需改为0。
[0056]
步骤s66:将所述中间变量的值转存至所述随机序位号对应记录中,并修改所述随机序位号对应记录中存储块的标记状态为第一标记。
[0057]
由于步骤s63结束后1022序位号对应记录中存储块的地址信息为ax赋值给中间变
量i,即i=ax,因此在进行步骤s66时,a71=i,随机序位号71对应记录的存储块标记状态为1。
[0058]
需要说明的是,步骤s61至步骤s66仅作为实施本实施例中步骤s6的可选实施例,而并非对步骤s6的限定,对于所属领域的普通技术人员来说还可以采用其他方式,以实现将第一标记的存储块的地址信息与随机存储块的地址信息进行交换。
[0059]
参照图4,其示出了图3所示数据库经过步骤s61至步骤s66后的示意图。
[0060]
从图4中可以看出,数据库经过步骤s61至步骤s66后,当前序位号1022中对应记录中的地址信息和标记状态与随机序位号71对应记录进行了交换。
[0061]
对图3所示数据库中所有标记状态为第一标记的存储块进行上述步骤s61至步骤s66后形成新的数据库中,前a条记录中存储块的标记状态非第一标记,标记状态为第一标记的存储块被平均分布在每b条记录的步长中。
[0062]
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本技术创造的保护范围之中。

技术特征:
1.一种nand闪存固件烧录方法,其特征在于,所述nand闪存固件烧录方法包括以下步骤:接收固件代码;存储所述固件代码至所述nand闪存的至少一个存储区中;修改存储有所述固件代码的存储区中所有存储块的标记状态为第一标记;生成一数据库,所述数据库中的记录数量等于所述nand闪存容量;所述数据库的每条记录对应唯一的序位号;向所述数据库各个序位号对应的记录中存入所述nand闪存各个存储块的地址信息和标记状态;确定存储在所述数据库一条记录中存储块的标记状态为第一标记时,将所述记录中存储块的地址信息,与随机序位号对应记录中存储块的地址信息进行交换。2.如权利要求1所述的nand闪存固件烧录方法,其特征在于,所述确定存储在所述数据库一条记录中存储块的标记状态为第一标记时,将所述记录中存储块的地址信息,与随机序位号对应记录中存储块的地址信息进行交换的步骤,包括:获取所述数据库中当前序位号对应的记录;判断所述当前序位号对应记录中存储块的标记状态是否为第一标记;确定所述当前序位号对应记录中存储块的标记状态为第一标记时,将所述当前序位号对应记录的存储块的地址信息赋值给中间变量;随机确定所述数据库中的一随机序位号;将所述随机序位号对应记录的存储块的地址信息转存至所述当前序位号对应的记录中,并修改所述当前序位号对应记录中存储块的标记状态为所述随机序位号对应记录的存储块标记状态;将所述中间变量的值转存至所述随机序位号对应记录中,并修改所述随机序位号对应记录中存储块的标记状态为第一标记。3.如权利要求2所述的nand闪存固件烧录方法,其特征在于,所述随机确定所述数据库中的一随机序位号的步骤包括:基于随机序位号算法m=a+b*s+rand()%b,确定随机序位号;其中,m表示随机序位号;a为正整数,表示所述数据库中前端部序位号区域中的记录条数;b为正整数,表示所述数据库中相邻两个标记状态为第一标记的记录之间的目标间隔记录条数;s表示所述数据库中序位号的最大值与所述当前序位号之间的差值;rand()%b表示产生b以内的随机数。4.如权利要求3所述的nand闪存固件烧录方法,其特征在于,所述前端部序位号区域为所述数据库中序位号范围为[c,d]的记录区域;其中,c的值为所述数据库中序位号的最小值,d的值小于或等于所述数据库总记录条数的二分之一。5.如权利要求3所述的nand闪存固件烧录方法,其特征在于,对所有标记状态为第一标记的存储块完成:所述确定存储在所述数据库一条记录中存储块的标记状态为第一标记
时,将所述记录中存储块的地址信息与随机序位号对应记录中存储块的地址信息进行交换的步骤后,形成新的数据库;在所述新的数据库中,前a条记录中存储块的标记状态非第一标记;标记状态为第一标记的存储块平均分布在每b条记录的步长中。6.如权利要求1所述的nand闪存固件烧录方法,其特征在于,所述向所述数据库各个序位号对应的记录中存入所述nand闪存各个存储块的地址信息和标记状态的步骤,包括:将所述nand闪存中标记状态为第一标记的存储块地址信息和标记状态存入所述数据库的后端部序位号区域的各条记录中;位于所述后端部序位号区域中记录的总条数等于标记状态为第一标记的存储块的总个数。7.如权利要求6所述的nand闪存固件烧录方法,其特征在于,所述后端部序位号区域为所述数据库中序位号范围为[p,q]的记录区域;其中, p的值大于或等于所述数据库总记录条数的二分之一,q的值为所述数据库中序位号的最大值。8.如权利要求6所述的nand闪存固件烧录方法,其特征在于,标记状态为第一标记的存储块的总个数小于所述nand闪存容量的2%。9.如权利要求1所述的nand闪存固件烧录方法,其特征在于,所述生成一数据库,所述数据库中的记录数量等于所述nand闪存容量;所述数据库的每条记录对应唯一的序位号的步骤中,所述nand闪存中存储块的总数量表示所述nand闪存的容量,所述数据库中的记录数量等于所述nand闪存中存储块的总数量。10.如权利要求1所述的nand闪存固件烧录方法,其特征在于,在进行所述接收固件代码的步骤前还进行:确定所述nand闪存中原始不良的存储块,所述原始不良的存储块的标记状态为第一标记。

技术总结
本申请涉及半导体电数字处理领域,具体涉及Nand闪存固件烧录方法,该方法包括以下步骤:接收固件代码;存储固件代码至Nand闪存的至少一个存储区中;修改存储有固件代码的存储区中所有存储块的标记状态为第一标记;生成一数据库,数据库中的记录数量等于所述Nand闪存容量;数据库的每条记录对应唯一的序位号;向数据库各个序位号对应的记录中存入Nand闪存各个存储块的地址信息和标记状态;确定存储在数据库一条记录中存储块的标记状态为第一标记时,将记录中存储块的地址信息,与随机序位号对应记录中存储块的地址信息进行交换。本申请可以解决相关技术中按区烧录导致不能被访问的块相连成片的问题。问的块相连成片的问题。问的块相连成片的问题。


技术研发人员:黎江南 刘焱 高伟
受保护的技术使用者:联和存储科技(江苏)有限公司
技术研发日:2023.06.19
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐