CN116991758A - 一种空间布局的更新方法、装置、设备及介质 - Google Patents
一种空间布局的更新方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116991758A CN116991758A CN202311236986.8A CN202311236986A CN116991758A CN 116991758 A CN116991758 A CN 116991758A CN 202311236986 A CN202311236986 A CN 202311236986A CN 116991758 A CN116991758 A CN 116991758A
- Authority
- CN
- China
- Prior art keywords
- information point
- memory
- data
- body data
- storage address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000015654 memory Effects 0.000 claims abstract description 399
- 238000000547 structure data Methods 0.000 claims description 185
- 238000012545 processing Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 16
- 238000002910 structure generation Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 239000004744 fabric Substances 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 91
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机科学与技术领域,公开了一种空间布局的更新方法、装置、设备及介质,可以获取至少一个JSON配置文件,对每个JSON配置文件执行空间分配处理以生成至少一个结构体数据,并发送至存储器管理模块,由存储器管理模块对存储器执行初始化操作,更新存储器的空间布局。而无需在需要对存储器中的空间布局进行更新时,对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
Description
技术领域
本发明涉及计算机科学与技术领域,具体涉及一种空间布局的更新方法、装置、设备及介质。
背景技术
在服务器的应用过程中,存在一些不期望随着操作***版本升级而丢失的参数,比如风扇的默认调控参数和用户密码规则参数。
现有技术一般将上述参数的参数值存储在存储器中。具体的,开发人员可以在操作***的代码中定义上述参数对应的信息点(包括参数名、参数值和占用字节数)以及相应的存储地址。服务器可以在安装好操作***以及首次运行操作***时对存储器进行初始化,根据信息点将参数值存储到存储器中的相应位置。
但是,当需要更新存储器中的空间布局时,比如要对存储器中存储的某些参数值的字段进行扩充或缩减,开发人员需相应修改操作***的代码并更新服务器中的操作***。其中,服务器需在更新好操作***以及重启后,才能启动对存储器空间布局的更新,而服务器在操作***更新和重启时会停止运行,影响运行性能。
发明内容
有鉴于此,本发明提供了一种空间布局的更新方法、装置、设备及介质,以解决影响运行性能的问题。
第一方面,本发明提供了一种空间布局的更新方法,包括:
结构体生成模块获取至少一个JSON配置文件,每个所述JSON配置文件包括版本标识和至少一个信息点;
所述结构体生成模块对每个所述JSON配置文件执行空间分配处理,并生成至少一个结构体数据;其中,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
所述结构体生成模块将所述至少一个结构体数据传输至存储器管理模块,以使所述存储器管理模块根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作并更新所述存储器的空间布局。
在一种可选的实施方式中,所述对每个所述JSON配置文件执行空间分配处理,并生成至少一个结构体数据,包括:
将所述JSON配置文件输入至CJSON库执行信息转换处理,并生成第一树状结构数据;
根据所述第一树状结构数据,生成第一结构体数据;
返回执行所述将所述JSON配置文件输入至CJSON库执行信息转换处理的步骤,直至完成对所述至少一个JSON配置文件的信息转换处理,并生成所述至少一个结构体数据。
在一种可选的实施方式中,所述第一树状结构数据包括所述JSON配置文件中的所述版本标识和所述至少一个信息点;所述根据所述第一树状结构数据,生成第一结构体数据,包括:
从所述第一树状结构数据中提取出所述版本标识和所述至少一个信息点;
根据提取出的所述至少一个信息点,生成所述至少一个起始存储地址;
将提取出的所述版本标识、所述至少一个信息点和生成的所述至少一个起始存储地址进行组合,并生成所述第一结构体数据。
在一种可选的实施方式中,所述第一树状结构数据中的每个所述信息点包括占用字节数,所述至少一个信息点中包括第一信息点、第二信息点和第三信息点;所述根据提取出的所述至少一个信息点,生成所述至少一个起始存储地址,包括:
将预设的第一取值设置为所述第一信息点对应的第一起始存储地址;
计算所述第一信息点中的占用字节数与所述第一起始存储地址的和值,并确定为所述第二信息点对应的第二起始存储地址;
计算所述第二信息点中的占用字节数与所述第二起始存储地址的和值,并确定为所述第三信息点对应的第三起始存储地址。
在一种可选的实施方式中,在所述将预设的第一取值设置为所述第一信息点对应的第一起始存储地址之后,所述方法还包括:
根据所述第一信息点中的占用字节数和所述第一起始存储地址,确定所述第一信息点对应的第一地址区间;
根据所述第二信息点中的占用字节数和所述第二起始存储地址,确定所述第二信息点对应的第二地址区间;
若所述第一地址区间与所述第二地址区间相重叠,则确定所述第二信息点的起始地址计算流程出错,以及输出相应的错误提示。
在一种可选的实施方式中,所述至少一个结构体数据中包括所述第一结构体数据和第二结构体数据;在所述根据所述第一树状结构数据,生成第一结构体数据之后,所述方法还包括:
若所述第一结构体数据与所述第二结构体数据为重复数据,则删除所述第一结构体数据或所述第二结构体数据。
在一种可选的实施方式中,所述若所述第一结构体数据与所述第二结构体数据为重复数据,则删除所述第一结构体数据或所述第二结构体数据,包括:
若第一信息点相关信息与第二信息点相关信息相同,则确定所述第一结构体数据与所述第二结构体数据为重复数据;其中,所述第一信息点相关信息包括所述第一结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,所述第二信息点相关信息包括所述第二结构体数据中的所述至少一个信息点和所述至少一个起始存储地址;
删除所述第一结构体数据或所述第二结构体数据。
在一种可选的实施方式中,所述删除所述第一结构体数据或所述第二结构体数据,包括:
在第一版本标识和第二版本标识中确定出在先版本标识;其中,所述第一版本标识为所述第一结构体数据中的所述版本标识,所述第二版本标识为所述第二结构体数据中的所述版本标识;
在所述第一结构体数据和所述第二结构体数据中,删除包括所述在先版本标识的结构体数据。
在一种可选的实施方式中,在所述生成第一结构体数据之后,所述方法还包括:
构建用于向所述存储器管理模块传输所述第一结构体数据的接口。
第二方面,本发明提供了一种空间布局的更新方法,所述方法包括:
所述存储器管理模块获取来自结构体生成模块的至少一个结构体数据;其中,所述至少一个结构体数据为所述结构体生成模块在获取至少一个JSON配置文件后对每个所述JSON配置文件执行空间分配处理所生成,每个所述JSON配置文件包括版本标识和至少一个信息点,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
所述存储器管理模块根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作,并更新所述存储器的空间布局。
在一种可选的实施方式中,所述根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作,包括:
从所述至少一个结构体数据中确定出最新版本标识以及包括所述最新版本标识的最新结构体数据;
获取所述存储器中保存的目标版本标识,所述目标版本标识与所述存储器的当前空间布局对应;
确定所述最新版本标识与所述目标版本标识是否相同的判断结果;
根据所述判断结果,以及根据所述最新结构体数据中的所述最新版本标识、所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作。
在一种可选的实施方式中,所述根据所述判断结果,以及根据所述最新结构体数据中的所述最新版本标识、所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
当所述判断结果为不相同时,将所述存储器中保存的所述目标版本标识更新为所述最新版本标识,以及在所述至少一个结构体数据中查找是否存在与所述目标版本标识相同的第三版本标识;
若是,则根据所述第三版本标识,以及所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作;
若否,则根据所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作。
在一种可选的实施方式中,所述根据所述第三版本标识,以及所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
从所述至少一个结构体数据中确定出包括所述第三版本标识的第三结构体数据;
根据所述第三结构体数据和所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作。
在一种可选的实施方式中,所述最新结构体数据中包括第四信息点和相应的第四起始存储地址,所述第三结构体数据和所述最新结构体数据的每个所述信息点中包括信息点标识;
所述根据所述第三结构体数据和所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
根据所述第四信息点中的所述信息点标识,在所述第三结构体数据的所述至少一个信息点中查找是否存在第五信息点;其中,所述第五信息点与所述第四信息点中的所述信息点标识相同;
若是,则根据所述第四信息点、所述第四起始存储地址和所述第五信息点,对所述存储器执行初始化操作;
若否,则根据所述第四信息点和所述第四起始存储地址对所述存储器执行初始化操作。
在一种可选的实施方式中,所述第四信息点中还包括占用字节数和第一参数值,所述第五信息点中还包括第二参数值;所述根据所述第四信息点、所述第四起始存储地址和所述第五信息点,对所述存储器执行初始化操作,包括:
将所述第四信息点中的所述第一参数值更新为所述第二参数值,以及得到更新后的第四信息点;
根据所述第四起始存储地址和所述更新后的第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
将所述更新后的第四信息点中的所述第二参数值写入所述第一存储空间。
在一种可选的实施方式中,所述第四信息点中还包括占用字节数和第一参数值;所述根据所述第四信息点和所述第四起始存储地址对所述存储器执行初始化操作,包括:
根据所述第四起始存储地址和所述第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
将所述第一参数值写入所述第一存储空间。
在一种可选的实施方式中,所述最新结构体数据中包括第四信息点和相应的第四起始存储地址,所述第四信息点中包括占用字节数和第一参数值;
所述根据所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
将所述存储器中存储的至少一个参数值分别改写为预设参数值;
根据所述第四起始存储地址和所述第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
将所述第一参数值写入所述第一存储空间。
在一种可选的实施方式中,所述最新结构体数据中包括第四信息点和相应的第四起始存储地址,所述第四信息点中包括占用字节数和第一参数值;
所述根据所述判断结果,以及根据所述最新结构体数据中的所述最新版本标识、所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
当所述判断结果为相同时,根据所述第四起始存储地址和所述第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
根据所述第一参数值,对所述第一存储空间中保存的参数值进行初始化操作。
在一种可选的实施方式中,所述根据所述第一参数值,对所述第一存储空间中保存的参数值进行初始化操作,包括:
在确定所述第一存储空间中保存的参数值为预设参数值或非法值的情况下,将所述第一存储空间中保存的所述预设参数值更新为所述第一参数值。
第三方面,本发明提供了一种空间布局的更新装置,所述装置包括:
第一获取模块,用于获取至少一个JSON配置文件,每个所述JSON配置文件包括版本标识和至少一个信息点;
第一处理模块,用于对每个所述JSON配置文件执行空间分配处理,并生成至少一个结构体数据;其中,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
第一传输模块,用于将所述至少一个结构体数据传输至存储器管理模块,以使所述存储器管理模块根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作并更新所述存储器的空间布局。
第四方面,本发明提供了一种空间布局的更新装置,所述装置包括:
第二获取模块,用于获取来自结构体生成模块的至少一个结构体数据;其中,所述至少一个结构体数据为所述结构体生成模块在获取至少一个JSON配置文件后对每个所述JSON配置文件执行空间分配处理所生成,每个所述JSON配置文件包括版本标识和至少一个信息点,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
初始化操作模块,用于根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作,并更新所述存储器的空间布局。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的空间布局的更新装置。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的空间布局的更新装置。
本发明提出的空间布局的更新方法、装置、设备及介质,可以获取至少一个JSON配置文件,对每个JSON配置文件执行空间分配处理以生成至少一个结构体数据,并发送至存储器管理模块,由存储器管理模块对存储器执行初始化操作,更新存储器的空间布局。而无需在需要对存储器中的空间布局进行更新时,对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的空间布局的更新方法的流程示意图之一;
图2是根据本发明实施例的空间布局的更新方法的流程示意图之二;
图3是根据本发明实施例的空间布局的更新方法的流程示意图之三;
图4是根据本发明实施例的空间布局的更新方法的流程示意图之四;
图5是根据本发明实施例的空间布局的更新方法的流程示意图之五;
图6是根据本发明实施例的空间布局的更新方法的流程示意图之六;
图7是根据本发明实施例的空间布局的更新装置的结构示意图之一;
图8是根据本发明实施例的空间布局的更新装置的结构示意图之二;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提出一种空间布局的更新方法,可以在需要对存储器的空间布局进行更新时,无需修改服务器操作***的软件代码,通过获取JSON配置文件、对该文件执行空间分配处理并生成结构体数据,将结构体数据发送至存储器管理模块执行对存储器空间布局的更新,可以提高对存储器空间布局的更新效率。
如图1所示,本实施例提出第一种空间布局的更新方法,该方法可以包括以下步骤:
S101、结构体生成模块获取至少一个JSON配置文件,每个JSON配置文件包括版本标识和至少一个信息点。
需要说明的是,本实施例可以应用于结构体生成模块。结构体生成模块可以设置在某个电子设备上,比如可以设置在手机、服务器、平板电脑或者台式电脑上。
其中,版本标识为存储器空间布局的版本标识。一个版本标识即可以对应存储器的一种空间布局方案。
可选的,版本标识可以包括字母、数字和符号中的至少一种。
其中,每个信息点均可以包括参数名、参数值和占用字节数。参数名即为信息点标识,用于唯一标识信息点。占用字节数即为参数值在存储器的存储空间中所占用的字节数。
可以理解的是,一个JSON配置文件即对应存储器的一种空间布局方案。开发人员可以在JSON配置文件中设置版本标识和至少一个信息点。
具体的,本实施例可以由不同开发人员同时编辑不同的JSON配置文件。比如,第一开发人员编辑第一JSON配置文件,第二开发人员编辑第二JSON配置文件。本实施例可以接收由不同开发人员编辑好的至少一个JSON配置文件,并根据该至少一个JSON配置文件来对存储器的空间布局进行更新。
S102、结构体生成模块对每个JSON配置文件执行空间分配处理,并生成至少一个结构体数据。其中,每个结构体数据包括JSON配置文件中的版本标识和至少一个信息点,以及与至少一个信息点一一对应的至少一个起始存储地址。
具体的,结构体数据可以由一系列的C代码或C++代码构成。
具体的,本实施例可以分别对每个JSON配置文件执行空间分配处理,生成与各个JSON配置文件一一对应的结构体数据。比如,本实施例对第一JSON配置文件执行空间分配处理,可以生成第一结构体数据。再比如,本实施例对第二JSON配置文件执行空间分配处理,可以生成第二结构体数据。
具体的,本实施例在对任一JSON配置文件执行空间分配处理时,可以将JSON配置文件中JSON格式的版本标识和各个信息点转换成相应的C代码,并分据转换后的各个信息点生成相应的各个起始存储地址,之后将转换后的版本标识、各个信息点以及生成的各个起始存储地址组合,生成相应的结构体数据。
需要说明的是,本实施例在执行空间分配处理时,可以根据JSON配置文件生成与各个信息点一一对应的各个起始存储地址,结合起始存储地址以及信息点中的占用字节数,即可以确定信息点中的参数值在存储器中的存储空间,实现对存储器空间布局的规划。
S103、结构体生成模块将至少一个结构体数据传输至存储器管理模块,以使存储器管理模块根据版本标识、至少一个信息点和至少一个起始存储地址对存储器执行初始化操作并更新存储器的空间布局。
具体的,结构体生成模块可以在生成上述至少一个结构体数据后,将该至少一个结构体数据传输至存储器管理模块。
其中,存储器可以为带电可擦可编程只读存储器(Electrically ErasableProgrammable read only memory,EEPROM),也可以为其他类型的存储器,本实施例对于存储器的具体类型不作限定。
具体的,存储器管理模块可以设置在某个电子设备中。
可选的,存储器管理模块与结构体生成模块可以设置在同一电子设备中。比如,存储器管理模块与结构体生成模块可以设置在服务器中。
可选的,存储器管理模块与结构体生成模块可以设置在不同电子设备上。
具体的,存储器管理模块可以用于在接收到结构体生成模块传输的至少一个结构体数据时,根据该至少一个结构体数据对存储器执行初始化操作,以对存储器中的空间布局进行更新。需要说明的是,该存储器即为用于存储服务器的相关参数值的存储器。
具体的,存储器管理模块可以用于在接收到结构体生成模块传输的至少一个结构体数据,以及在接收到对存储器的初始化指令时,根据该至少一个结构体数据对存储器执行初始化操作,以对存储器中的空间布局进行更新。
其中,初始化指令可以是由用户直接输入存储器管理模块,也可以是用户通过电子设备输入存储器管理模块。
可选的,当存储器管理模块设置在服务器中时,服务器可以在接收到对存储器的初始化指令时,指令存储器管理模块执行对存储器的初始化操作。
具体的,存储器管理模块可以用于根据某个或多个结构体数据中的版本标识、各个信息点和各个起始存储地址,对存储器执行初始化操作,以对存储器中的空间布局进行更新。
需要说明的是,当出现需要对存储器中的空间布局进行更新时,比如要对存储器中存储的某些参数值的字段进行扩充或缩减,再比如要在存储器中新增存储某些参数值,再比如要在存储器中调整某些参数值的存储空间,本实施例可以获取由开发人员编辑的至少一个JSON配置文件,对每个JSON配置文件执行空间分配处理以生成至少一个结构体数据,并发送至存储器管理模块,由存储器管理模块根据该至少一个结构体数据对存储器执行初始化操作,更新存储器的空间布局。而无需对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
还需要说明的是,本实施例将开发人员配置好JSON配置文件后,可以将JSON配置文件中的相关信息转换为相应的结构体数据即一系列的C代码,提升对信息存储的稳定性,避免在对存储器中空间布局进行更新时可能存在的错乱问题。相对于相关技术将配置文件保存在服务器的文件***中的方式,在一定程度上减少因文件***损坏或文件保留错误导致信息丢失的问题。
还需要说明的是,本实施例仅需开发人员配置相应的JSON配置文件即可,可以有效减少开发人员的工作量,降低人力资源消耗和开发成本。
本实施例提出的空间布局的更新方法,可以获取至少一个JSON配置文件,对每个JSON配置文件执行空间分配处理以生成至少一个结构体数据,并发送至存储器管理模块,由存储器管理模块对存储器执行初始化操作,更新存储器的空间布局。而无需在需要对存储器中的空间布局进行更新时,对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
基于图1,如图2所示,本实施例提出第二种空间布局的更新方法,在该方法中,步骤S102可以包括步骤S201、S202和S203。其中:
S201、将JSON配置文件输入至CJSON库执行信息转换处理,并生成第一树状结构数据。
具体的,CJSON库可以将JSON配置文件中的版本标识和各个信息点转换成相应的树状结构数据,即第一树状结构数据。
具体的,第一树状结构数据中可以包括JSON配置文件中的版本标识和各个信息点。
S202、根据第一树状结构数据,生成第一结构体数据。
具体的,本实施例可以提取出第一树状结构数据中的版本标识和各个信息点并进行组合,生成相应的结构体数据即第一结构体数据。
需要说明的是,本实施例通过CJSON库对JSON配置文件进行信息转换处理,继而生成第一结构体数据,可以有效保障第一结构体数据的生成,并有效提高第一结构体数据的生成效率。
S203、返回执行将JSON配置文件输入至CJSON库执行信息转换处理的步骤,直至完成对至少一个JSON配置文件的信息转换处理,并生成至少一个结构体数据。
需要说明的是,本实施例引入CJSON库对JSON配置文件进行空间分配处理和遍历,可以有效提高代码运行效率,相对于使用JSONC库,本实施例可以降低处理难度,有效避免JSONC库中因引用计数使用不当而未能及时释放内存空间导致的内存泄漏、段错误等稳定性问题,提高代码健壮性和运行效率。
具体的,本实施例可以在根据一个JSON配置文件生成相应的第一结构体数据后,再根据下一个JSON配置文件来生成相应的第一结构体数据,直至生成各个JSON配置文件对应的第一结构体数据,即生成上述至少一个结构体数据。
本实施例提出的空间布局的更新方法,可以有效保障第一结构体数据的生成,并有效提高第一结构体数据的生成效率。
基于图2,本实施例提出第三种空间布局的更新方法,在该方法中,第一树状结构数据包括JSON配置文件中的版本标识和至少一个信息点。此时,步骤S202可以包括:
S2021、从第一树状结构数据中提取出版本标识和至少一个信息点。
具体的,本实施例可以在生成第一树状结构数据后,从第一树状结构数据中提取出版本标识和各个信息点。
S2022、根据提取出的至少一个信息点,生成至少一个起始存储地址。
具体的,本实施例可以分别根据提取出的各个信息点,生成相应的起始存储地址。
可选的,第一树状结构数据中的每个信息点包括占用字节数,至少一个信息点中包括第一信息点、第二信息点和第三信息点。此时,步骤S2022可以包括:
将预设的第一取值设置为第一信息点对应的第一起始存储地址。
计算第一信息点中的占用字节数与第一起始存储地址的和值,并确定为第二信息点对应的第二起始存储地址。
计算第二信息点中的占用字节数与第二起始存储地址的和值,并确定为第三信息点对应的第三起始存储地址。
需要说明的是,每个信息点中的占用字节数,可以由开发人员在配置JSON配置文件中的信息点时进行设置。
其中,第一信息点、第二信息点和第三信息点为互不相同的信息点。
其中,第一取值可以为0。本实施例可以从0开始,根据各个信息点的占用字节数为各个信息点分配起始存储地址。
具体的,本实施例可以将0确定为第一信息点对应的起始存储地址,即第一起始存储地址。
具体的,本实施例可以将第一信息点中的占用字节数与第一起始存储地址的和值,确定为第二信息点对应的第二起始存储地址。之后,将第二信息点中的占用字节数与第二起始存储地址的和值,确定为第三信息点对应的第三起始存储地址。
可以理解的是,第一信息点、第二信息点与第三信息点所对应的存储空间是连续的。
可选的,除了第一信息点、第二信息点和第三信息点,上述至少一个信息点还可以包括更多数量的信息点。此时,本实施例同样可以根据上述的起始存储地址分配方式,依次为各个信息点分配起始存储地址,并实现对各个信息点在存储器中占用的存储空间的分配,完成对各个信息点在存储器中的空间布局。可以理解的是,各个信息点在存储器中对应的存储空间是连续的,避免在存储时跳过存储器中的某些存储空间,有效保障对存储器中存储空间的利用率。
需要说明的是,相关技术在操作***的代码中定义参数对应的信息点时以对存储器的空间布局进行设计或更新时,是由开发人员来指定和定义信息点对应起始存储地址或者地址区间,当不同开发人员参与开发时,可能会出现同时使用同一个或存在重叠内存单元的情况。此时,存储器中两个本不相同的单元会出现交叉和重叠,存在内存被覆盖或越界的风险。且,该相关技术的管理比较困难,当存在多人员开发的时候,很多开发人员为了避免内存空间冲突或重叠,可能会跳过某些空间进行内存分配或直接跳到下一页进行分配,造成对存储器的存储空间的浪费,并且技术人员对于这部分存储空间不会轻易使用到导致存储空间利用率的降低。
而本实施例支持多个开发人员并行配置和开发出不同的JSON配置文件,在JSON配置文件中定义信息点标识和占用字节数,无需考虑地址分配问题,即无需指定起始存储地址和地址区间,本实施例可以在生成相应结构体数据的过程中生成各个信息点对应的起始存储地址,实现对起始存储地址和地址区间的智能分配以及连续性分配,提高对存储器存储资源的利用率,并可以自动进行版本合并和结构体数据合并,有效提高开发效率。
还需要说明的是,本实施例可以通过存储器管理模块提高对存储器的管理效率,使得多个开发人员并行开发JSON配置文件,并可以通过对起始存储地址和地址区间的智能分配,有效规避存储器中可能出现的内存重叠和冲突的问题,有效保障存储器相关软件代码的健壮性。
S2023、将提取出的版本标识、至少一个信息点和生成的至少一个起始存储地址进行组合,并生成第一结构体数据。
具体的,本实施例可以将从第一树状结构数据中提取出的版本标识和各个信息点,以及各个信息点对应的起始存储地址进行组合,生成第一结构体数据。
可选的,在本实施例提出的其他空间布局的更新方法中,在上述步骤S2021之后,还可以包括:
根据第一信息点中的占用字节数和第一起始存储地址,确定第一信息点对应的第一地址区间。
根据第二信息点中的占用字节数和第二起始存储地址,确定第二信息点对应的第二地址区间。
若第一地址区间与第二地址区间相重叠,则确定第二信息点的起始地址计算流程出错,以及输出相应的错误提示。
具体的,本实施例每生成一个信息点的起始存储地址后,即根据该起始存储地址和该信息点中的占用字节数确定该信息点对应的地址区间。并将该信息点对应的地址区间与已生成的其他信息点对应的地址区间进行比较,确定该信息点的地址区间与其他信息点对应的地址区间是否相重叠。若是,则可以确定该信息点的起始存储地址计算流程或者相关计算过程出错,输出相应的错误提示,以便技术人员能及时解决相关问题,保障起始存储地址的分配准确性以及可靠性。若否,则不能确定该信息点的起始存储地址计算流程或者相关计算过程出错。
本实施例提出的空间布局的更新方法,可以依次为各个信息点分配起始存储地址,实现对各个信息点在存储器中占用的存储空间的分配,完成对各个信息点在存储器中的空间布局。
基于图2,本实施例提出第四种空间布局的更新方法,上述至少一个结构体数据中包括第一结构体数据和第二结构体数据。在根据第一树状结构数据,生成第一结构体数据之后,方法还包括:
若第一结构体数据与第二结构体数据为重复数据,则删除第一结构体数据或第二结构体数据。
具体的,本实施例可以在生成某个结构体数据时,即将该结构体数据分别与已生成的各个结构体数据进行比较,确定该结构体数据是否与其他结构体数据为重复数据。若是,则可以删除互为重复数据的两个结构体数据中的一个。若否,则无需进行删除操作。
具体的,如果确定第一结构体数据与第二结构体数据为重复数据,则需删除第一结构体数据和第二结构体数据中的一个。
可选的,上述若第一结构体数据与第二结构体数据为重复数据,则删除第一结构体数据或第二结构体数据,包括:
若第一信息点相关信息与第二信息点相关信息相同,则确定第一结构体数据与第二结构体数据为重复数据。其中,第一信息点相关信息包括第一结构体数据中的至少一个信息点和至少一个起始存储地址,第二信息点相关信息包括第二结构体数据中的至少一个信息点和至少一个起始存储地址。
删除第一结构体数据或第二结构体数据。
其中,第一信息点相关信息可以包括第一结构体数据中的各个信息点以及相应的各个起始存储地址,第二信息点相关信息可以包括第二结构体数据中的各个信息点以及相应的各个起始存储地址。
具体的,当第一信息点相关信息与第二信息点相关信息相同时,本实施例可以确定第一结构体数据与第二结构体数据为重复数据,此时即可以删除第一结构体数据与第二结构体数据中的一个。
可选的,上述删除第一结构体数据或第二结构体数据,包括:
在第一版本标识和第二版本标识中确定出在先版本标识。其中,第一版本标识为第一结构体数据中的版本标识,第二版本标识为第二结构体数据中的版本标识。
在第一结构体数据和第二结构体数据中,删除包括在先版本标识的结构体数据。
具体的,本实施例可以在要删除第一结构体数据与第二结构体数据中的一个时,先行从第一结构体数据和第二结构体数据的版本标识中确定出在先版本标识,即低版本的版本标识。
具体的,本实施例可以在第一结构体数据和第二结构体数据中,删除包括在先版本的结构体数据即低版本的结构体数据,保留高版本的结构体数据。
当然,本实施例也可以删除不包括在先版本的结构体数据即高版本的结构体数据,保留低版本的结构体数据。
本实施例提出的空间布局的更新方法,可以将互为重复数据的两个结构体数据中的一个删除,减少数据存储压力,提高数据存储空间的利用率。
基于图2,本实施例提出第五种空间布局的更新方法。该方法在上述步骤S202之后,还可以包括:
构建接口,接口用于向存储器管理模块传输第一结构体数据。
具体的,本实施例在生成第一结构体数据后,构建用于向存储器管理模块传输第一结构体数据的接口。
可以理解的是,存储器管理模块可以通过调用接口,来获取第一结构体数据。
具体的,本实施例可以分别针对各个第一结构体数据构建接口,存储器管理模块可以分别利用构建出的各个接口,来实现对各个第一结构体数据的获取。
本实施例提出的空间布局的更新方法,可以实现将第一结构体数据发送至存储器管理模块,有效保障存储器管理模块对存储器进行空间布局的更新,提高对存储器空间布局进行更新的可靠性。
参照图3,Map自动生成模块即为结构体生成模块,配置模块0、配置模块1和配置模块2均为JSON配置文件,信息点标识申请模块0、信息点标识申请模块1和信息点标识申请模块2均为结构体数据。存储方案管理模块即为存储器管理模块。EEPROM芯片即为存储器。
具体的,Map自动生成模块可以根据任一配置模块生成相应的信息点标识申请模块。存储方案管理模块可以获取各个信息点标识申请模块,根据各个信息点标识申请模块对存储器的空间布局进行更新。
如图4所示,为更好的对空间布局的更新方法进行说明,本实施例提出一种空间布局的更新方法流程图,包括以下步骤:
S401、设置存储器的起始存储地址为0。
S402、判断配置模块是否转换完成。若否,则执行步骤S403。若是,则结束流程。
其中,配置模块即为JSON配置文件。JSON配置文件中可以包括版本标识和至少一个信息点,每个信息点中可以包括版本标识、占用字节数、默认值和启用标志,启用标志可以用于决定信息点是否启用。如下表所示。
具体的,本实施例可以判断是否已完成对所有JSON配置文件的空间分配处理,若否,则可以对JSON配置文件执行空间分配处理。若是,则可以结束流程。
S403、将JSON配置文件导入内存。
S404、从内存中保存的JSON配置文件中取出版本标识放入结构体内存空间。
具体的,本实施例可以从内存所存储的JSON配置文件中,提取出版本标识。
S405、从JSON配置文件中取出对应的一个信息点的信息。
具体的,本实施例可以从JSON配置文件中依次提取出各个信息点。
S406、将取值为0的起始存储地址作为本信息点的起始存储地址。
具体的,本实施例可以将提取出的第一个信息点对应的起始存储地址设置为0。
S407、计算起始存储地址与本信息点中占用字节数的和值。
具体的,本实施例可以计算提取出的第一个信息点对应的起始存储地址与该第一个信息点中占用字节数的和值,将该和值确定为下一个信息点的起始存储地址。根据该第一个信息点对应的起始存储地址该第一个信息点中的占用字节数,确定该第一个信息点对应的地址区间。可以理解的是,本实施例可以依次确定出各个信息点对应的起始存储地址以及地址区间。
S408、将信息点中的占用字节数和启用标志导入申请模块结构体。
具体的,本实施例可以将提取出的第一个信息点中的版本标识、信息点标识、占用字节数和启用标识,以及该第一个信息点对应的起始存储地址进行组合,生成第一结构体数据。可以理解的是,本实施例可以依次生成各个信息点所对应的结构体数据。
S409、判断信息点是否冲突。若是,则执行步骤S414即执行报错模块处理,并结束流程。若否,则执行步骤S410。
具体的,本实施例可以在生成某个信息点对应的地址区间时,可以确定该地址区间是否与其他信息点的地址区间相重叠,若是,则可以确定信息点冲突并执行S414。若否,则可以继续执行后续步骤。
S410、判断该模块是否允许与其他模块合并。若是,则执行步骤S411。若否,则执行步骤S412。
S411、调用合并逻辑实现两个模块的合并操作,版本使用低版本。
S412、构建接口函数供其他模块调用。
S413、生成C文件,返回执行步骤S402。
S414、由报错模块进行报错处理。
具体的,本实施例可以在生成某个结构体数据时,判断该结构体数据是否与其他结构体数据为重复数据,若是,则可以调用合并逻辑删除互为重复数据的两个结构体数据中的一个,保留低版本的结构体数据。若否,则可以构建与该结构体数据对应的接口函数,生成最终的C文件。
如图5所示,本实施例提出第六种空间布局的更新方法,该方法可以应用于存储器管理模块。该方法可以包括以下步骤:
S501、存储器管理模块获取来自结构体生成模块的至少一个结构体数据。其中,至少一个结构体数据为结构体生成模块在获取至少一个JSON配置文件后对每个JSON配置文件执行空间分配处理所生成,每个JSON配置文件包括版本标识和至少一个信息点,每个结构体数据包括JSON配置文件中的版本标识和至少一个信息点,以及与至少一个信息点一一对应的至少一个起始存储地址。
其中,存储器管理模块可以与存储器通信连接,对存储器中的空间布局进行更新。
具体的,存储器管理模块可以在结构体生成模块生成上述至少一个结构体数据后,接收由结构体生成模块传输的该至少一个结构数据。
需要说明的是,结构体数据的生成过程以及具体组成已在上述实施例内容中具体说明,不再阐述。
S502、存储器管理模块根据版本标识、至少一个信息点和至少一个起始存储地址对存储器执行初始化操作,并更新存储器的空间布局。
具体的,存储器管理模块可以根据某个或多个结构体数据中的版本标识、各个信息点和各个起始存储地址,对存储器执行初始化操作,以对存储器中的空间布局进行更新。
需要说明的是,当出现需要对存储器中的空间布局进行更新时,比如要对存储器中存储的某些参数值的字段进行扩充或缩减,再比如要在存储器中新增存储某些参数值,再比如要在存储器中调整某些参数值的存储空间,本实施例可以获取由开发人员编辑的至少一个JSON配置文件,对每个JSON配置文件执行空间分配处理以生成至少一个结构体数据,并发送至存储器管理模块,由存储器管理模块根据该至少一个结构体数据对存储器执行初始化操作,更新存储器的空间布局。而无需对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
本实施例提出的空间布局的更新方法,可以获取至少一个结构体数据,根据结构体数据中的版本标识、各个信息点和各个起始存储地址对存储器执行初始化操作,更新存储器的空间布局。而无需在需要对存储器中的空间布局进行更新时,对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
基于图5,本实施例提出第七种空间布局的更新方法。在该方法中,S502可以包括:
S5021、存储器管理模块从至少一个结构体数据中确定出最新版本标识以及包括最新版本标识的最新结构体数据。
其中,最新版本标识即为最新版本的结构体数据的版本标识。
S5022、存储器管理模块获取存储器中保存的目标版本标识,目标版本标识与存储器的当前空间布局对应。
需要说明的是,存储器中可以保持其当前空间布局所对应的版本标识。
具体的,存储器管理模块可以从存储器中获取其保存的目标版本标识。
S5023、存储器管理模块确定最新版本标识与目标版本标识是否相同的判断结果。
具体的,存储器管理模块可以判断最新版本标识与目标版本标识是否相同,并确定判断结果。
S5024、存储器管理模块根据判断结果,以及根据最新结构体数据中的最新版本标识、至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作,并更新存储器的空间布局。
具体的,存储器管理模块可以根据判断结果以及最新结构体数据,对存储器执行初始化操作。此时,存储器中的空间布局将更新为最新结构体数据所对应的空间布局。
可选的,当上述判断结果为不相同时,上述步骤S5024可以包括:
将存储器中保存的目标版本标识更新为最新版本标识,以及在至少一个结构体数据中查找是否存在与目标版本标识相同的第三版本标识。
若是,则根据第三版本标识,以及最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。
若否,则根据最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。
具体的,当判断结果为不相同时,说明存储器中的空间布局不是最新版本。此时,存储器管理模块可以利用最新结构体数据中的相关信息对存储器进行空间布局的更新。具体的,存储器管理模块可以先行将存储器中保存的目标版本标识更新为最新结构体标识,以及在已获取的上述至少一个结构体数据中查找是否存在与目标版本标识相同的第三版本标识,即查找存储器的当前空间布局所使用的结构体数据。
如果查找到,则可以根据第三版本标识以及最新结构体数据中的相关信息对存储器执行初始化操作。
如果没有查找到,则可以根据最新结构体数据中的相关信息对存储器执行初始化操作。
具体的,存储器管理模块还可以获取至少一个历史结构体数据。历史结构体数据即为之前版本的结构体数据,其信息组成与结构体数据相同。此时,上述步骤S5024可以包括:
将存储器中保存的目标版本标识更新为最新版本标识,以及在上述至少一个结构体数据和上述至少一个历史结构体数据中查找是否存在与目标版本标识相同的第三版本标识。
可选的,上述根据第三版本标识,以及最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作,包括:
从至少一个结构体数据中确定出包括第三版本标识的第三结构体数据。
根据第三结构体数据和最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。
具体的,存储器管理模块可以先行获取包括第三版本标识的第三结构体数据,根据第三结构体数据中的相关信息以及最新结构体数据中的相关信息,对存储器执行初始化操作。可以理解的是,第三结构体数据可以是包含第三版本标识的历史结构体数据或结构体数据。
可选的,最新结构体数据中包括第四信息点和相应的第四起始存储地址,第三结构体数据和最新结构体数据的每个信息点中包括信息点标识。此时,上述根据第三结构体数据和最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作,包括:
根据第四信息点中的信息点标识,在第三结构体数据的至少一个信息点中查找是否存在第五信息点。其中,第五信息点与第四信息点中的信息点标识相同。
若是,则根据第四信息点、第四起始存储地址和第五信息点,对存储器执行初始化操作。
若否,则根据第四信息点和第四起始存储地址对存储器执行初始化操作。
其中,本实施例可以将最新结构体数据中的任一信息点作为第四信息点。
可选的,上述第四信息点中还包括占用字节数和第一参数值,第五信息点中还包括第二参数值。上述根据第四信息点、第四起始存储地址和第五信息点,对存储器执行初始化操作,包括:
将第四信息点中的第一参数值更新为第二参数值,以及得到更新后的第四信息点。
根据第四起始存储地址和更新后的第四信息点中的占用字节数,确定存储器中的第一存储空间。
将更新后的第四信息点中的第二参数值写入第一存储空间。
需要说明的是,本实施例可以有效提高存储器的扩展性,即可以针对其中的某个信息点进行字段扩充或缩减,并可以在开发过程中甚至是已经向客户供货的情况下对存储器中的空间布局进行更新,有效提高空间布局更新的灵活性,且不会导致存储器中的空间布局在更新之后出现排布错乱等问题,有效减少人工干预,提高稳定性。
还需要说明的是,存储器管理模块能够实现针对最新结构体数据和EEPROM中空间布局所对应的目标结构体数据的整合,支持EEPROM中参数值的重新排布和基于之前版本的信息点的字段扩展。
可选的,上述第四信息点中还包括占用字节数和第一参数值。上述根据第四信息点和第四起始存储地址对存储器执行初始化操作,包括:
根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间。
将第一参数值写入第一存储空间。
其中,第一参数值可以为相应参数的默认值。
具体的,存储器管理模块可以将最新结构体数据中的任一信息点作为上述第四信息点,在第三结构体数据中查找是否存在信息点标识相同的第五信息点。如果查找到,则可以确定第五信息点对应的地址区间以及在存储器中对应的存储空间,从存储器的该存储空间中获取其保存的第二参数值,将第四信息点中的参数值更新为该第二参数值,并将第四信息点中的该第二参数值保存至存储器中的与第四信息点所对应的存储空间,实现将第二参数值移动至第四信息点所对应的存储空间,从而实现对第二参数值的存储位置的更新。如果没有查找到,则可以直接将第四信息点中的第一参数值写入到存储器中第四信息点对应的存储空间,对该存储空间中存储的数据进行覆盖。
可选的,最新结构体数据中包括第四信息点和相应的第四起始存储地址,第四信息点中包括占用字节数和第一参数值。上述根据最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作,包括:
将存储器中存储的至少一个参数值分别改写为预设参数值。
根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间。
将第一参数值写入第一存储空间。
其中,预设参数值可以为出厂参数值如十六进制的FF值,用于标识某个存储空间待进行初始化操作。当存储器中的某个存储空间存储有该预设参数值时,可以认为该存储空间待进行初始化操作。
具体的,当在上述至少一个结构体数据中未查找到与目标版本标识相同的第三版本标识时,存储器管理模块可以将存储器中存储的所有数据均设置为预设参数值。之后,存储器管理模块可以根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间,并将第一参数值写入到第一存储空间中。
可以理解的是,存储器管理模块可以将最新结构体中的任一信息点作为第四信息点,将任一信息点中的参数值写入到存储器中的相应存储空间,实现对存储器的空间布局的更新。
本实施例提出的空间布局的更新方法,可以根据最新结构体数据中的相关信息,对存储器中存储的参数值以及参数值的存储位置进行更新,从而实现对存储器的空间布局的更新。
本实施例提出第八种空间布局的更新方法,在该方法中,最新结构体数据中包括第四信息点和相应的第四起始存储地址,第四信息点中包括占用字节数和第一参数值。此时,上述S5024可以包括:
当判断结果为相同时,根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间。
根据第一参数值,对第一存储空间中保存的参数值进行初始化操作。
其中,第一参数值即为相应参数的默认值。
具体的,当判断结果为相同时,说明存储器的空间布局的版本即为最新版本。此时,存储器管理模块可以根据最新结构体数据中的相关信息对存储器中的空间布局进行更新。
可选的,上述根据第一参数值,对第一存储空间中保存的参数值进行初始化操作,包括:
在确定第一存储空间中保存的参数值为预设参数值或非法值的情况下,将第一存储空间中保存的预设参数值更新为第一参数值。
其中,非法值即为不合法或不在合理范围之内的参数值。
具体的,存储器管理模块可以校验第一存储空间中保存的参数值是否为预设参数值,以及对第一存储空间中保存的参数值进行合法性校验。
其中,当第一存储空间中保存的参数值为预设参数值或非法值时,可以确定该第一存储空间待进行初始化操作。此时,存储器管理模块可以将第一存储空间中的预设参数值更新为相应参数的默认值。
其中,当第一存储空间中保存的参数值为合法值且非预设参数值时,可以无需更新第一存储空间中保存的参数值。
本实施例提出的空间布局的更新方法,可以在存储器的空间布局的版本即为最新版本时,对存储器中保存的各个参数值进行合法性校验以及确定是否为预设参数值,将非法值或者预设参数值更新为最新版本中相应参数的默认值,避免非法参数值对于服务器运行的影响,以及实现对相关存储空间的初始化。
如图6所示,为更好的对空间布局的更新方法进行说明,本实施例提出一种空间布局的更新方法流程图,包括以下步骤:
S601、存储器管理模块从EEPROM对应位置读取版本信息V1。
其中,版本信息即可以为版本标识,如版本号。
具体的,EEPROM中保存有版本标识。存储器管理模块可以从EEPROM中读取出EEPROM当前空间布局的版本标识。
S602、存储器管理模块获取当前运行镜像使用的MAP版本信息V2。
其中,当前运行镜像可以为服务器当前所使用的***。
其中,MAP版本信息V2即为最新结构体数据中的版本标识。
S603、存储器管理模块判断V1与V2是否相同。若否,则执行步骤S604。若是,则执行步骤S608。
S604、存储器管理模块从申请模块列表中查找是否存在与V1相同的版本信息。若是,则执行步骤S605。若否,则执行步骤S606。
其中,申请模块列表中包括至少一个结构体数据。
具体的,当V1与V2不相同,即EEPROM中当前空间布局的版本不是最新版本时,存储器管理模块可以从申请模块列表的各个结构体数据所包含的版本标识中查找是否存在于V1相同的版本标识。
S605、存储器管理模块基于信息点标识逐个进行比对,将信息点拷贝到当前版本使用的结构体数据的正确位置上。
具体的,当查找到与V1相同的版本标识时,存储器管理模块可以确定包括该版本标识的目标结构体数据,并将最新结构体数据中的每个信息点与目标结构体数据中的信息点进行比对,将目标结构体数据中信息点的参数值拷贝到由最新结构体数据所定义的存储空间中,以及将最新结构体数据中的新信息点的参数值写入到相应的存储空间中。
其中,最新结构体数据中的任一信息点均可以作为第四信息点,存储器管理模块可以在目标结构体数据包含的信息点中查找是否与第四信息点的信息点标识相同的目标信息点,若查找到,则可以根据目标信息点中的占用字节数和相应的起始存储地址确定其对应的存储空间,从EEPROM的该存储空间中获取其保存的参数值,并确定第四信息点在EEPROM中对应的新存储空间,将该参数值写入到该EEPROM中的新存储空间。
其中,如果在目标结构体数据中没有查找到目标信息点,则可以确定第四信息点为新的信息点,可以在确定第四信息点在EEPROM中对应的存储空间后,直接将第四信息点中的参数值写入到该存储空间中。
S606、存储器管理模块将EEPROM中存储的参数值全部写为FF。
其中,FF为十六进制的值。
具体的,当在申请模块列表中未查找到与V1相同的版本标识时,存储器管理模块可以将EEPROM中存储的所有参数值都写为FF。
S607、存储器管理模块使用当前版本的MAP表和默认值初始化EEPROM。
其中,当前版本的MAP表即为最新结构体数据。最新结构体数据中各个参数的参数值均为相应的默认值。
具体的,存储器管理模块可以根据最新结构体数据中定义的存储空间和默认值,将默认值写入到EEPROM中的相应存储空间中。
S608、存储器管理模块判断EEPROM中是否存在未初始化的存储区域。若是,则执行步骤S609。若否,则结束流程。
具体的,当V1和V2相同时,存储器管理模块可以读取出EEPROM中各个存储空间所存储的参数值。若某个存储空间保存的参数值为FF,则可以确定该存储空间为未初始化的存储区域。
S609、存储器管理模块读取申请模块默认值。
具体的,存储器管理模块可以从最新结构体数据中确定与未初始化的存储区域所对应的信息点中的参数值,即申请模块默认值。
S610、存储器管理模块将默认值设置到EEPROM中。
具体的,存储器管理模块可以将确定出的申请模块默认值写入到EEPROM中未初始化的存储区域中。
在本实施例中还提供了一种空间布局的更新装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图7所示,本实施例提出一种空间布局的更新装置,该装置包括:
第一获取模块701,用于获取至少一个JSON配置文件,每个JSON配置文件包括版本标识和至少一个信息点。
第一处理模块702,用于对每个JSON配置文件执行空间分配处理,并生成至少一个结构体数据。其中,每个结构体数据包括JSON配置文件中的版本标识和至少一个信息点,以及与至少一个信息点一一对应的至少一个起始存储地址。
第一传输模块703,用于将至少一个结构体数据传输至存储器管理模块,以使存储器管理模块根据版本标识、至少一个信息点和至少一个起始存储地址对存储器执行初始化操作并更新存储器的空间布局。
可选的,第一处理模块702还用于将JSON配置文件输入至CJSON库执行信息转换处理,并生成第一树状结构数据。还用于根据第一树状结构数据,生成第一结构体数据。还用于返回执行将JSON配置文件输入至CJSON库执行信息转换处理的步骤,直至完成对至少一个JSON配置文件的信息转换处理,并生成至少一个结构体数据。
可选的,第一树状结构数据包括JSON配置文件中的版本标识和至少一个信息点。
第一处理模块702,还用于从第一树状结构数据中提取出版本标识和至少一个信息点。还用于根据提取出的至少一个信息点,生成至少一个起始存储地址。还用于将提取出的版本标识、至少一个信息点和生成的至少一个起始存储地址进行组合,并生成第一结构体数据。
可选的,第一树状结构数据中的每个信息点包括占用字节数,至少一个信息点中包括第一信息点、第二信息点和第三信息点。
第一处理模块702,还用于将预设的第一取值设置为第一信息点对应的第一起始存储地址。还用于计算第一信息点中的占用字节数与第一起始存储地址的和值,并确定为第二信息点对应的第二起始存储地址。还用于计算第二信息点中的占用字节数与第二起始存储地址的和值,并确定为第三信息点对应的第三起始存储地址。
可选的,装置还包括:
第一确定模块,用于在将预设的第一取值设置为第一信息点对应的第一起始存储地址之后,根据第一信息点中的占用字节数和第一起始存储地址,确定第一信息点对应的第一地址区间。
第二确定模块,用于根据第二信息点中的占用字节数和第二起始存储地址,确定第二信息点对应的第二地址区间。
第三确定模块,用于若第一地址区间与第二地址区间相重叠,则确定第二信息点的起始地址计算流程出错,以及输出相应的错误提示。
可选的,至少一个结构体数据中包括第一结构体数据和第二结构体数据。装置还包括:
删除模块,用于在根据第一树状结构数据,生成第一结构体数据之后,若第一结构体数据与第二结构体数据为重复数据,则删除第一结构体数据或第二结构体数据。
可选的,删除模块还用于若第一信息点相关信息与第二信息点相关信息相同,则确定第一结构体数据与第二结构体数据为重复数据。其中,第一信息点相关信息包括第一结构体数据中的至少一个信息点和至少一个起始存储地址,第二信息点相关信息包括第二结构体数据中的至少一个信息点和至少一个起始存储地址。
删除第一结构体数据或第二结构体数据。
可选的,删除模块还用于在第一版本标识和第二版本标识中确定出在先版本标识。其中,第一版本标识为第一结构体数据中的版本标识,第二版本标识为第二结构体数据中的版本标识。还用于在第一结构体数据和第二结构体数据中,删除包括在先版本标识的结构体数据。
可选的,装置还包括:
构建模块,用于在生成第一结构体数据之后,构建用于向存储器管理模块传输第一结构体数据的接口。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例提出的空间布局的更新装置,可以获取至少一个JSON配置文件,对每个JSON配置文件执行空间分配处理以生成至少一个结构体数据,并发送至存储器管理模块,由存储器管理模块对存储器执行初始化操作,更新存储器的空间布局。而无需在需要对存储器中的空间布局进行更新时,对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
如图8所示,本实施例提出另一种空间布局的更新装置,该装置包括:
第二获取模块801,用于获取来自结构体生成模块的至少一个结构体数据。其中,至少一个结构体数据为结构体生成模块在获取至少一个JSON配置文件后对每个JSON配置文件执行空间分配处理所生成,每个JSON配置文件包括版本标识和至少一个信息点,每个结构体数据包括JSON配置文件中的版本标识和至少一个信息点,以及与至少一个信息点一一对应的至少一个起始存储地址。
初始化操作模块802,用于根据版本标识、至少一个信息点和至少一个起始存储地址对存储器执行初始化操作,并更新存储器的空间布局。
可选的,初始化操作模块802还用于从至少一个结构体数据中确定出最新版本标识以及包括最新版本标识的最新结构体数据。还用于获取存储器中保存的目标版本标识,目标版本标识与存储器的当前空间布局对应。还用于确定最新版本标识与目标版本标识是否相同的判断结果。还用于根据判断结果,以及根据最新结构体数据中的最新版本标识、至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。
可选的,初始化操作模块802还用于当判断结果为不相同时,将存储器中保存的目标版本标识更新为最新版本标识,以及在至少一个结构体数据中查找是否存在与目标版本标识相同的第三版本标识。若是,则还用于根据第三版本标识,以及最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。若否,则还用于根据最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。
可选的,初始化操作模块802还用于从至少一个结构体数据中确定出包括第三版本标识的第三结构体数据。还用于根据第三结构体数据和最新结构体数据中的至少一个信息点和至少一个起始存储地址,对存储器执行初始化操作。
可选的,最新结构体数据中包括第四信息点和相应的第四起始存储地址,第三结构体数据和最新结构体数据的每个信息点中包括信息点标识。初始化操作模块802,还用于根据第四信息点中的信息点标识,在第三结构体数据的至少一个信息点中查找是否存在第五信息点。其中,第五信息点与第四信息点中的信息点标识相同。若是,则根据第四信息点、第四起始存储地址和第五信息点,对存储器执行初始化操作。若否,则根据第四信息点和第四起始存储地址对存储器执行初始化操作。
可选的,第四信息点中还包括占用字节数和第一参数值,第五信息点中还包括第二参数值。初始化操作模块802,还用于将第四信息点中的第一参数值更新为第二参数值,以及得到更新后的第四信息点。还用于根据第四起始存储地址和更新后的第四信息点中的占用字节数,确定存储器中的第一存储空间。还用于将更新后的第四信息点中的第二参数值写入第一存储空间。
可选的,第四信息点中还包括占用字节数和第一参数值。初始化操作模块802,还用于根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间。还用于将第一参数值写入第一存储空间。
可选的,最新结构体数据中包括第四信息点和相应的第四起始存储地址,第四信息点中包括占用字节数和第一参数值。
初始化操作模块802,还用于将存储器中存储的至少一个参数值分别改写为预设参数值。还用于根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间。还用于将第一参数值写入第一存储空间。
可选的,最新结构体数据中包括第四信息点和相应的第四起始存储地址,第四信息点中包括占用字节数和第一参数值。初始化操作模块802,还用于当判断结果为相同时,根据第四起始存储地址和第四信息点中的占用字节数,确定存储器中的第一存储空间。根据第一参数值,对第一存储空间中保存的参数值进行初始化操作。
可选的,初始化操作模块802还用于在确定第一存储空间中保存的参数值为预设参数值或非法值的情况下,将第一存储空间中保存的预设参数值更新为第一参数值。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例提出的空间布局的更新装置,可以获取至少一个结构体数据,根据结构体数据中的版本标识、各个信息点和各个起始存储地址对存储器执行初始化操作,更新存储器的空间布局。而无需在需要对存储器中的空间布局进行更新时,对服务器操作***的代码进行修改,也无需对服务器操作***进行更新和重启服务器,可以有效避免对服务器运行性能的影响。
本实施例中的空间布局的更新装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图7或图8所示的空间布局的更新装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序。存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器。存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘。存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (23)
1.一种空间布局的更新方法,其特征在于,所述方法包括:
结构体生成模块获取至少一个JSON配置文件,每个所述JSON配置文件包括版本标识和至少一个信息点;
所述结构体生成模块对每个所述JSON配置文件执行空间分配处理,并生成至少一个结构体数据;其中,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
所述结构体生成模块将所述至少一个结构体数据传输至存储器管理模块,以使所述存储器管理模块根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作并更新所述存储器的空间布局。
2.根据权利要求1所述的方法,其特征在于,所述对每个所述JSON配置文件执行空间分配处理,并生成至少一个结构体数据,包括:
将所述JSON配置文件输入至CJSON库执行信息转换处理,并生成第一树状结构数据;
根据所述第一树状结构数据,生成第一结构体数据;
返回执行所述将所述JSON配置文件输入至CJSON库执行信息转换处理的步骤,直至完成对所述至少一个JSON配置文件的信息转换处理,并生成所述至少一个结构体数据。
3.根据权利要求2所述的方法,其特征在于,所述第一树状结构数据包括所述JSON配置文件中的所述版本标识和所述至少一个信息点;所述根据所述第一树状结构数据,生成第一结构体数据,包括:
从所述第一树状结构数据中提取出所述版本标识和所述至少一个信息点;
根据提取出的所述至少一个信息点,生成所述至少一个起始存储地址;
将提取出的所述版本标识、所述至少一个信息点和生成的所述至少一个起始存储地址进行组合,并生成所述第一结构体数据。
4.根据权利要求3所述的方法,其特征在于,所述第一树状结构数据中的每个所述信息点包括占用字节数,所述至少一个信息点中包括第一信息点、第二信息点和第三信息点;所述根据提取出的所述至少一个信息点,生成所述至少一个起始存储地址,包括:
将预设的第一取值设置为所述第一信息点对应的第一起始存储地址;
计算所述第一信息点中的占用字节数与所述第一起始存储地址的和值,并确定为所述第二信息点对应的第二起始存储地址;
计算所述第二信息点中的占用字节数与所述第二起始存储地址的和值,并确定为所述第三信息点对应的第三起始存储地址。
5.根据权利要求4所述的方法,其特征在于,在所述将预设的第一取值设置为所述第一信息点对应的第一起始存储地址之后,所述方法还包括:
根据所述第一信息点中的占用字节数和所述第一起始存储地址,确定所述第一信息点对应的第一地址区间;
根据所述第二信息点中的占用字节数和所述第二起始存储地址,确定所述第二信息点对应的第二地址区间;
若所述第一地址区间与所述第二地址区间相重叠,则确定所述第二信息点的起始地址计算流程出错,以及输出相应的错误提示。
6.根据权利要求2所述的方法,其特征在于,所述至少一个结构体数据中包括所述第一结构体数据和第二结构体数据;在所述根据所述第一树状结构数据,生成第一结构体数据之后,所述方法还包括:
若所述第一结构体数据与所述第二结构体数据为重复数据,则删除所述第一结构体数据或所述第二结构体数据。
7.根据权利要求6所述的方法,其特征在于,所述若所述第一结构体数据与所述第二结构体数据为重复数据,则删除所述第一结构体数据或所述第二结构体数据,包括:
若第一信息点相关信息与第二信息点相关信息相同,则确定所述第一结构体数据与所述第二结构体数据为重复数据;其中,所述第一信息点相关信息包括所述第一结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,所述第二信息点相关信息包括所述第二结构体数据中的所述至少一个信息点和所述至少一个起始存储地址;
删除所述第一结构体数据或所述第二结构体数据。
8.根据权利要求6或7所述的方法,其特征在于,所述删除所述第一结构体数据或所述第二结构体数据,包括:
在第一版本标识和第二版本标识中确定出在先版本标识;其中,所述第一版本标识为所述第一结构体数据中的所述版本标识,所述第二版本标识为所述第二结构体数据中的所述版本标识;
在所述第一结构体数据和所述第二结构体数据中,删除包括所述在先版本标识的结构体数据。
9.根据权利要求2所述的方法,其特征在于,在所述生成第一结构体数据之后,所述方法还包括:
构建用于向所述存储器管理模块传输所述第一结构体数据的接口。
10.一种空间布局的更新方法,其特征在于,所述方法包括:
存储器管理模块获取来自结构体生成模块的至少一个结构体数据;其中,所述至少一个结构体数据为所述结构体生成模块在获取至少一个JSON配置文件后对每个所述JSON配置文件执行空间分配处理所生成,每个所述JSON配置文件包括版本标识和至少一个信息点,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
所述存储器管理模块根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作,并更新所述存储器的空间布局。
11.根据权利要求10所述的方法,其特征在于,所述根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作,包括:
从所述至少一个结构体数据中确定出最新版本标识以及包括所述最新版本标识的最新结构体数据;
获取所述存储器中保存的目标版本标识,所述目标版本标识与所述存储器的当前空间布局对应;
确定所述最新版本标识与所述目标版本标识是否相同的判断结果;
根据所述判断结果,以及根据所述最新结构体数据中的所述最新版本标识、所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作。
12.根据权利要求11所述的方法,其特征在于,所述根据所述判断结果,以及根据所述最新结构体数据中的所述最新版本标识、所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
当所述判断结果为不相同时,将所述存储器中保存的所述目标版本标识更新为所述最新版本标识,以及在所述至少一个结构体数据中查找是否存在与所述目标版本标识相同的第三版本标识;
若是,则根据所述第三版本标识,以及所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作;
若否,则根据所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作。
13.根据权利要求12所述的方法,其特征在于,所述根据所述第三版本标识,以及所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
从所述至少一个结构体数据中确定出包括所述第三版本标识的第三结构体数据;
根据所述第三结构体数据和所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作。
14.根据权利要求13所述的方法,其特征在于,所述最新结构体数据中包括第四信息点和相应的第四起始存储地址,所述第三结构体数据和所述最新结构体数据的每个所述信息点中包括信息点标识;
所述根据所述第三结构体数据和所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
根据所述第四信息点中的所述信息点标识,在所述第三结构体数据的所述至少一个信息点中查找是否存在第五信息点;其中,所述第五信息点与所述第四信息点中的所述信息点标识相同;
若是,则根据所述第四信息点、所述第四起始存储地址和所述第五信息点,对所述存储器执行初始化操作;
若否,则根据所述第四信息点和所述第四起始存储地址对所述存储器执行初始化操作。
15.根据权利要求14所述的方法,其特征在于,所述第四信息点中还包括占用字节数和第一参数值,所述第五信息点中还包括第二参数值;所述根据所述第四信息点、所述第四起始存储地址和所述第五信息点,对所述存储器执行初始化操作,包括:
将所述第四信息点中的所述第一参数值更新为所述第二参数值,以及得到更新后的第四信息点;
根据所述第四起始存储地址和所述更新后的第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
将所述更新后的第四信息点中的所述第二参数值写入所述第一存储空间。
16.根据权利要求14所述的方法,其特征在于,所述第四信息点中还包括占用字节数和第一参数值;所述根据所述第四信息点和所述第四起始存储地址对所述存储器执行初始化操作,包括:
根据所述第四起始存储地址和所述第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
将所述第一参数值写入所述第一存储空间。
17.根据权利要求12所述的方法,其特征在于,所述最新结构体数据中包括第四信息点和相应的第四起始存储地址,所述第四信息点中包括占用字节数和第一参数值;
所述根据所述最新结构体数据中的所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
将所述存储器中存储的至少一个参数值分别改写为预设参数值;
根据所述第四起始存储地址和所述第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
将所述第一参数值写入所述第一存储空间。
18.根据权利要求11所述的方法,其特征在于,所述最新结构体数据中包括第四信息点和相应的第四起始存储地址,所述第四信息点中包括占用字节数和第一参数值;
所述根据所述判断结果,以及根据所述最新结构体数据中的所述最新版本标识、所述至少一个信息点和所述至少一个起始存储地址,对所述存储器执行初始化操作,包括:
当所述判断结果为相同时,根据所述第四起始存储地址和所述第四信息点中的占用字节数,确定所述存储器中的第一存储空间;
根据所述第一参数值,对所述第一存储空间中保存的参数值进行初始化操作。
19.根据权利要求18所述的方法,其特征在于,所述根据所述第一参数值,对所述第一存储空间中保存的参数值进行初始化操作,包括:
在确定所述第一存储空间中保存的参数值为预设参数值或非法值的情况下,将所述第一存储空间中保存的所述预设参数值更新为所述第一参数值。
20.一种空间布局的更新装置,其特征在于,所述装置包括:
第一获取模块,用于获取至少一个JSON配置文件,每个所述JSON配置文件包括版本标识和至少一个信息点;
第一处理模块,用于对每个所述JSON配置文件执行空间分配处理,并生成至少一个结构体数据;其中,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
第一传输模块,用于将所述至少一个结构体数据传输至存储器管理模块,以使所述存储器管理模块根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作并更新所述存储器的空间布局。
21.一种空间布局的更新装置,其特征在于,所述装置包括:
第二获取模块,用于获取来自结构体生成模块的至少一个结构体数据;其中,所述至少一个结构体数据为所述结构体生成模块在获取至少一个JSON配置文件后对每个所述JSON配置文件执行空间分配处理所生成,每个所述JSON配置文件包括版本标识和至少一个信息点,每个所述结构体数据包括所述JSON配置文件中的所述版本标识和至少一个信息点,以及与所述至少一个信息点一一对应的至少一个起始存储地址;
初始化操作模块,用于根据所述版本标识、所述至少一个信息点和所述至少一个起始存储地址对存储器执行初始化操作,并更新所述存储器的空间布局。
22.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至19中任一项所述的空间布局的更新方法。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至19中任一项所述的空间布局的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311236986.8A CN116991758A (zh) | 2023-09-25 | 2023-09-25 | 一种空间布局的更新方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311236986.8A CN116991758A (zh) | 2023-09-25 | 2023-09-25 | 一种空间布局的更新方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116991758A true CN116991758A (zh) | 2023-11-03 |
Family
ID=88534014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311236986.8A Pending CN116991758A (zh) | 2023-09-25 | 2023-09-25 | 一种空间布局的更新方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991758A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806988A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 任务执行方法、任务配置方法、板卡、服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885568A (zh) * | 2020-07-09 | 2020-11-03 | RealMe重庆移动通信有限公司 | 近场通信配置参数的加载方法、装置、电子设备 |
CN113204383A (zh) * | 2021-05-14 | 2021-08-03 | 山东英信计算机技术有限公司 | 一种bmc配置参数存储的方法、装置、***及存储介质 |
CN115794213A (zh) * | 2023-02-07 | 2023-03-14 | 湖南高至科技有限公司 | 基于嵌入式***的可配置对象管理方法、装置和设备 |
CN116089370A (zh) * | 2022-10-09 | 2023-05-09 | 浪潮软件集团有限公司 | SpringBoot框架多配置文件的合并方法及*** |
-
2023
- 2023-09-25 CN CN202311236986.8A patent/CN116991758A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885568A (zh) * | 2020-07-09 | 2020-11-03 | RealMe重庆移动通信有限公司 | 近场通信配置参数的加载方法、装置、电子设备 |
CN113204383A (zh) * | 2021-05-14 | 2021-08-03 | 山东英信计算机技术有限公司 | 一种bmc配置参数存储的方法、装置、***及存储介质 |
CN116089370A (zh) * | 2022-10-09 | 2023-05-09 | 浪潮软件集团有限公司 | SpringBoot框架多配置文件的合并方法及*** |
CN115794213A (zh) * | 2023-02-07 | 2023-03-14 | 湖南高至科技有限公司 | 基于嵌入式***的可配置对象管理方法、装置和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806988A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 任务执行方法、任务配置方法、板卡、服务器 |
CN117806988B (zh) * | 2024-02-29 | 2024-05-24 | 山东云海国创云计算装备产业创新中心有限公司 | 任务执行方法、任务配置方法、板卡、服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531535B2 (en) | Firmware upgrade method and apparatus, and terminal | |
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
CN105511911B (zh) | ***固件升级包的生成方法及装置 | |
CN111666080A (zh) | 微服务集群部署方法、装置、计算机设备及存储介质 | |
CN107506219A (zh) | 一种基于Android***的通用版本升级方法 | |
JP2021002317A (ja) | アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体 | |
CN116991758A (zh) | 一种空间布局的更新方法、装置、设备及介质 | |
CN107656757A (zh) | 操作***切换方法及装置 | |
CN110764788B (zh) | 云存储部署方法、装置、计算机设备和可读存储介质 | |
CN113064625B (zh) | 一种带外升级bios的方法、装置、设备及介质 | |
CN114020211B (zh) | 存储空间管理方法、装置、设备及存储介质 | |
CN112162794A (zh) | 一种单板启动方法、装置、单板以及网络设备 | |
CN115544968A (zh) | 一种兼容多项目设备树的方法、***、设备和存储介质 | |
WO2014112973A1 (en) | Server-platform simulation service | |
CN107229650B (zh) | 测试方法及装置 | |
CN110327626B (zh) | 虚拟服务器创建方法及装置 | |
CN112905207A (zh) | Ecu数据刷写方法、ecu数据刷写装置、车载终端及介质 | |
KR20150137766A (ko) | 가상머신 스택 생성 시스템 및 방법 | |
CN112541756B (zh) | 区块链合约升级方法、装置、计算机设备及可读存储介质 | |
CN112380188B (zh) | 工作环境及代码数据库的构建方法、电子设备、存储介质 | |
CN111414176B (zh) | 程序烧录方法、装置、电子设备以及存储介质 | |
CN109669628B (zh) | 基于flash设备的数据存储管理方法及装置 | |
CN115658122A (zh) | 一种软件升级方法、装置及物联网设备升级*** | |
CN105912379A (zh) | 一种编译任务管理方法及编译任务管理装置 | |
CN117453277A (zh) | 代码扫描、头文件查询库的构建方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |