CN112905112B - 一种嵌入式设备的数据处理方法及系统 - Google Patents
一种嵌入式设备的数据处理方法及系统 Download PDFInfo
- Publication number
- CN112905112B CN112905112B CN202110176654.XA CN202110176654A CN112905112B CN 112905112 B CN112905112 B CN 112905112B CN 202110176654 A CN202110176654 A CN 202110176654A CN 112905112 B CN112905112 B CN 112905112B
- Authority
- CN
- China
- Prior art keywords
- data
- pointer
- head structure
- check value
- head
- 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
Images
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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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
- G06F3/0643—Management of files
-
- 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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种嵌入式设备的数据处理方法及系统,其中方法包括:S1用于设置第一结构体和第二结构体的步骤;S2用于将待存数据填写入第一结构体的步骤;S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤;S4用于将待存数据写入到预设的存储地址中的步骤。本发明所公开的嵌入式设备的数据处理方法及系统,无论利用文件系统保存数据还是利用无文件系统保存数据均可适用,可以方便的对数据结构化存储,灵活的修改或读取任意需要的数据段,并拥有数据校验和备份功能,降低数据损坏的可能性,提高数据的可修复性。
Description
技术领域
本发明设计计算机软件数据处理技术领域,尤其涉及一种嵌入式设备的数据处理方法及系统。
背景技术
在嵌入式系统设备运行中,系统软件需要对系统运行状态、外设运行数据及状态、联网状态、用户配置数据等数据保存监测,在设备运行状态下,这些数据可以在RAM中存储,随时使用,但是RAM中的数据往往会在掉电或者设备休眠时丢失。很多数据其实是需要在系统重新上电后能够恢复的,因此,这些数据往往在设备掉电前保存到ROM中,ROM种类很多,可以是EEPROM或Flash等。现有技术中,不同嵌入式系统,保存数据的方法也不同。
对于使用嵌入式实时操作系统的软件来说,系统软件可以使用文件系统接口以文件的形式保存数据;如果利用文件系统保存数据,一般是需要将要写入的数据分类存储到不同的文件中以文件的形式管理数据。对于无OS的系统软件因为无文件系统支持,往往是通过直接内存地址访问或者一些通用串行接口(比如SPI,I2C等)向存储设备写入数据;如果利用无文件系统保存数据,要向存储器写入数据,一般会先将存储器根据不同的数据大小、类型等特点预先规划它在存储器中的位置,每组数据的存储位置是固定的,并且规划好的,系统运行时无法更改。现有技术中的这两种数据处理方法,无论利用文件系统保存数据还是利用无文件系统保存数据,当设备异常断点或重启时,仍会发生数据无法正确写入ROM,甚至破坏ROM已存储的数据,无法保证数据的安全性及可靠性。
发明内容
本发明的目的是提供一种嵌入式设备的数据处理方法及系统。
本发明所提供的嵌入式设备的数据处理方法,包括:S1用于设置第一结构体和第二结构体的步骤;S2用于将待存数据填写入第一结构体的步骤;S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤;S4用于将待存数据写入到预设的存储地址中的步骤。
所述S2用于将待存数据填写入第一结构体的步骤与所述S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤之间,还设有如下步骤:用于判断第二结构体的指针中是否包含第二头结构,当第二结构体的指针中包含第二头结构,则执行第一数据处理步骤;当第二结构体的指针中不包含第二头结构,则执行第二数据处理。
所述第一数据处理步骤包括:判断第三指针是否为结构体指针;当第三指针为结构体指针时,执行第二数据处理步骤;当第三指针并非结构体指针时,计算第三指针指向的存储地址的大小值和校验值,并将第三指针指向的存储地址的大小值和校验值写入第一结构体的第三头结构中。
所述第二数据处理步骤包括:将第二结构体中的非指针头结构进行填写;判断第二指针是否为结构体指针,当第二指针为结构体指针时,返回执行将第二结构体中的非指针头结构进行填写的步骤;当第二指针并非结构体指针时,执行第四头结构的数据写入操作并执行第五头结构的数据写入操作。
所述第四头结构的数据写入操作为:计算第二指针指向的存储地址的大小值和校验值,并将第二指针指向的存储地址的大小值和校验值写入第二结构体的第四头结构中。
所述第五头结构的数据写入操作为:计算第一指针指向的存储地址的大小值和校验值,并将第一指针指向的存储地址的大小值和校验值写入第二结构体的第五头结构中。
所述S4用于将待存数据写入到预设的存储地址中的步骤,包括:S41用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中;S42用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中;S43用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中。
本发明所提供的嵌入式设备的数据处理方法,还包括:S201计算新的数据的大小值和校验值;S202根据新的数据的大小值和校验值修改第二结构体中的所述第四头结构的数据大小值和校验值;S203计算第二结构体中的第一指针所指向的存储区域的数据大小值和校验值;S204根据第二结构体中的第一指针所指向的存储区域的数据大小值和校验值修改第二结构体中所述第五头结构的数据大小值和校验值;S205第二结构体中所述第五头结构在存储器中所对应的地址;S206将第一指针所指向的数据保存在所述第二结构体中所述第五头结构在存储器中所对应的地址中;S207确定新的数据在存储地址中所对应的地址;S208将新的数据保存在S207所确定的地址中。
本发明所提供的嵌入式设备的数据处理方法,还包括:S301计算第二结构体中的第四头结构的偏移地址;S302计算待读取数据的偏移地址;S303读出第二结构体中的第四头结构的数据;S304根据第二结构体中的第四头结构的偏移地址读出第四头结构中的数据的大小值;S305计算第四头结构中的数据的校验值;S306将读出的第四头结构中的数据的校验值与原第四头结构中的校验值进行比对,如二者相等,则判定第四头结构中的数据读取成功;如二者不相等,则判定为第四头结构中的数据读取失败或判定为第四头结构中的数据损坏。
所述设置第一结构体的步骤,包括:用于向第一结构体设置第一头结构和第一数据单元的步骤;用于向第二结构体设置第一指针的步骤;用于向第一结构体设置第三头结构和第三指针的步骤。
所述设置第二结构体的步骤,包括:用于向第二结构体设置第五结构头和第二数据单元的步骤;用于向第二结构体设置第四头结构的步骤;用于向第二结构体设置第二指针的步骤。
本发明所提供的嵌入式设备的数据处理系统,包括:用于设置第一结构体和第二结构体的模块;用于将待存数据填写入第一结构体的模块;用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的模块;用于将待存数据写入到预设的存储地址中的模块。
本发明所提供的嵌入式设备的数据处理方法及系统,无论利用文件系统保存数据还是利用无文件系统保存数据均可适用,可以方便的对数据结构化存储,灵活的修改或读取任意需要的数据段,并拥有数据校验和备份功能,降低数据损坏的可能性,提高数据的可修复性。
附图说明
图1为本发明实施例一所述的嵌入式设备的数据处理方法的流程示意图;
图2为本发明实施例一所述的嵌入式设备的数据处理方法中数据修改步骤示意图;
图3为本发明实施例一所述的嵌入式设备的数据处理方法中数据读取步骤示意图;
图4为本发明实施例一和实施例二中所述的第一结构体及第二结构体示意图;
其中:a_header:第一头结构;paraA:第一数据单元;pb:第一指针;pc_header:第三头结构;Pc:第三指针;pb_header:第五头结构;dataB:第二数据单元;pd_header:第四头结构;pd:第二指针;dataC:第三数据单元;dataD:第四数据单元;
图5为本发明实施例一和实施例二所述的header_t数据结构示意图;
图6为发明实施例一和实施例二所述的第一结构体数据存储示意图;
图7为发明实施例一和实施例二所述的第一结构体及第二结构体数据存储示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,本发明所提供的嵌入式设备的数据处理方法,包括:
S1用于设置第一结构体和第二结构体的步骤;
S2用于将待存数据填写入第一结构体的步骤;
S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤;
S4用于将待存数据写入到预设的存储地址中的步骤。
所述S2用于将待存数据填写入第一结构体的步骤与所述S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤之间,还设有如下步骤:
用于判断第二结构体的指针中是否包含第二头结构,当第二结构体的指针中包含第二头结构,则执行第一数据处理步骤;当第二结构体的指针中不包含第二头结构,则执行第二数据处理步骤。
所述第一数据处理步骤包括:
判断第三指针是否为结构体指针;当第三指针为结构体指针时,执行第二数据处理步骤;当第三指针并非结构体指针时,计算第三指针指向的存储地址的大小值和校验值,并将第三指针指向的存储地址的大小值和校验值写入第一结构体的第三头结构中。
所述第二数据处理步骤包括:
将第二结构体中的非指针头结构进行填写;
判断第二指针是否为结构体指针,当第二指针为结构体指针时,返回执行将第二结构体中的非指针头结构进行填写的步骤;当第二指针并非结构体指针时,执行第四头结构的数据写入操作并执行第五头结构的数据写入操作。
所述第四头结构的数据写入操作为:计算第二指针指向的存储地址的大小值和校验值,并将第二指针指向的存储地址的大小值和校验值写入第二结构体的第四头结构中。
所述第五头结构的数据写入操作为:计算第一指针指向的存储地址的大小值和校验值,并将第一指针指向的存储地址的大小值和校验值写入第二结构体的第五头结构中。
所述S4用于将待存数据写入到预设的存储地址中的步骤,包括:
S41用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中;
S42用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中;
S43用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中。
用于将待存数据填写入第一结构体的步骤,如采用利用文件系统保存数据,则将数据存入预设的文件中;如采用无文件系统保存数据,则将数据存入存储器中;用于将用于将待存数据填写入第一结构体的步骤,还包括操作将Offset标识移到存储器地址或文件地址的尾部。
用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中,所述第一存储地址可以是第一文件,也可以是第一存储器地址;如采用利用文件系统保存数据,则将第二结构体中的第一指针指向的数据写入预设的第一文件中;如采用无文件系统保存数据,则将第二结构体中的第一指针指向的数据写入预设的第一存储器地址中;用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中的步骤,还包括操作将Offset标识移到第一文件或第一存储器地址的尾部。
用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中,所述第二存储地址可以是第二文件,也可以是第二存储器地址;如采用利用文件系统保存数据,则将第二结构体中的第二指针指向的数据写入预设的第二文件中;如采用无文件系统保存数据,则将第二结构体中的第二指针指向的数据写入预设的第二存储器地址中;用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中的步骤,还包括操作将Offset标识移到第二文件或第二存储器地址的尾部。
用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中,所述第三存储地址可以是第三文件,也可以是第三存储器地址;如采用利用文件系统保存数据,则将第一结构体中的第三指针指向的数据写入预设的第三文件中;如采用无文件系统保存数据,则将第一结构体中的第三指针指向的数据写入预设的第三存储器地址中;用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中的步骤,还包括操作将Offset标识移到第三文件或第三存储器地址的尾部。
本实施例所提供的嵌入式设备的数据处理方法,还包括数据修改步骤,具体包括:
S201计算新的数据的大小值和校验值;
S202根据新的数据的大小值和校验值修改第二结构体中的所述第四头结构的数据大小值和校验值;
S203计算第二结构体中的第一指针所指向的存储区域的数据大小值和校验值;
S204根据第二结构体中的第一指针所指向的存储区域的数据大小值和校验值修改第二结构体中所述第五头结构的数据大小值和校验值;
S205第二结构体中所述第五头结构在存储器中所对应的地址;
S206将第一指针所指向的数据保存在所述第二结构体中所述第五头结构在存储器中所对应的地址中;
S207确定新的数据在存储地址中所对应的地址;
S208将新的数据保存在S207所确定的地址中。
本领域技术人员可以理解,上述数据修改步骤可用于对第二结构体中的第二指针所指向的数据进行修改。本领域技术人员可以理解,对第二结构体中的第二指针所指向的数据进行修改,会导致该数据的校验值发生变化,但是第一结构体的数据不会受到影响,因而采用上述步骤,只将第一指针所指向的地址重新进行保存即可完成上述数据修改过程。同理,当对第一结构体中的第三指针所指向的数据进行修改,也会导致该数据的校验值发生变化,但是第二结构体的数据同样也不会收到影响,因而采用同上述步骤一致的方法,只将第三指针所指向的地址重新进行保存即可完成对第一结构体中的第三指针所指向的数据进行修改的过程,这里不再进行赘述。
本实施例所提供的嵌入式设备的数据处理方法,还包括数据读取步骤,具体包括:
S301计算第二结构体中的第四头结构的偏移地址;
S302计算待读取数据的偏移地址;
S303读出第二结构体中的第四头结构的数据;
S304根据第二结构体中的第四头结构的偏移地址读出第四头结构中的数据的大小值;
S305计算第四头结构中的数据的校验值;
S306将读出的第四头结构中的数据的校验值与原第四头结构中的校验值进行比对,如二者相等,则判定第四头结构中的数据读取成功;如二者不相等,则判定为第四头结构中的数据读取失败或判定为第四头结构中的数据损坏。
本领域技术人员可以理解,上述数据读取步骤用于读取第二结构体中的第四头结构中的数据;当读取第一结构体中第三头结构中的数据时,采用同理的数据读取方式,这里不再进行赘述。
如图4至图7所示,所述设置第一结构体的步骤,包括:
用于向第一结构体设置第一头结构和第一数据单元的步骤;
用于向第二结构体设置第一指针的步骤;
用于向第一结构体设置第三头结构和第三指针的步骤。
本领域技术人员可以理解,所述第一头结构、第一数据单元、第一指针、第三头结构和第三指针在第一结构体中依次按序设置。
所述设置第二结构体的步骤,包括:
用于向第二结构体设置第五结构头和第二数据单元的步骤;
用于向第二结构体设置第四头结构的步骤;
用于向第二结构体设置第二指针的步骤。
本领域技术人员可以理解,所述第五头结构、第二数据单元、第四头结构、第二指针在第二结构体中依次按序设置。
本领域技术人员可以理解,
所述第一结构体,用于记录设备要保存的数据的结构体;
所述第一头结构,用于记录第一结构体的类型数据自身的校验值和占用的字节数,所述第一头结构为header_t类型数据;
所述第一数据单元,用于表示特定场景下需要记录保存的数据,可根据具体场景进行配置一个或多个第一数据单元;所述第一数据单元为非指针类型数据;
所述第一指针,用于指向一个以第二结构体为数据单元的存储地址;所述第一指针为第二结构体类型的指针;
所述第五头结构,用于保存第二结构体类型数据的校验值和大小;所述所述第五头结构为header_t类型数据;
所述第三头结构,用于描述指针指针pc所指向的内存区域的数据校验值和大小;所述第三头结构header_t类型数据;
所述第三指针,可以是结构体指针,也可以是非结构体指针;当所述第三指针是结构体指针时,所述第三指针不包含header_t类型的成员;
所述第二头结构,包含用于存储校验码的成员和用于描述数据大小的成员。
本领域技术人员可以理解,对需要隔离存储的数据必须包含第二头结构。所述需要隔离存储的数据,是在未来需要修改某一部分存储的数据时不会对其他部分数据造成影响的数据。
本发明所提供的嵌入式设备的数据处理方法,如采用利用文件系统保存数据,可实现节省存储空间,降低文件碎片化,提高数据存储的机构性;如采用五文件系统保存数据时,即使数据超过了预定的大小,数据仍可确保正数据保存的正确性和安全性;本发明所提供的嵌入式设备的数据处理方法,即使在设备异常端点或重启时,仍可保证数据的正确写入且不会破坏ROM中的现有数据,保证数据安全性。
实施例二
本发明所提供的嵌入式设备的数据处理系统,包括:
用于设置第一结构体和第二结构体的模块;
用于将待存数据填写入第一结构体的模块;
用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的模块;
用于将待存数据写入到预设的存储地址中的模块。
本实施例所提供的嵌入式设备的数据处理系统,还包括:
用于判断第二结构体的指针中是否包含第二头结构的模块;
用于当第二结构体的指针中包含第二头结构时,进行数据处理的第一数据处理模块;
用于当第二结构体的指针中不包含第二头结构时,进行数据处理的第二数据处理模块。
所述第一数据处理模块,包括:
用于判断第三指针是否为结构体指针的子模块;
用于当第三指针并非结构体指针时,计算第三指针指向的存储地址的大小值和校验值,并将第三指针指向的存储地址的大小值和校验值写入第一结构体的第三头结构中的子模块。
所述第二数据处理模块,包括
用于将第二结构体中的非指针头结构进行填写的子模块;
用于判断第二指针是否为结构体指针,当第二指针并非结构体指针时,控制执行第四头结构的数据写入操作并执行第五头结构的数据写入操作的子模块。
所述用于判断第二指针是否为结构体指针,当第二指针并非结构体指针时,控制执行第四头结构的数据写入操作并执行第五头结构的数据写入操作的子模块,包括:
用于计算第二指针指向的存储地址的大小值和校验值,并将第二指针指向的存储地址的大小值和校验值写入第二结构体的第四头结构中的模块单元。
用于计算第一指针指向的存储地址的大小值和校验值,并将第一指针指向的存储地址的大小值和校验值写入第二结构体的第五头结构中的模块单元。
所述用于将待存数据写入到预设的存储地址中的模块,包括:
用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中的子模块;
用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中的子模块;
用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中的子模块。
用于将待存数据填写入第一结构体,如采用利用文件系统保存数据,则将数据存入预设的文件中;如采用无文件系统保存数据,则将数据存入存储器中;用于将用于将待存数据填写入第一结构体,还包括操作将Offset标识移到存储器地址或文件地址的尾部。
用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中,所述第一存储地址可以是第一文件,也可以是第一存储器地址;如采用利用文件系统保存数据,则将第二结构体中的第一指针指向的数据写入预设的第一文件中;如采用无文件系统保存数据,则将第二结构体中的第一指针指向的数据写入预设的第一存储器地址中;用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中,还包括操作将Offset标识移到第一文件或第一存储器地址的尾部。
用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中,所述第二存储地址可以是第二文件,也可以是第二存储器地址;如采用利用文件系统保存数据,则将第二结构体中的第二指针指向的数据写入预设的第二文件中;如采用无文件系统保存数据,则将第二结构体中的第二指针指向的数据写入预设的第二存储器地址中;用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中,还包括操作将Offset标识移到第二文件或第二存储器地址的尾部。
用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中,所述第三存储地址可以是第三文件,也可以是第三存储器地址;如采用利用文件系统保存数据,则将第一结构体中的第三指针指向的数据写入预设的第三文件中;如采用无文件系统保存数据,则将第一结构体中的第三指针指向的数据写入预设的第三存储器地址中;用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中,还包括操作将Offset标识移到第三文件或第三存储器地址的尾部。
本实施例所提供的嵌入式设备的数据处理系统,还包括数据修改模块,具体包括:
用于计算新的数据的大小值和校验值的子模块;
用于根据新的数据的大小值和校验值修改第二结构体中的所述第四头结构的数据大小值和校验值的子模块;
用于计算第二结构体中的第一指针所指向的存储区域的数据大小值和校验值的子模块;
用于根据第二结构体中的第一指针所指向的存储区域的数据大小值和校验值修改第二结构体中所述第五头结构的数据大小值和校验值的子模块;
用于第二结构体中所述第五头结构在存储器中所对应的地址的子模块;
用于将第一指针所指向的数据保存在所述第二结构体中所述第五头结构在存储器中所对应的地址中的子模块;
用于确定新的数据在存储地址中所对应的地址的子模块;
用于将新的数据保存在S207所确定的地址中的子模块。
本领域技术人员可以理解,上述数据修改可用于对第二结构体中的第二指针所指向的数据进行修改。本领域技术人员可以理解,对第二结构体中的第二指针所指向的数据进行修改,会导致该数据的校验值发生变化,但是第一结构体的数据不会受到影响,因而只将第一指针所指向的地址重新进行保存即可完成上述数据修改过程。同理,当对第一结构体中的第三指针所指向的数据进行修改,也会导致该数据的校验值发生变化,但是第二结构体的数据同样也不会收到影响,因而采用只将第三指针所指向的地址重新进行保存即可完成对第一结构体中的第三指针所指向的数据进行修改的过程,这里不再进行赘述。
本实施例所提供的嵌入式设备的数据处理系统,还包括数据读取模块,具体包括:
用于计算第二结构体中的第四头结构的偏移地址的子模块;
用于计算待读取数据的偏移地址的子模块;
用于读出第二结构体中的第四头结构的数据的子模块;
用于根据第二结构体中的第四头结构的偏移地址读出第四头结构中的数据的大小值的子模块;
用于计算第四头结构中的数据的校验值的子模块;
用于将读出的第四头结构中的数据的校验值与原第四头结构中的校验值进行比对,如二者相等,则判定第四头结构中的数据读取成功;如二者不相等,则判定为第四头结构中的数据读取失败或判定为第四头结构中的数据损坏的子模块。
本领域技术人员可以理解,上述数据读取用于读取第二结构体中的第四头结构中的数据;当读取第一结构体中第三头结构中的数据时,采用同理的数据读取方式,这里不再进行赘述。
所述用于设置第一结构体的模块,包括:
用于向第一结构体设置第一头结构和第一数据单元的子模块;
用于向第二结构体设置第一指针的子模块;
用于向第一结构体设置第三头结构和第三指针的子模块。
本领域技术人员可以理解,所述第一头结构、第一数据单元、第一指针、第三头结构和第三指针在第一结构体中依次按序设置。
所述用于设置第二结构体的模块,包括:
用于向第二结构体设置第五结构头和第二数据单元的子模块;
用于向第二结构体设置第四头结构的子模块;
用于向第二结构体设置第二指针的子模块。
本领域技术人员可以理解,所述第五头结构、第二数据单元、第四头结构、第二指针在第二结构体中依次按序设置。
本领域技术人员可以理解,
所述第一结构体,用于记录设备要保存的数据的结构体;
所述第一头结构,用于记录第一结构体的类型数据自身的校验值和占用的字节数,所述第一头结构为header_t类型数据;
所述第一数据单元,用于表示特定场景下需要记录保存的数据,可根据具体场景进行配置一个或多个第一数据单元;所述第一数据单元为非指针类型数据;
所述第一指针,用于指向一个以第二结构体为数据单元的存储地址;所述第一指针为第二结构体类型的指针;
所述第五头结构,用于保存第二结构体类型数据的校验值和大小;所述所述第五头结构为header_t类型数据;
所述第三头结构,用于描述指针指针pc所指向的内存区域的数据校验值和大小;所述第三头结构header_t类型数据;
所述第三指针,可以是结构体指针,也可以是非结构体指针;当所述第三指针是结构体指针时,所述第三指针不包含header_t类型的成员;
所述第二头结构,包含用于存储校验码的成员和用于描述数据大小的成员。
本领域技术人员可以理解,对需要隔离存储的数据必须包含第二头结构。所述需要隔离存储的数据,是在未来需要修改某一部分存储的数据时不会对其他部分数据造成影响的数据。
本发明所提供的嵌入式设备的数据处理系统,如采用利用文件系统保存数据,可实现节省存储空间,降低文件碎片化,提高数据存储的机构性;如采用五文件系统保存数据时,即使数据超过了预定的大小,数据仍可确保正数据保存的正确性和安全性;本发明所提供的嵌入式设备的数据处理系统,即使在设备异常端点或重启时,仍可保证数据的正确写入且不会破坏ROM中的现有数据,保证数据安全性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种嵌入式设备的数据处理方法,其特征在于,包括:
S1用于设置第一结构体和第二结构体的步骤;
S2用于将待存数据填写入第一结构体的步骤;
S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤;
S4用于将待存数据写入到预设的存储地址中的步骤;
所述S2用于将待存数据填写入第一结构体的步骤与所述S3用于计算第一结构体的大小值和校验值,并将所述第一结构体的大小值和校验值写入第一结构体的第一头结构中的步骤之间,还设有如下步骤:
用于判断第二结构体的指针中是否包含第二头结构,当第二结构体的指针中包含第二头结构,则执行第一数据处理步骤;当第二结构体的指针中不包含第二头结构,则执行第二数据处理步骤;
所述第一数据处理步骤包括:
判断第三指针是否为结构体指针;当第三指针为结构体指针时,执行第二数据处理步骤;当第三指针并非结构体指针时,计算第三指针指向的存储地址的大小值和校验值,并将第三指针指向的存储地址的大小值和校验值写入第一结构体的第三头结构中;
所述第二数据处理步骤包括:
将第二结构体中的非指针头结构进行填写;
判断第二指针是否为结构体指针,当第二指针为结构体指针时,返回执行将第二结构体中的非指针头结构进行填写的步骤;当第二指针并非结构体指针时,执行第四头结构的数据写入操作并执行第五头结构的数据写入操作。
2.如权利要求1所述的嵌入式设备的数据处理方法,其特征在于,所述第四头结构的数据写入操作为:计算第二指针指向的存储地址的大小值和校验值,并将第二指针指向的存储地址的大小值和校验值写入第二结构体的第四头结构中。
3.如权利要求2所述的嵌入式设备的数据处理方法,其特征在于,所述第五头结构的数据写入操作为:计算第一指针指向的存储地址的大小值和校验值,并将第一指针指向的存储地址的大小值和校验值写入第二结构体的第五头结构中。
4.如权利要求3所述的嵌入式设备的数据处理方法,其特征在于,所述S4用于将待存数据写入到预设的存储地址中的步骤,包括:
S41用于将第二结构体中的第一指针指向的数据写入预设的第一存储地址中;
S42用于将第二结构体中的第二指针指向的数据写入预设的第二存储地址中;
S43用于将第一结构体中的第三指针指向的数据写入预设的第三存储地址中。
5.如权利要求4所述的嵌入式设备的数据处理方法,其特征在于,还包括:
S201计算新的数据的大小值和校验值;
S202根据新的数据的大小值和校验值修改第二结构体中的所述第四头结构的数据大小值和校验值;
S203计算第二结构体中的第一指针所指向的存储区域的数据大小值和校验值;
S204根据第二结构体中的第一指针所指向的存储区域的数据大小值和校验值修改第二结构体中所述第五头结构的数据大小值和校验值;
S205第二结构体中所述第五头结构在存储器中所对应的地址;
S206将第一指针所指向的数据保存在所述第二结构体中所述第五头结构在存储器中所对应的地址中;
S207确定新的数据在存储地址中所对应的地址;
S208将新的数据保存在S207所确定的地址中。
6.如权利要求5所述的嵌入式设备的数据处理方法,其特征在于,还包括:还包括:
S301计算第二结构体中的第四头结构的偏移地址;
S302计算待读取数据的偏移地址;
S303读出第二结构体中的第四头结构的数据;
S304根据第二结构体中的第四头结构的偏移地址读出第四头结构中的数据的大小值;
S305计算第四头结构中的数据的校验值;
S306将读出的第四头结构中的数据的校验值与原第四头结构中的校验值进行比对,如二者相等,则判定第四头结构中的数据读取成功;如二者不相等,则判定为第四头结构中的数据读取失败或判定为第四头结构中的数据损坏。
7.如权利要求1至6中任一项所述的嵌入式设备的数据处理方法,
所述设置第一结构体的步骤,包括:
用于向第一结构体设置第一头结构和第一数据单元的步骤;
用于向第二结构体设置第一指针的步骤;
用于向第一结构体设置第三头结构和第三指针的步骤;
所述设置第二结构体的步骤,包括:
用于向第二结构体设置第五结构头和第二数据单元的步骤;
用于向第二结构体设置第四头结构的步骤;
用于向第二结构体设置第二指针的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110176654.XA CN112905112B (zh) | 2021-02-09 | 2021-02-09 | 一种嵌入式设备的数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110176654.XA CN112905112B (zh) | 2021-02-09 | 2021-02-09 | 一种嵌入式设备的数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112905112A CN112905112A (zh) | 2021-06-04 |
CN112905112B true CN112905112B (zh) | 2023-03-31 |
Family
ID=76123078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110176654.XA Active CN112905112B (zh) | 2021-02-09 | 2021-02-09 | 一种嵌入式设备的数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905112B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021002A (zh) * | 2016-04-29 | 2016-10-12 | 上海庆科信息技术有限公司 | 一种嵌入式设备数据读写方法及装置 |
CN107239415A (zh) * | 2016-03-28 | 2017-10-10 | 华为技术有限公司 | 一种执行临界区操作的方法及装置 |
CN109254879A (zh) * | 2018-09-27 | 2019-01-22 | 南方电网科学研究院有限责任公司 | 一种数据处理方法、系统、装置及可读存储介质 |
CN110442473A (zh) * | 2019-07-30 | 2019-11-12 | 深圳市元征科技股份有限公司 | 一种非易失性数据存储方法、装置、电子设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010103760A1 (ja) * | 2009-03-13 | 2010-09-16 | パナソニック株式会社 | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム |
-
2021
- 2021-02-09 CN CN202110176654.XA patent/CN112905112B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239415A (zh) * | 2016-03-28 | 2017-10-10 | 华为技术有限公司 | 一种执行临界区操作的方法及装置 |
CN106021002A (zh) * | 2016-04-29 | 2016-10-12 | 上海庆科信息技术有限公司 | 一种嵌入式设备数据读写方法及装置 |
CN109254879A (zh) * | 2018-09-27 | 2019-01-22 | 南方电网科学研究院有限责任公司 | 一种数据处理方法、系统、装置及可读存储介质 |
CN110442473A (zh) * | 2019-07-30 | 2019-11-12 | 深圳市元征科技股份有限公司 | 一种非易失性数据存储方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112905112A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7624298B2 (en) | Memory card, data processor, memory card control method and memory card setting | |
US20070055969A1 (en) | System and method for updating firmware | |
CN109032632B (zh) | 一种fota升级方法、无线通信终端及存储介质 | |
US20110029726A1 (en) | Data updating method, memory system and memory device | |
CN113626256B (zh) | 一种虚拟机磁盘数据备份方法、装置、终端及存储介质 | |
US8473784B2 (en) | Storage apparatus and method of data processing | |
JP2679715B2 (ja) | データ転送方法 | |
CN109582332B (zh) | 互联网摄像机的系统升级方法及装置 | |
CN112527566B (zh) | 设备掉电运行参数读写异常保护方法、系统和存储介质 | |
CN110941394A (zh) | 列车自动控制系统数据读写方法及装置 | |
CN113641390B (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN112905112B (zh) | 一种嵌入式设备的数据处理方法及系统 | |
US7257030B2 (en) | Operating a storage component | |
CN115562593A (zh) | 一种异常raid成员盘处理方法、装置及介质 | |
CN107168650B (zh) | 一种对bios的存储器中的数据的处理方法及装置 | |
CN112912841A (zh) | 硬件升级方法、装置、设备和存储介质 | |
CN110795155B (zh) | 系统启动方法及装置、电子设备、存储介质 | |
CN110825714A (zh) | 文件存储控制方法及其装置、文件存储装置、电子装置 | |
KR100706514B1 (ko) | 하드디스크상의 운영체제 부팅 방법 | |
US20110246841A1 (en) | Storing apparatus | |
WO2023060976A1 (zh) | 嵌入式文件系统的文件读写方法、电子设备及存储介质 | |
CN110554934B (zh) | 一种嵌入式设备及其系统分区和升级方法 | |
CN111292796B (zh) | 一种raid损坏详细信息获取方法、系统、终端及存储介质 | |
CN110333967B (zh) | 一种防止u盘数据丢失和系统损坏的方法和装置以及设备 | |
CN118093240A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |