本发明涉及存储技术领域,具体涉及一种存储方法、系统、非易失性存储器、计算机以及车辆。
背景技术:
基于非易失性存储器使数据掉电不丢失的特性,所有电动车控制系统需要通过非易失性存储器存储数据和程序,以及对数据和程序进行更新,当前大多数电动车控制系统在运行过程中会操作非易失性存储器驱动,由于操作这类驱动能够擦除和改写数据的特性,这样会对控制器中运行的代码和数据造成一定隐患,通过本专利操作非易失性存储器的方法,能够避免这些隐患,保证系统安全运行。
由于非易失性存储器驱动本身具有擦除和写入数据和代码的功能,所以将非易失性存储器驱动放在代码中会有一定隐患,程序在运行中可能会因为意外执行到该驱动,使某段数据被擦除,从而导致汽车某项功能丢失,这在行车过程中会存在极大的风险。
技术实现要素:
本发明所要解决的技术问题是:提供一种是驱动代码在有效状态和移除状态中切换的存储方法、系统、非易失性存储器、计算机以及车辆。
为了解决上述技术问题,本发明采用的第一种技术方案为:
一种存储方法,包括
将与操作对应的功能函数锁定为移除状态;
确定是否需要执行操作,若否,则不动作;若是,则将操作对应的功能函数进行解锁为有效状态,再执行有效状态下的功能函数;
执行完毕后,将有效状态下的功能函数重新锁定为移除状态。
优选的,所述功能函数通过加密算法进行编译。
优选的,所述功能函数通过二进制算法进行编译;
所述二进制算法包括
文件头,储存功能函数的起始地址,通过文件头调用执行功能函数;
初始化函数,驱动及参数的初始化,在执行擦写操作前被调用;
擦除函数,执行指定地址的擦除;
写入函数;执行指定地址写入指定数据。
从上述描述可知,本发明通过锁定和解锁操作,由于将功能函数转化成二进制形式,所以实际的锁定和解锁操作对开发人员来说非常容易完成,比如简单的取反或异或操作,方案执行过程几乎不占用系统的运行时间和存储空间,对原系统的运行不会造成影响。
优选的,所述操作包括擦除操作,与擦除操作对应的功能函数为擦除函数;
确定是否需要执行擦除操作,若否,则不动作;若是,则将擦除操作对应的功能函数进行解锁为有效状态,调用初始化函数,调用擦除函数;
对擦除函数进行锁定为移除状态并返回擦除操作的执行结果。
优选的,所述操作包括写入操作,与写作操作对应的功能函数为写入函数;
确定是否需要执行写入操作,若否,则不动作;若是,则将写入操作对应的功能函数进行解锁为有效状态,调用初始化函数,调用写入函数;
对写入函数进行锁定为移除状态并返回写入操作的执行结果。
为了解决上述技术问题,本发明采用的第二种技术方案为:
一种存储系统,包括
存储器,用于存储一个或多个程序;
处理器;
当所述一个或多个程序被所述处理器执行时,实现上述的存储方法;
在存储方法执行完毕后,将有效状态下的功能函数重新锁定为移除状态并将操作执行结果返回至系统内。
优选的,所述功能函数通过二进制文件结构进行编译;
所述二进制文件结构包括
文件头,储存功能函数的起始地址,通过文件头调用执行功能函数;
初始化函数,实现存储器的驱动及参数的初始化,在执行擦写操作前被调用;
擦除函数,执行存储器指定地址的擦除;
写入函数;执行存储器指定地址写入指定数据。
为了解决上述技术问题,本发明采用的第三种技术方案为:
一种非易失性存储器,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的存储方法。
为了解决上述技术问题,本发明采用的第四种技术方案为:
一种计算机,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的存储方法。
为了解决上述技术问题,本发明采用的第五种技术方案为:
一种车辆,其特征在于,包括上述的存储系统、上述的非易失性存储器和上述的计算机中的一种或多种。
本发明的有益效果在于:通过将功能函数锁定为移除状态,如果意外运行到这部分功能函数,也不会执行风险操作,能够避免数据被意外擦除的隐患,保证系统安全有效运行;并且方案执行过程几乎不占用系统的运行时间和存储空间,对原系统的运行不会造成影响。
附图说明
图1为本发明具体实施方式的一种存储系统所采用的二进制文件结构;
图2为本发明具体实施方式的一种存储系统驱动执行流程。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
实施例一
一种存储方法,包括
将与操作对应的功能函数锁定为移除状态;
确定是否需要执行操作,若否,则不动作;若是,则将操作对应的功能函数进行解锁为有效状态,再执行有效状态下的功能函数;
执行完毕后,将有效状态下的功能函数重新锁定为移除状态。
所述功能函数通过加密算法进行编译。
所述功能函数通过二进制算法进行编译;
所述二进制算法包括
文件头,储存功能函数的起始地址,通过文件头调用执行功能函数;
初始化函数,驱动及参数的初始化,在执行擦写操作前被调用;
擦除函数,执行指定地址的擦除;
写入函数;执行指定地址写入指定数据。
从上述描述可知,通过锁定和解锁操作,由于将功能函数转化成二进制形式,所以实际的锁定和解锁操作对开发人员来说非常容易完成,比如简单的取反或异或操作,方案执行过程几乎不占用系统的运行时间和存储空间,对原系统的运行不会造成影响。
所述操作包括擦除操作,与擦除操作对应的功能函数为擦除函数;
确定是否需要执行擦除操作,若否,则不动作;若是,则将擦除操作对应的功能函数进行解锁为有效状态,调用初始化函数,调用擦除函数;
对擦除函数进行锁定为移除状态并返回擦除操作的执行结果。
所述操作包括写入操作,与写作操作对应的功能函数为写入函数;
确定是否需要执行写入操作,若否,则不动作;若是,则将写入操作对应的功能函数进行解锁为有效状态,调用初始化函数,调用写入函数;
对写入函数进行锁定为移除状态并返回写入操作的执行结果。
实施例二
一种存储系统,包括
存储器,用于存储一个或多个程序;
处理器;
当所述一个或多个程序被所述处理器执行时,实现实施例一所述的存储方法;
在存储方法执行完毕后,将有效状态下的功能函数重新锁定为移除状态并将操作执行结果返回至系统内。
参照图1,所述二进制文件结构包括:
文件头,储存功能函数的起始地址,通过文件头调用执行功能函数;
初始化函数,实现存储器的驱动及参数的初始化,在执行擦写操作前被调用;
擦除函数,执行存储器指定地址的擦除;
写入函数;执行存储器指定地址写入指定数据。
所述功能函数通过二进制文件结构进行编译形成二进制文件,所述二进制文件为源代码编译生成的可执行文件,常见文件后缀为hex、s19、bin等;将二进制文件集成到现有的存储系统中,并根据图2驱动执行流程对具有隐患的擦除函数和写入函数进行锁定操作;
实施例三
一种非易失性存储器,其上存储有计算机程序,该计算机程序被处理器执行时实现如实施例一所述的存储方法。
所述非易失性存储器是指当电源断开后,所存储的数据不会丢失的一种存储器。
实施例四
一种计算机,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如实施例三所述的存储方法。
实施例五
一种车辆,其特征在于,包括实施例二所述的存储系统、实施例三所述的非易失性存储器和实施例四所述的计算机中的一种或多种。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。