掌桥专利:专业的专利平台
掌桥专利
首页

一种NVM自动配置方法、装置和设备

文献发布时间:2023-06-19 09:33:52


一种NVM自动配置方法、装置和设备

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种NVM自动配置方法、装置和设备。

背景技术

在汽车底盘电子控制器的电子控制单元中,非易失RAM管理器(No Volatile RAMManager,NVM)主要用于管理带电可擦可编程只读存储器(Electrically ErasableProgrammable read only memory,EEPROM)以及Flash模拟EEPROM中的非易失数据。NVM可将具体数据存储介质与数据使用方直接进行抽象隔离,以实现NV数据与具体的数据存储介质、数据写入方式、数据读取方式进行解耦的目的。通过NVM实现NV数据的初始化、读取、写入、有效性检查、校验码计算以及数据冗余等功能。

NVM功能的实现由两部分完成,包括NVM基础功能模块和NVM配置模块。在现有技术中,NVM配置需要在配置工具中,按照软件的NVM使用需求,手动对每个NV数据块进行配置,并且对执行配置工作的开发工程师有专业技能要求,需要对NVM协议栈有详细了解。此外,在电子控制器的研发过程中,由于NV数据块发生多次变更,导致NVM配置工作需要重复执行,工作量大且不易维护。

因此,如何实现NVM自动配置是当前亟待解决的技术问题。

发明内容

本发明实施例提供了一种NVM自动配置方法、装置和设备,能够实现NVM模块自动配置,有效减少手工配置方法中存在的工作量大,效率低等问题。

第一方面,本发明实施例提供了一种NVM自动配置方法,包括:

解析NV数据块需求文件,获得NV数据块需求信息;

根据所述NV数据块需求信息生成多个不同格式的配置文件;

根据所述多个不同格式的配置文件生成NV数据块配置表。

第二方面,本发明实施例还提供了一种NVM自动配置装置,包括:

NV数据块需求信息获取模块,用于根据NV数据块需求信息,得到NV数据块需求文件,解析所述NV数据块需求文件,确定所述NV数据块的属性信息;

配置文件生成模块,用于根据所述NV数据块需求信息,配置工具生成不同格式的文件;

配置表生成模块,用于根据所述不同文件中包括的NV数据库配置报告、NVM模块配置代码和配置文件,生成对应的NV数据块信息表。

第三方面,本发明实施例还提供了一种计算机设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例中所述的NVM自动配置方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任意实施例所提供的NVM自动配置方法。

本发明实施例提供了一种NVM自动配置方法、装置和设备,首先通过解析NV数据块需求文件,获得NV数据块需求信息;然后根据所述NV数据块需求信息生成多个不同格式的配置文件;最后根据所述多个不同格式的配置文件生成NV数据块配置表。利用上述技术方案,能够实现NVM模块自动配置,有效解决手工配置方法中存在的工作量大,效率低等问题。

附图说明

图1为本发明实施例一提供的一种NVM自动配置方法的流程示意图;

图2为本发明实施例二提供的一种NVM自动配置方法的流程概括示意图;

图3为本发明实施例二提供的一种NVM自动配置方法的示例流程示意图;

图4为本发明实施例三提供的一种NVM自动配置装置的结构示意图;

图5为本发明实施例四提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。

实施例一

图1为本发明实施例一提供的一种NVM自动配置方法的流程示意图,该方法可适用于对非易失RAM管理器中的NVM模块进行配置的情况,该方法可以由NVM自动配置装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。

需要说明的是,计算机设备通过本发明实施例提供的NVM自动配置方法对NVM模块完成配置后,可以在计算机设备上执行编译,生成.hex文件,将所述.hex文件下载到车辆内的电子控制器中,所述.hex文件通过刷新,可以在电子控制器运行中实现NVM功能。

如图1所示,本发明实施例一提供的一种NVM自动配置方法,包括如下步骤:

S110、解析NV数据块需求文件,获得NV数据块需求信息。

在本实施例中,NVM为非易失RAM管理器,是一种计算机即使关闭电源也能够保存已保存数据的存储器,本实施例中的NVM采用电子寻址系统。

软件NV数据块的需求使用方可以在NV配置模块填写最基本的数据需求,形成NV数据块需求文件,通过解析NV数据块需求文件可以获得NV数据块需求信息。NV数据块的个数可以为多个,此处不做具体限定。

其中,NV数据块需求文件可以为.csv格式的文件,NV数据块需求文件可以为一种包含NV数据块需求信息的文件。

其中,NV数据块需求信息可以为软件NV数据块的需求使用方在NV配置模块填写的最基本的数据需求,NV数据块需求信息可以为针对每一个NV数据块的需求信息。NV数据块需求信息可以包括:NV数据块的大小、名称和ID、NV数据块的写入条件和写入特征、擦除条件和调用条件。

需要说明的是,NV数据块的大小可以由NV数据块中包含的数据量决定,NV数据块的大小可以与需求使用方实际使用的大小保持严格一致;NV数据块的写入条件可以理解为在什么时机写入NV数据块,是对该NV数据块的描述信息;NV数据块的写入特征可以包括:是否在上电时统一读取NV数据块,还是由需求使用方按照需求从FLASH空间读取、是否在下电时统一写入NV数据块,还是由需求使用方按照需求写入FLASH空间、是否需要在工程编译过程中立即写入FLASH空间;擦除条件可以理解为是否可以被外部控制命令擦除FLASH空间中存储的现有NV数据块;调用调节可以理解为NV数据块写入FLASH空间成功后,是否需要调用callback函数通知需求使用方写入FLASH空间成功。其中,FLASH空间是NV数据块的存储空间,可以在掉电后将NV数据块中的变量存储在FLASH空间,以便上电时可以直接调取掉电前的NV数据块中的变量进行使用。

示例性的,NV数据块需求文件可以以列表的形式读取,该列表可以包括各NV数据块的需求信息,每个NV数据块可以占用列表中的一行内存,该行内存可以包括该NV数据块的每个需求信息,解析NV数据块需求文件可以理解为把列表中每个NV数据块的需求信息提取出来,解析成对应的属性,根据属性信息建立一个字典在自动配置工具里。

S120、根据所述NV数据块需求信息生成多个不同格式的配置文件。

NV配置模块可以解析NV数据块需求文件,得到多个NV数据块需求信息,并生成多个不同格式的配置文件。

在本实施例中,不同格式的配置文件可以包括FEE模块配置文件、控制宏文件、FEE协议文件、NVM协议文件和链接脚本文件。

其中,FEE模块可以理解为NVM模块对应到FLASH空间中的模块,FEE模块配置文件可以为NVM模块的NV数据块需求文件对应到FEE模块后形成的文件,所述FEE模块配置文件可以为.xdm格式的文件;控制宏文件可以理解为NV数据块对应的MemMap内存Layout控制宏文件,其为.h格式的文件;FEE协议文件可以包括FEE软件协议栈的配置C代码及头文件,其为.h或.c格式的文件;NVM协议文件可以包括NVM协议栈的配置C代码及头文件,其为.h或.c格式的文件;链接脚本文件可以为NVM模块中的变量链接脚本文件,链接脚本文件可以理解为NV数据块在RAM中的内存Layout链接脚本文件,其为.lsl.格式的文件。

其中,FEE模块配置文件可以为FLASH模拟EEPROM即FEE驱动的配置文件,FEE模块配置文件可以用于定义各NV数据块对应在FLASH模拟EEPROM中的NV数据块和校验码。

需要说明的是,FLASH模拟EEPROM可以理解为,FLASH模拟代替真实EEPROM,还可以理解为DATA FLASH硬件模拟EEPROM的抽象层。示例性的,对于真实EEPROM而言,NV数据块存储在固定的地址,读取和写入可以是实时的,而FLASH模拟EEPROM是指真实EEPROM掉电后通过FLASH方式实现掉电存储功能,但是受限于寿命和特性不能随时读取和写入。其中,EEPROM是指带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,EEPROM可以在电脑上或专用设备上擦除已有信息并重新编程。

其中,控制宏文件可以用于后续自动定位NV数据块中变量的内存地址,NV配置模块为每个NV数据块生成对应Autosar标志的MemMap Layout控制宏,MemMap Layout控制宏相当于一个标志符,可以根据MemMap Layout控制宏确定NV数据块中变量的地址。

其中,NVM协议文件中包括的NVM协议栈的配置C代码及头文件,可以用于根据上述代码和头文件定义各MV数据块的操作ID宏定义、NV数据块大小、读写方式、校验方式、擦除方式以及异常情况处理方式。

其中,链接脚本文件可以用于在进行工程编译时,控制链接器生成用于存放NV数据块在RAM中的内存空间。需要说明的是,.lsl格式的链接文件可以通过编译器生成可执行的文件,RAM内存空间是指软件在RAM空间内运行NV数据块,还可以理解为,当软件需要运行NV数据块时,可以将存储在FLASH空间内的NV数据块拉取到RAM内存空间来运行,运行完成后,再将所述NV数据块存储在FLASH空间,以便掉电后可以保存所述NV数据块中的变量。

此外,链接脚本文件还可以指明与编译器相关的某些特性到所使用的目标NV数据块上,设置目标NV数据块的地址空间定位和运行地址。

S130、根据所述多个不同格式的配置文件生成NV数据块配置表。

在本实施例中,NV数据块配置表可以包括上述步骤生成的所有配置文件,NV数据块配置表可以用于汇总FEE模块配置文件、控制宏文件、FEE协议文件、NVM协议文件和链接脚本文件中包括的内容。

示例性的,NV数据块配置表可以包括FEE模块配置文件中的NV数据块、校验码以及NV数据块的读写操作方式;NV数据块配置表可以包括控制宏文件中的用于内存定位的Memmap Start宏以及Memap Stop宏;NV数据块配置表可以包括NVM协议文件中的NV数据块的大小、ID和名称;NV数据块配置表可以还包括链接脚本文件中的目标NV数据块的地址空间和运行地址。

NV数据块配置表可以用于记录整个自动配置的过程,将所有配置信息汇总生成一个配置表,将所有配置信息存记录在上述NV数据块配置表中。

本发明实施例一提供的一种NVM自动配置方法,首先解析NV数据块需求文件,获得NV数据块需求信息;然后根据所述NV数据块需求信息生成多个不同格式的配置文件;最终根据所述多个不同格式的配置文件生成NV数据块配置表。利用上述方法,实现NVM模块自动配置,有效解决手工配置方法中存在的工作量大,效率低等问题。

进一步的,解析NV数据块需求文件,获得NV数据块需求信息,包括:对所述NV数据块需求文件以文本格式进行读取,解析所述NV数据块需求文件中的每行数据,获得各NV数据块分别对应的需求信息;其中,一行数据对应一个NV数据块;将各NV数据块对应的需求信息分别进行实例化;将实例化后的所有NV数据块对应的需求信息合并在列表中;其中,需求信息包括:NV数据块的大小、名称和ID、NV数据块的写入条件和写入特征、擦除条件和调用条件。

在本实施例中,NV配置模块可以读取NV数据块需求文件,并可以将NV数据块需求文件中的需求信息实例化为NV数据块对象,用于后续生成各种不同格式的配置文件。

其中,NV数据块需求文件可以为.csv格式的文件,该文件读取后可以显示为一个excel表,该excel表中每一行对应一个NV数据块,表中的每一行可以包括对应的一个NV数据块的所有需求信息,按照表中的每行的顺序对每一行中的NV数据块进行解析。

将各NV数据块对应的需求信息分别进行实例化可以理解为,将表格中每行中的NV数据块进行解析后,实例化每个NV数据块对应的需求信息为Python软件中的一个字典中的一个词,即一个全局变量。

将所有实例化后的NV数据块对应的需求信息重新合并在excel表格中后,将所述表格提取到配置工具中。

进一步的,若配置文件为FEE模块配置文件,则根据NV数据块需求信息生成配置文件,可以包括:基于所述NV数据块的需求信息生成各NV数据块分别对应的FEE数据块的需求信息;根据所述FEE数据块的需求信息调用设定模板文件生成FEE模块配置文件;其中,FEE模块配置文件为.xdm格式文件。

其中,NVM配置模块可以基于NV数据块的需求信息,生成各NV数据块分别对应的FEE数据块的需求信息,可以理解为将NVM模块中的每个NV数据块的需求信息对应到FLASH空间的FEE模块,生成对应的FEE数据块的需求信息。

其中,设定模板文件可以为预先存储在非易失RAM管理器中的模板文件,将FEE数据块的需求信息按照模板文件的格式,将需求信息按照对应位置存储,得到.xdm格式的FEE模块配置文件。

需要说明的是,上述FEE模块配置文件为符合汽车开放系统架构(AUTomotiveOpen System ARchitecture,AUTOSAR)规范的文件,其中,AUTOSAR规范是一个开放化的、标准化的汽车嵌入式系统软件架构,AUTOSAR分层架构的高度抽象使得汽车嵌入式系统软硬件耦合度大大降低。

进一步的,基于NV数据块的需求信息生成各NV数据块分别对应的FEE数据块的需求信息,包括:根据各所述NV数据块需求信息,分配各所述NV数据块对应的FEE数据块的ID信息;对所述NV数据块名称添加设定的前缀或者后缀,得到对应的FEE数据块名称;根据所述NV数据块的大小以及附加数据的大小确定对应的FEE数据块的大小。

示例性的,通过遍历实例化后的NV数据块,可以计算出NV数据块的总数,并为每个NV数据块分配对应的FEE数据块的ID信息,其中,FEE数据块的ID信息不同于NV数据块的ID信息。

示例性的,得到FEE数据块名称可以通过在Python基础模块中,统一在所有生成的代码里将NV数据块名称添加一个前缀或后缀,得到对应的FEE数据块名称。

其中,NV数据块的大小可以由该NV数据块中包含的变量的多少决定,当一个NV数据块包含的变量个数多时,则说明该NV数据块大。可选的,附加数据可以包括一个字节的循环冗余校验(Cyclic Redundancy Check,CRC)数据和一个字节的header信息,用于表征该NV数据块的状态。在NV数据块大小的基础上加上附加数据的大小,可以得到对应的FEE数据块的大小。

进一步的,若所述配置文件为控制宏文件,则所述根据所述NV数据块需求信息生成配置文件,包括的内容为:遍历所述NV数据块,根据所述NV数据块的名称,生成对应的控制宏文件;其中,控制宏文件用于在进行工程编译时,优化所述NV数据块中的变量及定位所述NV数据块中变量的内存地址。

其中,控制宏文件可以为NV数据块对应的宏定义,每个宏定义都对应一个用于控制编译器的指令,根据宏定义可以确定NV数据块中变量的地址。

示例性的,优化所述NV数据块中的变量及定位所述NV数据块中变量的内存地址可以为,通过MemMap的方式将内部变量映射到受保护的内存中,实现优化保护,其中,优化保护和内存定位都是AUTOSAR规范的基本要求。

进一步的,若配置文件为FEE协议文件,则根据所述NV数据块需求信息生成配置文件,具体可以包括:获取计算机用户和当前时间,作为注释信息;根据所述FEE数据块的需求信息生成FEE模块配置代码及头文件,并将所述注释信息添加至所述FEE模块配置代码及头文件;所述FEE模块配置代码及头文件构成FEE协议文件。

其中,自动配置工具可以是.py格式的文件,需要点击.bat格式的脚本文件才可以运行.py格式的文件。通过读取当前运行脚本文件,可以得到运行当前脚本文件的计算机用户的名称以及当前时间,可以将读取到的信息作为注释信息。

遍历NV数据块,将NV数据块的需求信息转换为对应的FEE数据块的需求信息。具体的,将NV数据块需求文件中每行NV数据块的需求信息提取出来,解析成对应的属性信息,存储在FEE模块,得到对应的FEE数据块的需求信息,根据FEE数据块的需求信息生成FEE模块配置代码及头文件。

其中,注释信息可以包括计算机用户的信息,配置代码的版本信息和时间信息等,以便于后续追溯。生成FEE协议文件,可以用于后续进行工程编译生成运行文件。

进一步的,若配置文件为FEE协议文件,则根据所述NV数据块需求信息生成配置文件,具体可以包括的内容为:获取计算机用户和当前时间,作为注释信息;遍历所述NV数据块,生成每个所述NV数据块的操作句柄;基于所述操作句柄及需求信息对最终编译生成的地址信息进行分析,生成NVM模块配置代码及头文件;将所述注释信息添加至所述NVM模块配置代码及头文件;NVM模块配置代码及头文件构成NVM协议文件。

其中,NV数据块的操作句柄可以简单理解为操作指针,通过解析NV数据块的需求信息,生成每个NV数据块对应的操作句柄;同时可以根据NV数据块的读写属性,通过分析NV数据块最终编译生成的地址大小,生成NVM模块的配置C代码及头文件。

其中,生成NVM协议文件,可以用于后续进行工程编译生成运行文件。

进一步的,若所述配置文件为链接脚本文件,则所述根据所述NV数据块需求信息生成配置文件,具体包括:遍历所述NV数据块,根据每个所述NV数据块的大小以及各NV数据块校验码,生成所述NV数据块在存储器中的链接脚本文件。

示例性的,遍历NV数据块后,可以结合每个NV数据块的大小以及各NV数据块校验码,再根据编译器链接文件语法,生成NV数据块在RAM和ROM中地址的内存Layout链接文件,生成的链接脚本文件可以用于控制NV数据块中变量数据的最终存放位置。

具体的,各NV数据块校验码可以为各NV数据块在进行存储时,计算得到的CRC,其中,CRC为一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。校验码具有固定的大小,可以为十六进制的值。

需要说明的是,NV数据块是随机地址存储的,但是当NV数据块发生损坏时,需要通过校验机制判断NV数据块是否发生损坏。NV数据块在FLASH空间进行存储前计算出该NV数据块的CRC,然后将该NV数据块和计算出的CRC一起存储在FLASH空间,当下次上电后使用该NV数据块时再次计算CRC,再将该CRC与之前存储时计算的CRC进行对比,若两次计算的CRC相同,则可以确定该NV数据块没有损坏,可以继续使用,如果两次计算的CRC不同,可以确定该NV数据块已损坏,则将该NV数据块丢弃。

生成链接脚本文件还可以包括:结合NV数据块大小和校验码的大小,通过编译器链接文件语法,控制存储在NV数据块中的各变量初始值存储在FLASH空间中的内存Layout链接文件,用于在进行工程编译时,控制链接脚本文件存储NV数据块的变量初始值在FLASH空间中的具体位置。

其中,NV数据块的变量初始值需要在ROM空间进行存储,因此,需要通过链接脚本文件进行空间申请和地址定位。.lsl.格式的链接脚本文件可以用于向编译器描述上述NV数据块的变量初始值所要申请的ROM空间的属性,具体存储的地址可以由编译器决定。

