CN114168085B - 变量处理方法、装置、设备及存储介质 - Google Patents
变量处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114168085B CN114168085B CN202111546416.XA CN202111546416A CN114168085B CN 114168085 B CN114168085 B CN 114168085B CN 202111546416 A CN202111546416 A CN 202111546416A CN 114168085 B CN114168085 B CN 114168085B
- Authority
- CN
- China
- Prior art keywords
- variable
- bytes
- continuous multiple
- variables
- multiple variables
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000001960 triggered effect Effects 0.000 claims abstract description 22
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种变量处理方法、装置、设备及存储介质,其中方法包括:响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类,针对每一字节数,对所述字节数对应的变量按变量值进行排序,若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中,通过对变量按字节进行分类,对字节中的每一变量按变量值进行排序,从而可以针对部分字节相同的连续多个变量进行压缩存储,进而节约flash资源。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种变量处理方法、装置、设备及存储介质。
背景技术
嵌入式全局变量需要加载区与运行区,其中,加载区是在flash(闪存)中,记录了全局变量的初值。运行区是在ram(随机存取存储器)中,用于对输入代码的处理,不具有储存的功能。
目前,对于flash中记录全局变量的初值未做任何处理,当定义的全局变量越多时,占用的flash资源越多。
因此,如何节约flash资源是目前亟待解决的问题。
发明内容
本发明实施例提供一种变量处理方法、装置、设备及存储介质,可以降低占用flash资源较多的问题。
第一方面,本发明实施例提供一种变量处理方法,所述方法包括:
响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类;
针对每一字节数,对所述字节数对应的变量按变量值进行排序;
若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中。
可选的,若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中,包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述前M个字节的值、所述连续多个变量的个数以及每一变量的剩余N-M个字节的值存储到flash中;
其中,M和N均为正整数且M小于N。
可选的,所述方法还包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的N个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述N个字节的值、所述连续多个变量的个数存储到flash中;
若任一变量与相邻变量对应的变量值的各字节均不相同,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中,其中,该变量对应的变量个数为1。
可选的,响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类,包括:
响应于用户触发的存储请求,确定ram中待存储的变量以及数组;
针对每一数组,将所述数组拆分成K个变量;其中,K为所述数组的元素个数,拆分后的每一变量对应一个标识,所述标识用于指示所述变量对应的数组名和所述变量对应的元素在数组中的顺序。
可选的,所述方法还包括:
初始化时,确定每一字节数在flash中对应的存储区域;
根据所述存储区域确定每一字节数对应的所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值;
根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中。
可选的,根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中,包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则根据所述个数、所述前M个字节的值,每一变量的剩余N-M个字节的值,拼接得到的所述连续多个变量对应的变量值;
根据所述连续多个变量中第一变量对应的ram初始地址,加载所述连续多个变量对应的变量值。
可选的,所述方法还包括:
根据所述标识确定所述变量对应的数组名和所述变量对应的元素在数组中的顺序;
将数组名相同的K个变量按照所述顺序组合成数组。
第二方面,本发明实施例提供一种变量处理装置,所述装置包括:
响应模块,用于响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类;
排序模块,用于针对每一字节数,对所述字节数对应的变量按变量值进行排序;
存储模块,用于在存在连续多个变量对应的变量值中部分字节相同时,将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中。
第三方面,本发明实施例提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如上第一方面任一项所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,用于实现如上第一方面任一项所述的方法。
第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面任一项所述的方法。
本发明实施例提供的变量处理方法、装置、设备及存储介质,通过对ram中的变量进行存储时,先对ram中的变量按字节数进行排序,随后根据每一字节数,对变量按变量值进行排序,当连续多个变量对应的变量值部分字节相同时,将连续多个变量中第一个变量对应的ram初值地址、相同的部分字节的值、连续多个变量的个数以及连续多个变量除部分字节以外的其它字节的值存储到flash中,通过对变量按字节进行分类,对字节中的每一变量按变量值进行排序,从而可以针对部分字节相同的连续多个变量进行压缩存储,进而节约flash资源。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种变量处理方法的流程示意图;
图3为本发明实施例提供的另一种变量处理方法的流程示意图;
图4为本发明实施例提供的一种变量处理装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
下面对本发明实施例提供的一种应用场景进行解释:本发明实施例提供的方案,涉及到变量处理方法。ram是一种易失性存储介质,没有存储数据的功能,flash是一种非易失性存储介质,有存储数据的功能。在***上电时,flash中的待运行数据会复制到ram中运行,当***开始掉电时,将ram中的数据复制到flash中进行存储。
图1为本发明实施例提供的一种应用场景示意图。如图1所示,用户在ram中输入数据完成后,输入的数据会存储到flash中。ram中输入的数据在掉电后会丢失,变成空白,flash中存储的数据在掉电时不会丢失。当***上电时,可将flash中的数据复制到ram中运行。其中,ram中的数据可能会丢失,但是对应的变量不会丢失,可以存储到存储器中。
在一些技术中,输入到ram中的数据会存储到flash中,当输入到ram中的数据越多时,存储到flash中的数据越多,占用的flash资源越多。
因此,本发明的实施例提供了一种变量处理的方法,对ram中的变量进行存储时,先对ram中的变量按字节数进行排序,随后根据每一字节数,对变量按变量值进行排序,当连续多个变量对应的变量值部分字节相同时,将连续多个变量中第一个变量对应的ram初值地址、相同的部分字节的值、连续多个变量的个数以及连续多个变量除部分字节以外的其它字节的值存储到flash中,从而可以针对部分字节相同的连续多个变量进行压缩存储,进而节约flash资源。
本发明实施例可以应用于任意有变量存储需求的技术领域,例如,在车辆控制领域中,所述变量可以包括温度、湿度、压强等。当然,除了车辆控制以外,任何需要存储变量的情况均可以使用本发明提供的变量处理方法,本发明对此不做具体限定。
下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图2为本发明实施例提供的一种变量处理方法的流程示意图。如图2所示,本实施例中的方法可以包括:
步骤201、响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类。
其中,用户触发的存储请求可以是用户在ram中输入数据完成后,点击“存储ram中数据”触发的指令。占用的字节数可以为占用的1字节、2字节和4字节。1字节可以包括char(字符)型,2字节可以包括short(短整)型,4字节可以包括int(整)型和float(单精度浮点)型,1个字节可以存储8位无符号数。
例如,占用1字节的变量值可以为00010001,占用2字节的变量值可以为0001000100100001,占用4字节的变量值可以为00010001001000010010000100010001。
可选的,在接收到用户触发的存储请求后,对全局变量中的数据(cal_data)段的变量按变量值占用的字节数进行分类。
可选的,对ram中待存储的变量按照变量值占用的字节数进行分类,即按照变量值占用的为1字节、2字节还是4字节进行分类。
具体的,当变量a、变量b和变量c对应的变量值分别占用1字节、2字节和1字节,则在分类时将变量a和变量c分到占用1字节的类别中,将变量b分到占用2字节的类别中。
步骤202、针对每一字节数,对所述字节数对应的变量按变量值进行排序。
其中,排序方式可以为从小到大,也可以为从大到小。在排序过程中,变量值相同的情况下,可以随机排布。例如,当分类到1字节数中的变量a和变量b的变量值相同时,则排序顺序可以为变量a、变量b,或变量b、变量a。
可选的,可以分别对分类到字节数为1,2和4字节中的变量按变量值进行排序,例如,对分类到1字节中的变量按照变量值由小到大进行排序,对分类到2字节中的变量按照变量值由小到大进行排序,对分类到4字节中的变量按照变量值由小到大进行排序。
步骤203、若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中。
其中,多个可以为至少两个。
可选的,当连续多个变量对应的变量值占用的字节数为1字节时,则存在连续多个变量对应的变量值相同或不同的情况。当连续多个变量对应的变量值占用的字节数为2或4字节时,则存在连续多个变量对应的变量值中部分字节相同的情况。
可选的,当连续多个变量对应的变量值占用的字节数为2字节时,存在连续多个变量对应的变量值中1字节相同的情况,当连续多个变量对应的变量值占用的字节数为4字节时,存在连续多个变量对应的变量中1、2或3字节相同的情况。
举例来说,当变量a,变量b和变量c对应的变量值占用的字节数均为2字节,变量a、变量b和变量c对应的变量值中存在1个字节相同的情况,只需将变量a对应的ram初始地址、所述1个字节对应的值、变量个数为3和变量a、变量b和变量c中剩余1个字节的值存储到flash中。
本实施例提供的变量处理方法,响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类,针对每一字节数,对所述字节数对应的变量按变量值进行排序,若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中,通过对变量按字节进行分类,对字节中的每一变量按变量值进行排序,从而可以针对部分字节相同的连续多个变量进行压缩存储,进而节约flash资源。
在上述实施例提供的技术方案的基础上,图3为本发明实施例提供的另一种变量处理方法的流程示意图。本实施例实在前述实施例的基础上,具体通过变量对应的变量值所占字节数为N,如何根据相同的字节数M存储到flash中。如图3所示,所述方法包括:
步骤301、响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类。
步骤302、针对每一字节数,对所述字节数对应的变量按变量值进行排序。
本实施例中方法步骤301-302的具体实现原理和效果均可以参见前述实施例中的步骤201-202,此处不再赘述。
步骤303、若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述前M个字节的值、所述连续多个变量的个数以及每一变量的剩余N-M个字节的值存储到flash中;其中,M和N均为正整数且M小于N。
本实施例中,通过步骤303可以实现若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中。
其中,N可以取2或4,M可以取1,2或3。当N取2时,M可以取1。当N取4时,M可以取1,2或3。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为2字节,且所述连续多个变量对应的变量值的前1个字节相同时,则将前1个字节相同的连续多个变量对应的变量值中第一个变量的ram初始地址、前1个字节相同的值、前1个字节相同的值对应的变量个数和连续多个变量的第2个字节的值存储到flash中。
具体的,当连续变量中的变量a,变量b和变量c对应的变量值占用的字节数均为2字节时,变量a、变量b和变量c对应的变量值中前1个字节相同,则将变量a对应的ram初始地址、前1个字节相同的值、前1个字节相同的值对应的变量个数3以及除变量a、变量b和变量c中的第2个字节的值存储到flash中。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为4个字节时,则连续多个变量对应的变量值存在前1个字节相同、前2个字节相同和前3个字节相同的情况,若连续多个变量对应的变量值前1个字节相同时,则将前1个字节相同的连续多个变量对应的变量值中第一变量的ram初始地址、前1个字节相同的值、前1个字节相同的值对应的变量个数和连续多个变量中的第2、3和4字节的值存储到flash中,若连续多个变量对应的变量值前2个字节相同时,则将前2个字节相同的连续多个变量对应的变量值中第一变量的ram初始地址、前2个字节相同的值、前2个字节相同的值对应的变量个数和连续多个变量中的第3和4字节的值存储到flash中,则将连续多个变量中第一个变量的ram初始地址、变量值以及变量个数存储到flash中,若连续多个变量对应的变量值前3个字节相同时,则将前3个字节相同的连续多个变量对应的变量值中第一变量的ram初始地址、前3个字节相同的值、前3个字节相同的值对应的变量个数和连续多个变量的第4个字节的值存储到flash中。
具体的,当连续变量中的变量d,变量e、变量f和变量g对应的变量值占用的字节数均为4字节时,变量d和变量e中对应的变量值前1个字节相同,变量f和变量g中对应的变量值前3个字节相同,则将变量d对应的ram初始地址、前1个字节相同的值、前1个字节相同的值对应的变量个数2以及变量d和变量e的第2、3和4个字节的值存储到flash中,将变量f对应的ram初始地址、前3个字节相同的值、前3个字节相同的值对应的变量个数2以及变量d和变量e的第4字节的值存储到flash中。
当连续多个变量中每个变量对应的变量值前M个字节相同时,根据相同字节的变量值对变量进行存储,存储过程存在一定规律,可以提高变量的存储效率。
步骤304、若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的N个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述N个字节的值、所述连续多个变量的个数存储到flash中。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为1字节、2字节或4字节,连续多个变量对应的变量值相同时,则将连续多个变量中的第一个变量的ram初始地址、变量值以及变量个数存储到flash中。
举例来说,当连续10个变量中每个变量对应的变量值所占字节数为1字节时,并且每个变量对应的变量值均相同,则将连续10个变量中的第一个变量的初始地址,变量值和变量个数为10存储到flash中。
步骤305、若任一变量与相邻变量对应的变量值的各字节均不相同,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中,其中,该变量对应的变量个数为1。
其中,当任一变量与相邻变量均不同时,则该变量对应的变量个数为1。可选的,当某一变量的变量值占用1字节时,若该变量的上一变量对应的变量值与该变量不同,下一变量对应的变量值占用的字节数为1字节且变量值不同时,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中。
可选的,当某一变量的变量值占用2字节时,若该变量的上一变量对应的变量值占用的字节为2字节且每一字节对应的变量值不同,且下一变量对应的变量值占用的字节数为2字节且每一字节对应的变量值不同时,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中。
举例来说,变量a对应的变量值占用的字节数为2字节,排序后变量a的上一变量d对应的变量值占用的字节数为2字节,变量a的下一变量c对应的变量值占用的字节数为2字节,且变量d和变量c中每一字节对应的变量值与变量a中每一字节对应的变量值均不同,则将变量a对应的ram初始地址、变量值和变量个数为1存储到flash中。
当某一变量的变量值占用4字节时,若该变量的上一变量对应的变量值占用的字节为4字节且每一字节对应的变量值不同,且下一变量对应的变量值占用的字节数为4字节且每一字节对应的变量值不同时,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中。
当连续多个变量中每个变量对应的变量值所占的字节数每一字节均相同时,或任一变量与相邻变量对应的变量值的各字节均不相同时,对变量的初始地址、变量值和变量个数进行存储,可以提高变量存储的准确性。
可选的,响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类,包括:
响应于用户触发的存储请求,确定ram中待存储的变量以及数组;针对每一数组,将所述数组拆分成K个变量;其中,K为所述数组的元素个数,拆分后的每一变量对应一个标识,所述标识用于指示所述变量对应的数组名和所述变量对应的元素在数组中的顺序。
其中,标识可以包括数组名和元素在数组中的顺序,例如,当元素在数组uint32Array[10]中的顺序为2时,则对应的标识为uint32 Array_Index1,其中,数组名为uint32Array_Index,元素在数组中的顺序为2,变量与标识可以一一对应。
其中,变量可以定义在ram中的ram_loadvariable区,数组可以定义在ram_noload区,当拆分数组中的变量时,可以将定义在ram_noload区中的数组暂时定义到ram_loadarray中进行拆分。
可选的,当检测到用户触发的存储请求时,确定ram中待存储的变量和数组,当ram中存在数组时,先将数组进行拆分,根据数组中的元素个数,将数组拆分成对应元素个数的变量,每一变量有其对应的标识,标识中有用于表示变量的数组名和变量对应的元素在数组中的顺序。
举例来说,对数组uint32 Array[10]={0,5,9,10}进行拆分,其中,中括号内的数字表示数组的元素个数,因此可以将数组拆分成10个变量,分别命名为uint32 Array_Index0=0,uint32 Array_Index1=5,uint32 Array_Index2=9,uint32 Array_Index3=10,uint32 Array_Index4=0,uint32 Array_Index5=0,uint32 Array_Index6=0,uint32 Array_Index7=0,uint32 Array_Index8=0,uint32 Array_Index8=0,uint32Array_Index10=0。
具体的代码拆分过程可以为:
#pragma section ram_loadarray
uint32 Array_Index0=0;
uint32 Array_Index1=5;
uint32 Array_Index2=9;
uint32 Array_Index3=10;
uint32 Array_Index4=0;
uint32 Array_Index5=0;
uint32 Array_Index6=0;
uint32 Array_Index7=0;
uint32 Array_Index8=0;
uint32 Array_Index8=0;
uint32 Array_Index10=0;
#pragma section
#pragma section ram_noload
uint32 Array[10];
#pragma section
通过将数组中的元素拆分成对应的变量,每一变量对应一个标识,标识中包括变量对应的数组名和元素在数组中的顺序,将每一元素与其对应的数组和在数组中的顺序对应,提高拆分效率,使得拆分更有条理性。
可选的,所述方法还包括:响应于用户触发的存储请求,对源文件进行编译,得到map文件,其中,所述源文件包括待存储的多个变量以及对应的变量值,map文件是一种计算机命令文件,所述map文件中,多个变量按照变量值所占字节分类;对所述map文件中,针对每一字节数,对所述字节数对应的变量按变量值进行排序。
其中,源文件可以为用户输入的源代码。
可选的,当接受到用户触发的存储请求后,对源文件进行编译,并对源文件中的多个变量以及对应的变量值按字节进行分类,得到map文件,从map文件中可以得到每一字节对应的变量,根据每一字节对应的变量按变量值进行排序。
可选的,可以从map文件中,得到每一变量对应的ram初始地址和变量个数,从源文件中得到变量值。
可选的,所述方法还包括:初始化时,确定每一字节数在flash中对应的存储区域;根据所述存储区域确定每一字节数对应的所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值;根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中。
其中,初始化为将flash中存储的数据复制到ram中进行运行。
可选的,初始化时,先确定每一字节数在flash中对应的存储区域,每一字节数有其对应的存储区域,每一字节数对应的存储区域可以为连续的。
当字节数为1字节时,根据该字节数对应在flash中的存储区域可以确定对应连续多个变量的第一个变量的ram初始地址、变量值和变量个数,从而确定各变量对应的变量值加载到ram中。
当字节数为2或4字节时,根据该字节数对应在flash中的存储区域可以确定每一字节数中所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,从而确定各变量对应的变量值加载到ram中。
通过确定每一字节数在flash中对应的存储区域,根据所述存储区域确定每一字节数对应的所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将flash中存储的数据复制到ram中,可以提高数据的恢复效率,节省时间。
可选的,根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中,包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则根据所述个数、所述前M个字节的值,每一变量的剩余N-M个字节的值,拼接得到的所述连续多个变量对应的变量值;
根据所述连续多个变量中第一个变量的ram初始地址,加载所述连续多个变量对应的变量值。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为2时,对应的多个变量值的前1个字节相同时,根据flash中记录的连续多个变量中第一个变量的ram初始地址、前1个字节的值和连续多个变量的个数以及每一变量剩余1个字节的值,得到连续多个变量对应的变量值,根据连续多个变量中第一变量对应的ram初始地址,确定所述连续多个变量中的第一变量在ram中的位置,将得到的多个变量值加载到ram中。
具体的,确定字节数为2对应的多个变量在flash中对应的存储区域,得到flash中记录的连续多个变量中第一个变量的ram初始地址、前1个字节的值为00000001,连续变量的个数为5,以及每一变量剩余1个字节的值为00000010,00000100,00001000,00010000,00100000,则根据连续多个变量中第一个变量的ram初始地址flash中字节数为2初值位置,再依次给对应位置的变量进行赋值,从该位置往下每一变量对应的变量值分别为0000000100000010,0000000100000100,0000000100001000,0000000100010000,0000000100100000。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为4时,对应的多个变量值的前1个字节相同时,根据flash中记录的连续多个变量中第一个变量的ram初始地址、前1个字节的值和连续多个变量的个数以及每一变量剩余1个字节的值,得到连续多个变量对应的变量值,根据连续多个变量中第一变量对应的ram初始地址,确定所述连续多个变量中的第一变量在ram中的位置,将得到的多个变量值加载到ram中。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为4时,对应的多个变量值的前2个字节相同时,根据flash中记录的连续多个变量中第一个变量的ram初始地址、前2个字节的值和连续多个变量的个数以及每一变量剩余2个字节的值,得到连续多个变量对应的变量值,根据连续多个变量中第一变量对应的ram初始地址,确定所述连续多个变量中的第一变量在ram中的位置,将得到的多个变量值加载到ram中。
可选的,当连续多个变量中每个变量对应的变量值所占字节数为4时,对应的多个变量值的前3个字节相同时,根据flash中记录的连续多个变量中第一个变量的ram初始地址、前3个字节的值和连续多个变量的个数以及每一变量剩余1个字节的值,得到连续多个变量对应的变量值,根据连续多个变量中第一变量对应的ram初始地址,确定所述连续多个变量中的第一变量在ram中的位置,将得到的多个变量值加载到ram中。
通过确定连续多个变量中每个变量对应的变量值所占字节数,以及前M个字节数相同的变量,根据flash中存储的ram初始地址、变量个数、前M个字节的值以及每一变量的剩余N-M个字节的值,确定ram中各变量的变量值,可以提高初始化的效率,对ram中的变量赋初值更准确。
可选的,所述方法还包括:根据所述标识确定所述变量对应的数组名和所述变量对应的元素在数组中的顺序;将数组名相同的K个变量按照所述顺序组合成数组。
可选的,通过ram中各变量值对应的标识,对属于同一数组中的变量组合成数组,并确定元素在数组中的位置。
例如,在初始化时,通过各标识对数组中的每一变量进行赋值:
Array[0]=uint32 Array_Index0;
Array[1]=uint32 Array_Index1;
Array[2]=uint32 Array_Index2;
Array[3]=uint32 Array_Index3;
Array[4]=uint32 Array_Index4;
Array[5]=uint32 Array_Index5;
Array[6]=uint32 Array_Index6;
Array[7]=uint32 Array_Index7;
Array[8]=uint32 Array_Index8;
Array[9]=uint32 Array_Index8;
Array[10]=uint32 Array_Index10;
则得到数组为uint32 Array[10]={0,5,9,10}。当赋值结束后,可以释放存储在数组(ram_loadarray)中的变量。
通过ram中各变量对应的标识和数组名,组合成原来的数组,可以实现数组的还原,提高数组还原的准确性。
利用本发明实施例公开的技术方案,在实际应用中,当有变量存储的需求时,可以确定ram中的全局变量分段,对数据(cal_data)段的变量按照变量值所占字节数进行分类,其中,字节数可以为1字节、2字节和4字节。定义3个分段ram_loadvariable、ram_loadarray和ram_noload,其中,定义在ram_loadvariable、ram_loadarray里的变量需要占用flash资源记录初值,会消耗flash资源,定义在ram_noload内的变量不需要记录初值,不会占用flash资源。
根据定义在ram_loadvariable中的普通变量,首先,对占用1字节的变量值进行处理,通过读取编译器生成的map,对变量对应的变量值进行排序,使得相同的变量值可以分配到连续的地址,这样只需将连续多个变量中第一个变量的ram初始地址(Byte1_StartAddress)、变量值(Byte1_InitValue)和变量个数(Byte1_InitValueCnt)存储到flash中。
其次,对占用2字节的变量值进行处理,通过读取编译器生成的map,根据变量对应的变量值进行排序,当连续多个变量对应的变量值前1个字节相同时,则将连续多个变量中的第一个变量的ram初始地址、前1个字节的值、连续多个变量的个数以及连续多个变量的第2个字节的值存储到flash中。当连续多个变量对应的变量值的2个字节相同时,则将连续多个变量中的第一个变量的ram初始地址、变量值和连续多个变量的个数存储到flash中。
最后,对占用4字节的变量值进行处理,通过读取编译器生成的map,根据变量对应的变量值进行排序,当连续多个变量对应的变量值前1个字节相同时,则将连续多个变量中的第一个变量的ram初始地址、前1个字节的值、连续多个变量的个数以及连续多个变量的第2、3和4个字节的值存储到flash中。当连续多个变量对应的变量值前2个字节相同时,则将连续多个变量中的第一个变量的ram初始地址、前2个字节的值、连续多个变量的个数以及连续多个变量的第3和4个字节的值存储到flash中。当连续多个变量对应的变量值前3个字节相同时,则将连续多个变量中的第一个变量的ram初始地址、前3个字节的值、连续多个变量的个数以及连续多个变量的第4个字节的值存储到flash中。当连续多个变量对应的变量值的4个字节相同时,则将连续多个变量中的第一个变量的ram初始地址、变量值和连续多个变量的个数存储到flash中。
图4为本发明实施例提供的一种变量处理装置的结构示意图。如图4所示,本实施例提供的变量处理装置,可以包括:
响应模块401,用于响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类;
排序模块402,用于针对每一字节数,对所述字节数对应的变量按变量值进行排序;
存储模块403,用于在存在连续多个变量对应的变量值中部分字节相同时,将所述连续多个变量中第一个的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中。
可选的,所述存储模块403具体用于:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述前M个字节的值、所述连续多个变量的个数以及每一变量的剩余N-M个字节的值存储到flash中;
其中,M和N均为正整数且M小于N。
可选的,所述存储模块403还用于:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的N个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述N个字节的值、所述连续多个变量的个数存储到flash中;
若任一变量与相邻变量对应的变量值的各字节均不相同,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中,其中,该变量对应的变量个数为1。
可选的,响应模块401具体用于:
响应于用户触发的存储请求,确定ram中待存储的变量以及数组;
针对每一数组,将所述数组拆分成K个变量;其中,K为所述数组的元素个数,拆分后的每一变量对应一个标识,所述标识用于指示所述变量对应的数组名和所述变量对应的元素在数组中的顺序。
可选的,可选的,所述存储模块403还用于:
初始化时,确定每一字节数在flash中对应的存储区域;
根据所述存储区域确定每一字节数对应的所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值;
根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中。
可选的,所述存储模块403在根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中时,具体用于:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则根据所述个数、所述前M个字节的值,每一变量的剩余N-M个字节的值,拼接得到的所述连续多个变量对应的变量值;
根据所述连续多个变量中第一变量对应的ram初始地址,加载所述连续多个变量对应的变量值。
可选的,所述存储模块403还用于:
根据所述标识确定所述变量对应的数组名和所述变量对应的元素在数组中的顺序;
将数组名相同的K个变量按照所述顺序组合成数组。
本实施例提供的装置可以执行如图1-图3所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明实施例提供的一种变量处理设备的结构示意图。如图5所示,本实施例提供的电子设备,可以包括:处理器51,以及与所述处理器通信连接的存储器52;
所述存储器52存储计算机执行指令;
所述处理器51执行所述存储器52存储的计算机执行指令,使得所述处理器51执行上述任一实施例所述的方法。
其中,存储器52和处理器51可以通过总线53连接。
本实施例提供的设备的具体实现原理和效果可以参见图1-图3所示实施例对应的相关描述和效果,此处不做过多赘述。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现本发明任一实施例提供的变量处理方法。
本发明实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本发明任一实施例所述的变量处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (9)
1.一种变量处理方法,其特征在于,包括:
响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类;
针对每一字节数,对所述字节数对应的变量按变量值进行排序;
若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中;
若存在连续多个变量对应的变量值中部分字节相同,则将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中,包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述前M个字节的值、所述连续多个变量的个数以及每一变量的剩余N-M个字节的值存储到flash中;
其中,M和N均为正整数且M小于N。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的N个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述N个字节的值、所述连续多个变量的个数存储到flash中;
若任一变量与相邻变量对应的变量值的各字节均不相同,则将该变量对应的ram初始地址、变量值、变量个数存储到flash中,其中,该变量对应的变量个数为1。
3.根据权利要求1-2任一项所述的方法,其特征在于,响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类,包括:
响应于用户触发的存储请求,确定ram中待存储的变量以及数组;
针对每一数组,将所述数组拆分成K个变量;其中,K为所述数组的元素个数,拆分后的每一变量对应一个标识,所述标识用于指示所述变量对应的数组名和所述变量对应的元素在数组中的顺序。
4.根据权利要求3所述的方法,其特征在于,还包括:
初始化时,确定每一字节数在flash中对应的存储区域;
根据所述存储区域确定每一字节数对应的所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值;
根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中。
5.根据权利要求4所述的方法,其特征在于,根据所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值,将各变量对应的变量值加载到ram中,包括:
若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则根据所述个数、所述前M个字节的值,每一变量的剩余N-M个字节的值,拼接得到的所述连续多个变量对应的变量值;
根据所述连续多个变量中第一变量对应的ram初始地址,加载所述连续多个变量对应的变量值。
6.根据权利要求5所述的方法,其特征在于,还包括:
根据所述标识确定所述变量对应的数组名和所述变量对应的元素在数组中的顺序;
将数组名相同的K个变量按照所述顺序组合成数组。
7.一种变量处理装置,其特征在于,所述装置包括:
响应模块,用于响应于用户触发的存储请求,对ram中待存储的变量按变量值占用的字节数进行分类;
排序模块,用于针对每一字节数,对所述字节数对应的变量按变量值进行排序;
存储模块,用于在存在连续多个变量对应的变量值中部分字节相同时,将所述连续多个变量中第一个变量的ram初始地址、所述部分字节的值、所述连续多个变量的个数、所述连续多个变量中每一变量除所述部分字节以外的其它字节的值存储到flash中;
所述存储模块,具体用于若连续多个变量中每个变量对应的变量值所占字节数为N,且对应的多个变量值的前M个字节相同,则将所述连续多个变量中的第一个变量的ram初始地址、所述前M个字节的值、所述连续多个变量的个数以及每一变量的剩余N-M个字节的值存储到flash中;
其中,M和N均为正整数且M小于N。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546416.XA CN114168085B (zh) | 2021-12-16 | 2021-12-16 | 变量处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111546416.XA CN114168085B (zh) | 2021-12-16 | 2021-12-16 | 变量处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168085A CN114168085A (zh) | 2022-03-11 |
CN114168085B true CN114168085B (zh) | 2024-02-20 |
Family
ID=80487058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111546416.XA Active CN114168085B (zh) | 2021-12-16 | 2021-12-16 | 变量处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168085B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999014673A1 (en) * | 1997-09-16 | 1999-03-25 | Phoenix Technologies Ltd. | Data transfer to a non-volatile storage medium |
CN1388443A (zh) * | 2001-05-28 | 2003-01-01 | 佳能株式会社 | 用于数据压缩的方法、装置、计算机程序和存储介质 |
CN101241508A (zh) * | 2007-08-01 | 2008-08-13 | 金立 | 结构化数据序列的压缩方法 |
CN101854231A (zh) * | 2010-05-27 | 2010-10-06 | 武汉虹信通信技术有限责任公司 | 基于协议模型的协议编解码方法 |
CN102104548A (zh) * | 2011-03-02 | 2011-06-22 | 中兴通讯股份有限公司 | 一种数据包接收处理方法和装置 |
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN102754078A (zh) * | 2009-09-30 | 2012-10-24 | 信飞***公司 | 使用压缩和解压缩的增强型多处理器波形数据交换 |
CN103915897A (zh) * | 2014-02-28 | 2014-07-09 | 电信科学技术仪表研究所 | 一种数字化变电站采样值的监测方法及其监测装置 |
CN104363175A (zh) * | 2014-11-21 | 2015-02-18 | 迈普通信技术股份有限公司 | 一种资源表构建方法和装置 |
CN106202213A (zh) * | 2016-06-28 | 2016-12-07 | 深圳市恒扬数据股份有限公司 | 一种fpga二进制文件压缩、解压方法及压缩、解压装置 |
CN106843955A (zh) * | 2017-01-17 | 2017-06-13 | 西安电子科技大学 | 基于文件压缩及非接触式的fpga动态配置方法 |
CN106980465A (zh) * | 2015-11-30 | 2017-07-25 | 瑞萨电子株式会社 | 半导体装置、数据处理***和半导体装置控制方法 |
CN107729406A (zh) * | 2017-09-25 | 2018-02-23 | 深圳达实智能股份有限公司 | 一种数据分类存储方法及装置 |
CN108370311A (zh) * | 2015-12-15 | 2018-08-03 | 皇家飞利浦有限公司 | 计算设备和方法 |
CN109787638A (zh) * | 2019-01-10 | 2019-05-21 | 杭州幻方科技有限公司 | 一种数据压缩存储处理装置及方法 |
CN110383319A (zh) * | 2017-01-31 | 2019-10-25 | 益百利信息解决方案公司 | 大规模异构数据摄取和用户解析 |
CN113742332A (zh) * | 2020-05-29 | 2021-12-03 | 北京金山云网络技术有限公司 | 数据存储方法、装置、设备及存储介质 |
-
2021
- 2021-12-16 CN CN202111546416.XA patent/CN114168085B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999014673A1 (en) * | 1997-09-16 | 1999-03-25 | Phoenix Technologies Ltd. | Data transfer to a non-volatile storage medium |
CN1388443A (zh) * | 2001-05-28 | 2003-01-01 | 佳能株式会社 | 用于数据压缩的方法、装置、计算机程序和存储介质 |
CN101241508A (zh) * | 2007-08-01 | 2008-08-13 | 金立 | 结构化数据序列的压缩方法 |
CN102754078A (zh) * | 2009-09-30 | 2012-10-24 | 信飞***公司 | 使用压缩和解压缩的增强型多处理器波形数据交换 |
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN101854231A (zh) * | 2010-05-27 | 2010-10-06 | 武汉虹信通信技术有限责任公司 | 基于协议模型的协议编解码方法 |
CN102104548A (zh) * | 2011-03-02 | 2011-06-22 | 中兴通讯股份有限公司 | 一种数据包接收处理方法和装置 |
CN103915897A (zh) * | 2014-02-28 | 2014-07-09 | 电信科学技术仪表研究所 | 一种数字化变电站采样值的监测方法及其监测装置 |
CN104363175A (zh) * | 2014-11-21 | 2015-02-18 | 迈普通信技术股份有限公司 | 一种资源表构建方法和装置 |
CN106980465A (zh) * | 2015-11-30 | 2017-07-25 | 瑞萨电子株式会社 | 半导体装置、数据处理***和半导体装置控制方法 |
CN108370311A (zh) * | 2015-12-15 | 2018-08-03 | 皇家飞利浦有限公司 | 计算设备和方法 |
CN106202213A (zh) * | 2016-06-28 | 2016-12-07 | 深圳市恒扬数据股份有限公司 | 一种fpga二进制文件压缩、解压方法及压缩、解压装置 |
CN106843955A (zh) * | 2017-01-17 | 2017-06-13 | 西安电子科技大学 | 基于文件压缩及非接触式的fpga动态配置方法 |
CN110383319A (zh) * | 2017-01-31 | 2019-10-25 | 益百利信息解决方案公司 | 大规模异构数据摄取和用户解析 |
CN107729406A (zh) * | 2017-09-25 | 2018-02-23 | 深圳达实智能股份有限公司 | 一种数据分类存储方法及装置 |
CN109787638A (zh) * | 2019-01-10 | 2019-05-21 | 杭州幻方科技有限公司 | 一种数据压缩存储处理装置及方法 |
CN113742332A (zh) * | 2020-05-29 | 2021-12-03 | 北京金山云网络技术有限公司 | 数据存储方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114168085A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2734391B2 (ja) | 不揮発性メモリのファイル管理装置 | |
KR910005170A (ko) | 퍼스널 컴퓨터 시스템을 위한 bios 적재 장치 및 방법 | |
CN107526540B (zh) | 数据储存装置及其数据维护方法 | |
US8291149B2 (en) | Storage device and storage system having a hard disk drive and flash memory | |
CN103970557A (zh) | 存储设备启动***的方法及存储设备 | |
US8180930B2 (en) | Information processing device, and device initialization method in the information processing device | |
CN105824678A (zh) | 一种操作***安装方法及装置 | |
CN105224309A (zh) | 一种调取函数的方法和装置 | |
CN110297726B (zh) | 具有串行存在检测数据的计算机***及内存模块控制方法 | |
JP2010515128A (ja) | 不揮発性メモリにおけるデータを管理する方法 | |
US6967869B1 (en) | Method and device to improve USB flash write performance | |
CN114168085B (zh) | 变量处理方法、装置、设备及存储介质 | |
CN111694580B (zh) | 存储设备升级及初始化的方法、装置、电子设备 | |
CN110209349B (zh) | 数据处理的方法及终端设备 | |
CN102236615B (zh) | 用单个***设备应用代码控制多个***设备的***和方法 | |
CN106293708B (zh) | 信息处理方法及存储设备 | |
CN109960611B (zh) | 数据恢复的方法、装置、电子设备及机器可读存储介质 | |
KR20060106134A (ko) | Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치 | |
CN113345510A (zh) | 一种flash的容量识别方法及容量识别*** | |
CN113760193A (zh) | 用于资源受限制装置的数据读写方法、装置及指令集 | |
CN112199116A (zh) | 操作数栈寄存器识别方法、装置、设备及存储介质 | |
CN101000554B (zh) | 用于下载***程序的方法及*** | |
CN112527745B (zh) | 嵌入式文件***多分区解析方法、终端设备及存储介质 | |
CN117577154A (zh) | 闪存模拟电可擦除可编程只读存储器的方法及相关装置 | |
CN109344089B (zh) | 一种操作norflash的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |