本发明涉及储存芯片,具体为一种提高flash读写效率和寿命的方法。
背景技术:
1、ret电调是一种高效、精确和智能的交流马达控制器,以其先进的数字信号处理技术和现代的可编程逻辑控制器(plc)技术而闻名。在现有技术中,ret电调是在外部单独挂一个fram存储芯片,用于存储ret的相关参数,ret电调的mcu通过spi接口与fram芯片存储的数据进行读写,现有方案中的外部单独挂一个fram存储芯片,用于存储相关参数,在一定程度上增加了系统复杂性和成本,导致系统的稳定性和风险性增加,且在市面上fram存储芯片使用的范围也不大,可生产的供应商也不多,容易导致存在供应问题不足之处。
2、为了解决外挂fram存储芯片带来的问题,可以去掉外挂fram存储芯片,即使用flash替代fram存储芯片,将ret的相关参数存储到flash里面。但是因为flash擦除时,是需要将整页擦除,这样要先将将不需要修改的数据复制出来,次新值修改后,再全部写回来,导致写入速度慢的问题,另外常规的flash只有擦写1万次的寿命,对于ret有些参数是修改比较频繁(如调角,校准等),特别是5g产品时,经常会调整电下倾角,对flash的要求至少要达到擦写2万次的寿命,现有的flash难以满足条件。
技术实现思路
1、本发明的目的在于提供一种提高flash读写效率和寿命的方法,以解决上述背景技术中提出的:在现有技术中,将ret的相关参数存储到flash里面时,因为flash需要先整页擦除再写入,导致存在写入速度慢的问题,以及常规的flash只有擦写1万次的寿命,难以满足对于ret有些参数是修改比较频繁的情况对flash的寿命要求。
2、为实现上述目的,根据本发公开的一个方面,提供了一种提高flash读写效率和寿命的方法,所述方法包括:
3、接收微控制器传输的指令值;
4、遍历查找flash存储器中值有效标志位状态为0的储存单元;
5、从所述有效标志位状态为0的储存单元开始,找到记载的最新值;
6、判断当前flash page空间是否饱和,
7、若是,则开辟新的flash page空间,并将当前flash page空间擦除,然后将所述指令值写入所述最新值末尾,
8、若否,则直接将所述指令值所述最新值末尾。
9、在一种可能的实现方式中,所述指令值包括ret在调角和/或校准时,对flash存储器里面写入倾角和/或校准状态的值。
10、在一种可能的实现方式中,所述遍历查找flash存储器中值有效标志位为0的储存单元的步骤具体包括:
11、定义遍历的起始地址和结束地址;
12、从起始地址开始,按存储单元的地址顺序遍历flash存储器中的每一个存储单元;
13、对于每个遍历到的存储单元,读取其有效标志位的状态;
14、如果读取到的有效标志位状态为1,则继续遍历下一个存储单元,直到读取到有效标志位状态为0的储存单元。
15、在一种可能的实现方式中,从所述有效标志位状态为0的储存单元开始,找到记载的最新值的步骤具体包括:
16、判断当前储存单元的值是否为最新值,若否,则从当前地址开始,以预设步进值进行步进,直到找到最新值。
17、在一种可能的实现方式中,所述判断当前储存单元的值是否为最新值的步骤具体包括:
18、若当前处理的存储器单元的标志位为0xaaaa,且步进后的存储器单元的标志位为0xffff,则当前处理的存储器单元的值为最新值。
19、在一种可能的实现方式中,所述步进值为8个bytes。
20、在一种可能的实现方式中,所述判断当前flash page空间是否饱和的步骤具体包括:
21、判断当前处理的储存单元地址是否为最大值,若是,则当前flash page空间已饱和,若否,则当前flash page空间未饱和。
22、根据本公开的另一方面,提供了一种提高flash的读写效率和寿命的装置,所述装置包括:
23、第一执行单元,被配置为接收微控制器传输的指令值;
24、第二执行单元,被配置为遍历查找flash存储器中值有效标志位状态为0的储存单元;
25、第三执行单元,被配置为判断当前flash page空间是否饱和,
26、若是,则开辟新的flash page空间,并将当前flash page空间擦除,然后将所述指令值写入所述最新值末尾,
27、若否,则直接将所述指令值所述最新值末尾。
28、根据本公开实施例的另一方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一可能实现方式所述的提高flash读写效率和寿命的方法。
29、根据本公开实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一可能实现方式所述的提高flash读写效率和寿命的方法。
30、根据本公开实施例的另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机程序代码,所述计算机程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取所述计算机程序代码,处理器执行所述计算机程序代码,使得所述计算机设备执行上述提高flash读写效率和寿命的方法中所执行的操作。
31、本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
32、在本发明实施例提供的一种提高flash读写效率和寿命的方法,所述方法包括:接收微控制器传输的指令值;遍历查找flash存储器中值有效标志位状态为0的储存单元;从所述有效标志位状态为0的储存单元开始,找到记载的最新值;判断当前flash page空间是否饱和,若是,则开辟新的flash page空间,并将当前flash page空间擦除,然后将所述指令值写入所述最新值末尾,若否,则直接将所述指令值所述最新值末尾,通过接收微控制器传输的指令值,该指令值可以是读写频繁的参数(如电下倾角的值),然后将该指令值单独成放到一页flash page中,每次更新,只要指令值写入所述最新值末尾,旧值不变,每次更新在都在最后面更新,这样整页写完之后,即flash page空间饱和时,再开辟新的flashpage空间,并将当前flash page空间擦除,这样不用写入一次将整页擦除再写入一次,写入效率高了,且使用寿命也可以满足要求。
33、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
1.一种提高flash读写效率和寿命的方法,其特征在于,包括:
2.根据权利要求1所述的一种提高flash读写效率和寿命的方法,其特征在于,所述指令值包括ret在调角和/或校准时,对flash存储器里面写入倾角和/或校准状态的值。
3.根据权利要求1所述的一种提高flash读写效率和寿命的方法,其特征在于,所述遍历查找flash存储器中值有效标志位为0的储存单元的步骤具体包括:
4.根据权利要求1所述的一种提高flash读写效率和寿命的方法,其特征在于,从所述有效标志位状态为0的储存单元开始,找到记载的最新值的步骤具体包括:
5.根据权利要求4所述的一种提高flash读写效率和寿命的方法,其特征在于,所述判断当前储存单元的值是否为最新值的步骤具体包括:
6.根据权利要求4-5任意一项所述的一种提高flash读写效率和寿命的方法,其特征在于,所述步进值为8个bytes。
7.根据权利要求1所述的一种提高flash读写效率和寿命的方法,其特征在于,所述判断当前flash page空间是否饱和的步骤具体包括:
8.一种提高flash的读写效率和寿命的装置,其特征在于,所述装置包括:
9.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1-7任意一项所述的提高flash的读写效率和寿命的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1-7任意一项所述的提高flash的读写效率和寿命的方法。