可选的,在NV数据块未从EEPROM或者FLASH模拟EEPROM中读取时,首先使用存储在FLASH中的NV数据块中变量的默认值作为变量值。当EEPROM或FLASH模拟EEPROM中的NV数据校验不通过时,说明该NV数据块发生损坏,自动切换为存储在FLASH中的NV数据块中变量的默认值,以保证软件运行的安全性不会受到错误NV数据块的影响。

实施例二

图2为本发明实施例二提供的一种NVM自动配置方法的流程概括示意图,如图2所示:首先获取NVM_Cfg.csv,然后得到NVM配置文件生成工具即自动配置工具,最后生成不同格式的文件。

其中,NVM_Cfg.csv:解析NV数据块需求文件;

其中,Fee.xdm:根据NV数据块需求信息生成对应的FEE模块配置文件;

其中,MemMap.h:生成NV数据块对应的Memmap内存Layout控制宏;

其中,NvM.lsl:结合NV数据块大小以及编译器链接文件语法生成NV数据块在RAM中的内存Layout链接脚本文件。

其中,NvM_ROM.lsl:结合NV数据块大小以及各NV数据块校验码的大小结合编译器链接文件语法,控制存储在NV数据块中的各NV数据块的变量初始值存储在F LASH中的内存Layout链接脚本文件。

其中,Fee_PBCfg.c、Fee_Cfg.h:FLASH模拟EEPROM。用于定义各NV数据块对应在FLASH模拟EEPROM中的数据块和校验码,及读写操作方式。

其中,NvM_Cfg_Auto.h、NvM_Cfg_Auto.c:NVM协议栈的配置C代码及头文件,用于定义各NV数据块的操作ID宏定义、NV数据块大小、读写方式、校验方式、擦除方式以及异常情况处理方式。

其中,NVM_MemMapMacro.csv:NV数据块配置报告,用于汇总说明当前工程中所有的NV数据块的可用大小、名称、用于内存定位的Memmap Start宏以及Memmap Stop宏。

示例性的,图3为本发明实施例二提供的一种NVM自动配置方法的示例流程示意图,如图3所示,本实施例提供的一种NVM自动配置方法,包括如下内容:首先解析

包括如下步骤:首先NVM_Cfg.csv文件即NV数据块需求文件,获取NV数据块的需求信息,其次根据NV数据块需求生成FEE模块配置文件,然后根据NV数据块名称分配MemMapLayout控制宏,之后生成FEE软件协议栈的配置C代码及头文件,生成NVM协议栈的配置C代码及头文件,生成NV数据块的链接脚本文件,最后生成NV数据块信息表。

上述步骤的具体过程描述如下:

步骤一、读取NVM_Cfg.csv文件,并将NVM_Cfg.csv文件中的需求信息实例化为NV数据块对象用于后续生成各种不同格式的配置文件。具体步骤包括:

1)将NVM_Cfg.csv文件以文本格式读取;

2)按行将NVM_Cfg.csv文件中的NV数据块进行解析,每行内存包含一个独立的NV数据块信息;

3)将NV数据块的需求信息解析后,实例化每个NV数据块为Python中的一个独立对象即一个全局变量;

4)将所有实例化后的NV数据块的需求信息合并在NVM_Cfg.csv文件的列表中。

步骤二、根据NV数据块的需求信息生成符合AUTOSAR规范的FEE模块配置文件。具体步骤包括:

1)遍历NV数据块实例,计算出NV数据块的总数,并分配每个NV数据块对应的FEE数据块的ID信息;

2)根据NV数据块名称计算对应的FEE数据块名称;

3)根据NV数据块大小,结合NVM协议栈所需要额外增加的附加数据,计算对应的FEE数据块大小;

4)根据配置工具中的设定模版文件生成FEE模块的.xdm格式的配置文件。

步骤三、为每个NV数据块生成对应向AUTOSAR标志MemMap Layout控制宏,用于后续自动定位NV数据块中变量的内存地址。具体步骤为:

1)遍历NV数据块,根据NV数据块的名称,生成对应的宏定义,每个宏定义都对应一个用于控制编译器的指令,用于在编译代码时对定义在NV数据块中的变量进行优化保护以及内存定位。

步骤四、生成FEE软件协议栈的配置C代码及头文件。具体步骤包括:

1)读取当前运行脚本的计算机用户以及当前时间,即获取计算机用户和当前时间;

2)遍历NV数据块,根据NV数据块需求信息,转换为对应的FEE数据块的需求信息,生成对应的FEE模块配置C代码及头文件;

3)在生成的头文件中加入注释信息,说明生成文件的时间以及生成者用于后续追溯。

步骤五、生成NVM协议栈的配置C代码及头文件。具体步骤包括:

1)读取当前运行脚本的计算机用户以及当前时间,即获取计算机用户和当前时间;

2)遍历NV数据块,生成每个NV数据块的操作句柄。同时根据NV数据块的读写属性等信息,分析NV数据块最终编译生成的地址大小,生成NVM模块配置C代码及头文件;

3)在生成的文件中加入注释信息,说明生成文件的时间以及生成者用于后续追溯。

步骤六、生成NVM变量链接脚本文件即生成NV数据块在存储器中的链接脚本文件,用于控制NV数据块中变量的最终存放位置。具体步骤为:

1)遍历NV数据块,根据每个NV数据块的需求信息,生成用于控制NV数据块中变量在RAM和ROM中地址的链接脚本文件。

步骤七、生成NV数据块信息表。

本实施例提供的一种NVM自动配置方法,仅需要需求使用方填写最基本你的NV数据块需求信息,即可自动生成NVM软件所述的所有代码、配置文件以及RAM、FLASH的内存Layout链接脚本文件,同时自动为每个NV数据块分配合理的RAM空间和FLASH空间。利用上述方法,可以实现NVM软件自动配置,在NV数据块发生变更时,可以自动完成配置,减少了手动配置的工作量,有效解决了NVM手动配置时不宜维护的问题。

实施例三

图4为本发明实施例三提供的一种NVM自动配置装置的结构示意图,该装置可适用对非易失RAM管理器中的NVM模块进行配置的情况,其中该装置可由软件和/或硬件实现,并一般集成在计算机设备上。

如图4所示,该装置包括:

NV数据块需求信息获取模块410,用于根据NV数据块需求信息,得到NV数据块需求文件,解析所述NV数据块需求文件,确定所述NV数据块的属性信息;

配置文件生成模块420,用于根据所述NV数据块需求信息,配置工具生成不同格式的文件;

配置表生成模块430,用于根据所述不同文件中包括的NV数据库配置报告、NVM模块配置代码和配置文件,生成对应的NV数据块信息表。

在本实施例中,该装置首先通过NV数据块需求信息获取模块用于根据NV数据块需求信息,得到NV数据块需求文件,解析所述NV数据块需求文件,确定所述NV数据块的属性信息;其次通过配置文件生成模块用于根据所述NV数据块需求信息,配置工具生成不同格式的文件;最后通过配置表生成模块用于根据所述不同文件中包括的NV数据库配置报告、NVM模块配置代码和配置文件,生成对应的NV数据块信息表。

本实施例提供了一种NVM自动配置装置,能够实现NVM模块自动配置,有效解决手工配置方法中存在的工作量大,效率低等问题。

进一步的,NV数据块需求信息获取模块410,具体用于对所述NV数据块需求文件以文本格式进行读取,解析所述NV数据块需求文件中的每行数据,获得各NV数据块分别对应的需求信息;其中,一行数据对应一个NV数据块;将各NV数据块对应的需求信息分别进行实例化;将实例化后的所有NV数据块对应的需求信息合并在列表中;

其中,需求信息包括:NV数据块的大小、名称和ID、NV数据块的写入条件和写入特征、擦除条件和调用条件。

进一步的,若配置文件为FEE模块配置文件,则配置文件生成模块420,具体用于:基于所述NV数据块的需求信息生成各NV数据块分别对应的FEE数据块的需求信息;根据所述FEE数据块的需求信息调用设定模板文件生成FEE模块配置文件;其中,FEE模块配置文件为.xdm格式文件。

进一步的,FEE数据块需求信息生成模块,用于根据各所述NV数据块需求信息,分配各所述NV数据块对应的FEE数据块的ID信息;对所述NV数据块名称添加设定的前缀或者后缀,得到对应的FEE数据块名称;根据所述NV数据块的大小以及附加数据的大小确定对应的FEE数据块的大小。

进一步的,若所述配置文件为控制宏文件,则配置文件生成模块420,具体用于:遍历所述NV数据块,根据所述NV数据块的名称,生成对应的控制宏文件;其中,控制宏文件用于在进行工程编译时,优化所述NV数据块中的变量及定位所述NV数据块中变量的内存地址。

进一步的,若所述配置文件为FEE协议文件,则配置文件生成模块420,具体用于:获取计算机用户和当前时间,作为注释信息;根据所述FEE数据块的需求信息生成FEE模块配置代码及头文件,并将所述注释信息添加至所述FEE模块配置代码及头文件;所述FEE模块配置代码及头文件构成FEE协议文件。

进一步的,若所述配置文件为NVM协议文件,则配置文件生成模块420,具体用于:获取计算机用户和当前时间,作为注释信息;遍历所述NV数据块,生成每个所述NV数据块的操作句柄;基于所述操作句柄及需求信息对最终编译生成的地址信息进行分析,生成NVM模块配置代码及头文件;将所述注释信息添加至所述NVM模块配置代码及头文件;NVM模块配置代码及头文件构成NVM协议文件。

上述NVM自动配置装置可执行本发明任意实施例所提供的NVM自动配置方法,具备执行方法相应的功能模块和有益效果。

实施例四

图5为本发明实施例四提供的一种计算机设备的结构示意图。如图5所示,本发明实施例四提供的计算机设备包括:一个或多个处理器51和存储装置52;该电子控制器设备中的处理器51可以是一个或多个,图5中以一个处理器51为例;存储装置52用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器51执行,使得所述一个或多个处理器51实现如本发明实施例中任一项所述的NVM自动配置方法方法。

所述计算机设备还可以包括:输入装置53和输出装置54。

计算机设备中的处理器51、存储装置52、输入装置53和输出装置54可以通过总线或其他方式连接,图5中以通过总线连接为例。

该计算机设备中的存储装置52作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一或二所提供NVM自动配置方法对应的程序指令/模块(例如,附图4所示的NVM自动配置装置中的模块,包括:NV数据块需求信息获取模块410、配置文件生成模块420和配置表生成模块430)。处理器51通过运行存储在存储装置52中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例中的NVM自动配置方法。

存储装置52可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储装置52可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置52可进一步包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置53可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。

并且,当上述计算机设备所包括一个或者多个程序被所述一个或者多个处理器51执行时,程序进行如下操作:

解析NV数据块需求文件,获得NV数据块需求信息;

根据所述NV数据块需求信息生成多个不同格式的配置文件;

根据所述多个不同格式的配置文件生成NV数据块配置表。

实施例五

本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行NVM自动配置方法,该方法包括:

解析NV数据块需求文件,获得NV数据块需求信息;

根据所述NV数据块需求信息生成多个不同格式的配置文件;

根据所述多个不同格式的配置文件生成NV数据块配置表。

可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的NVM自动配置方法。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种NVM自动配置方法、装置和设备
  • 自动测试设备资源配置方法与自动测试通道配置装置
技术分类

06120112218682