CN101387984A - 存储管理方法和设备 - Google Patents
存储管理方法和设备 Download PDFInfo
- Publication number
- CN101387984A CN101387984A CNA200710145404XA CN200710145404A CN101387984A CN 101387984 A CN101387984 A CN 101387984A CN A200710145404X A CNA200710145404X A CN A200710145404XA CN 200710145404 A CN200710145404 A CN 200710145404A CN 101387984 A CN101387984 A CN 101387984A
- Authority
- CN
- China
- Prior art keywords
- address
- data item
- parameter
- item
- parameter item
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种对存储器中的多个数据项进行存储管理的方法,包括以下步骤:产生一个包含了所述数据项的结构体类型;创建结构体的首地址;以及通过宏定义的方式,获得所述数据项的地址以及数据长度。
Description
技术领域
本发明涉及一种对数据项进行存储管理的方法和设备,更具体地说,涉及一种在诸如EEPROM、外部FLASH等的非易失性存储器中对数据项进行存储管理的方法和设备。
背景技术
在现在的很多电子产品中,大多都支持让用户去设置一些参数以达到某种运作要求,比如工业设备的CanOpen设备、DeviceNet设备、PLC、HMI等等。一旦设置成功,这些设置参数不会因设备掉电丢失,这是因为这些参数都是被存储在非易失性存储器中的,比如外部Flash、EEPROM等。
图1示出了诸如HMI的设备中存在的参数类以及每个参数类中包含的参数。
比如,如图1的示例所示,在一个诸如HMI的设备中存在以下三种参数类型:设备标识参数类(identity)、通信参数类(communication)、内部设置参数类(internal set)。如图1所示,设备标识参数类中包含有device id、vender-id、product code、serial number、product name等参数,通信参数类中包含有protocol type、baudrate、parity check等参数,并且内部设置参数类中包含有display mode、light contrast等参数。
图2示出了图1所示参数项在EEPROM中的分布。
如图2所示,图1中所示的所有的这些参数项依次被分布在EEPROM中。图2中列出了参数的地址、长度、以及数据项名称。
在现有技术中按照目前做法,为了访问这些存储在非易失性存储器中的参数,我们会需要建立一个索引表,里面包含了每个参数的访问地址及数据长度,然后根据索引表获得参数的访问地址与存储长度对参数进行访问。
图3示出了根据现有技术的在MCU的ROM资源中存储的图1中参数项在EEPROM中分布的索引表。
如图3所示,为了管理与访问这些参数,我们会额外的在MCU的ROM资源中开辟两个数据块作为索引表。一个数据块用作存储数据项的地址,即图3中的地址信息块;另一块用来存储数据项的长度,即图3中的数据长度块。
这样一方面需要占用存储空间来保存索引表,而且需要人为地计算出每个参数的存储地址与数据长度,另一方面也会给日后的软件维护带来一定的困难,因为当需要删除、增加、修改一个参数项的时候,其它参数项的存储地址也需要进行重新计算,从而需要重新更改索引表,这样带来了很大的工作量。
发明内容
针对上述的缺点与不足,本发明可以有效改进现有技术中的常规方法,不需要建立索引表,所以不需要占用MCU的ROM资源中的存储空间来保存索引表,不需要进行索引地址与数据长度的人为计算,而且方便于日后的软件升级与维护,可以提高软件开发效率。
因此,本发明提供一种对存储器中的多个数据项进行存储管理的方法,包括以下步骤:产生一个包含了所述数据项的结构体类型;创建结构体的首地址;以及通过宏定义的方式,获得所述数据项的地址以及数据长度。
本发明还提供一种存储管理设备,包括:存储器,其存储多个可修改的数据项;和控制器,用于产生一个包含了存储器中的所述数据项的结构体类型,创建结构体的首地址,并通过宏定义的方式,获得所述数据项的地址以及数据长度。
本发明的数据项存储管理方法具有如下优点:
1.不需要额外地建立一个索引表,减少了存储资源。
2.采取结构体的方式,可以直观的进行参数项的分类管理。
3.不需要进行参数项的地址计算,既方便又可以避免计算错误带来的影响,省去做索引表的精力。
4.一旦结构体类型与参数项的地址与长度宏定义完成后,任何一个参数项的增加、删除与修改都不会带来其他参数项的地址与长度的重新计算。
附图说明
通过结合附图对本发明的优选实施例进行详细描述,本发明的上述和其他目的、特性和优点将会变得更加清楚,其中:
图1示出了诸如HMI的设备中存在的参数类以及每个参数类中包含的参数;
图2示出了图1所示参数项在EEPROM中的分布;
图3示出了根据现有技术的在MCU的ROM资源中存储的图1中参数项在EEPROM中分布的索引表;
图4示出了根据本发明定义的图1的参数类的结构体类型和定义参数类中的各参数项的子结构体类型;
图5示出了根据本发明的结构体的首地址设置;
图6示出了根据本发明的获得各参数项的地址以及长度的宏定义;
图7示出了根据本发明实施例的数据项存储管理方法的流程图;
图8示出了根据本发明实施例的存储管理设备的方框图;
图9示出了根据本发明的增加一个参数项时子结构体类型的定义;
图10示出了根据本发明的增加一个参数项时获得各参数项的地址以及长度的宏定义;
图11示出了增加一个参数项后参数项在EEPROM中的存储分布;
图12示出了根据本发明的删除一个参数项时子结构体类型的定义;
图13示出了根据本发明的删除一个参数项时获得各参数项的地址以及长度的宏定义;
图14示出了删除一个参数项后参数项在EEPROM中的存储分布;
图15示出了根据本发明修改一个参数项时子结构体类型的定义;
图16示出了修改一个参数项后参数项在EEPROM中的存储分布。
具体实施方式
通过借助附图在下文中将描述本发明的优选实施例。在以下描述中,将不详细描述众所周知的功能或结构,因为不必要的细节将导致本发明的介绍含混不清。
为了清楚、简明地描述本发明,在下面的具体实施例中,以图1中列举的HMI设备中的参数项为代表来对本发明的原理进行详细描述,然而,本领域技术人员应该明白本发明可以应用于具有其他设置参数的任何设备,因此在此不再对其赘述。
图4示出了根据本发明定义的图1的参数类的结构体类型以及定义参数类中的各参数项的子结构体类型。
由于结构体在存储区的地址分配是连续的,一旦给出一个确定的结构体存储首地址,那么结构体中的每个数据项都会被依次分配到该存储区,也就是说其中的每一个数据项地址与数据长度都可以被确定下来了。
在图4中,针对图1所示的HMI设备参数,其定义一个结构体类型(方框部分),其中包含3个子结构体,分别用来定义设备标识identity参数类(灰色部分),通信communication参数类(灰色部分),内部设置internal set参数类(灰色部分),而每个参数类中又包含了各自的参数项。由于图1中列举的设备包含了三个参数类,因此,在此仅给出三个子结构体,当设备包含三个以上或三个以下的参数类时,可根据情况定义相应个数的子结构体。
图5示出了根据本发明的结构体的首地址设置。
因为结构体在内存中是连续分配的,这样一旦结构体的首地址确定后,那么其中的每一个参数地址都确定下来了。例如,如图5所示将存储的首地址设为0x00000000。
图6示出了根据本发明的获得各参数项的地址以及长度的宏定义。
如图6所示,一旦确定首地址后,那么其中的每一参数项的地址与长度都会自动确定下来。而且这样做不需要去计算出每个参数项的具体地址,只要在完成每个参数项的地址与长度的宏定义后,我们就可以直接用这些宏去访问每个参数项,不需要自己花时间去计算每个参数项的地址与长度,可以省去做索引表的精力。
图7示出了根据本发明实施例的数据项存储管理方法的流程图。
如图7所示,在步骤S1,产生一个包含了数据项的结构体类型。在步骤S2,创建结构体的首地址。在步骤S3,通过宏定义的方式,获得所述数据项的地址以及数据长度。
图8示出了根据本发明实施例的存储管理设备10的方框图。
在图8中,所述存储管理设备10包括存储器110和控制器120。所述存储器110存储所述电子设备的设置参数项。控制器120用于产生一个包含了存储器中的所述数据项的结构体类型,创建结构体的首地址,并通过宏定义的方式,获得所述数据项的地址以及数据长度。并且该控制器120还进一步用于根据所获得的地址和数据长度对所述数据项进行存储和访问。
采取本发明列举的如上方法还能够方便地进行参数项的增加、删除、修改操作,描述如下。
1.增加一个参数项
图9示出了根据本发明的增加一个参数项时子结构体类型的定义。
比如,当在设备标识identity参数类中增加一个软件版本的参数项时,只需要在定义设备标识identity参数类的子结构体中插入SW-version(如图9的划线部分所示)。
图10示出了根据本发明的增加一个参数项时获得各参数项的地址以及长度的宏定义。
如图10的划线部分所示,在增加一个软件版本参数项时,加入该参数项的地址与长度的宏定义。这样,所有的参数项地址(宏定义)都会在下一次的编译中被重新调整。因此,与常规方法相比,不需要对其他参数项的地址进行重新计算。
图11示出了增加一个参数项后各参数项在EEPROM中的存储分布。
增加一个参数项后,如图11所示,划线部分示出了增加的参数项在EEPROM中的存储分布。
2.删除一个参数项
图12示出了根据本发明的删除一个参数项时子结构体类型的定义。并且图13示出了根据本发明的删除一个参数项时获得各参数项的地址以及长度的宏定义。
比如,当删除设备标识identity参数类中的一个生产商VendorID的参数项时,如图12中的删除线部分所示,只需要在子结构体中删除VenderID,并且如图13中的删除线部分所示,删除该参数项的地址与长度的宏定义。这样,所有的参数项地址(宏定义)都会在下一次的编译中被重新调整。因此,与常规方法相比,不需要对其他参数项的地址进行重新计算,而能够自动地确定。
图14示出了删除一个参数项后参数项在EEPROM中的存储分布。
删除一个参数项后,如图14所示,被删除参数项后的参数项的地址自动被重新编译。
3.修改一个参数项
图15示出了根据本发明修改一个参数项时子结构体类型的定义。
比如,当想要修改设备标识identity参数类中的产品名字ProductName,将原先的20个字节的存储现在扩大到100个字节时,只需要如图15的划线部分,在设备标识identity参数类的子结构体中修改数组空间为100。与常规方法相比,不需要对其他参数项的地址进行重新计算,因为所有的参数项地址(宏定义)都会在下一次的编译中被重新调整。
图16示出了修改一个参数项后参数项在EEPROM中的存储分布。如图16所示,修改一个参数项后,参数项在EEPROM中的所占用的地址和长度以及该修改参数项之后的参数项的地址都被自动重新调整。
虽然,上述增加、删除和修改都是针对特定子结构体的参数项进行的,但本领域技术人员应该理解,上述增加、删除和修改操作也可以适用于任何其他子结构体的其他参数项。
这里参照支持根据本发明实施例的方法和装置(系统)的方框图和流程图描述本发明示例性实施例。应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图的方框组合可以通过计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机、手机、PDA、移动PC或其他可编程数据处理装置的处理器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令创建实现流程图和/或方框图方框中指定功能/动作的手段。
虽然结合目前被认为是最实际和最优的实施例描述了本发明,但本领域技术人员应当理解本发明不限于所公开的实施例,相反,本发明旨在覆盖所附权利要求的精神和范畴之内包括的各种各样的修改和等价结构。
Claims (10)
1.一种对存储器中的多个数据项进行存储管理的方法,包括以下步骤:
产生一个包含了所述数据项的结构体类型;
创建结构体的首地址;以及
通过宏定义的方式,获得所述数据项的地址以及数据长度。
2.如权利要求1所述的方法,进一步包括:根据所获得的地址和数据长度对所述数据项进行存储和访问。
3.如权利要求1所述的方法,其中当增加、删除或修改一个数据项的宏定义时,所有数据项的地址以及数据长度都会在下一次编译中自动调整。
4.如权利要求1所述的方法,其中所述结构体类型还包含多个子结构体,用于定义所述数据项。
5.如权利要求1所述的方法,其中所述数据项是诸如CanOpen设备、DeviceNet设备、PLC、HMI的电子设备的设置参数。
6.如权利要求1所述的方法,其中所述存储器是非易失性存储器。
7.一种存储管理设备,包括:
存储器,其存储多个可修改的数据项;
控制器,用于产生一个包含了存储器中的所述数据项的结构体类型,创建结构体的首地址,并通过宏定义的方式,获得所述数据项的地址以及数据长度。
8.如权利要求7所述的存储管理设备,所述控制器进一步用于根据所获得的地址和数据长度对所述数据项进行存储和访问。
9.如权利要求7所述的存储管理设备,其中当增加、删除或修改一个数据项的宏定义时,所有数据项的地址以及数据长度都会在下一次编译中自动调整。
10.如权利要求7所述的存储管理设备,其中所述结构体类型还包含多个子结构体,用于定义所述数据项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710145404XA CN101387984B (zh) | 2007-09-10 | 2007-09-10 | 存储管理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710145404XA CN101387984B (zh) | 2007-09-10 | 2007-09-10 | 存储管理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101387984A true CN101387984A (zh) | 2009-03-18 |
CN101387984B CN101387984B (zh) | 2012-06-20 |
Family
ID=40477416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710145404XA Active CN101387984B (zh) | 2007-09-10 | 2007-09-10 | 存储管理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101387984B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777966A (zh) * | 2014-02-28 | 2014-05-07 | 广州视源电子科技股份有限公司 | 一种从二进制文件中提取代码信息的方法及装置 |
CN105573670A (zh) * | 2015-12-11 | 2016-05-11 | 英业达科技有限公司 | 存储系统的扩展器配置文件的配置装置和方法 |
CN105677502A (zh) * | 2016-01-05 | 2016-06-15 | 惠州市蓝微新源技术有限公司 | 通过cpu内部存储空间存储参数的方法 |
CN110275789A (zh) * | 2019-06-24 | 2019-09-24 | 恒生电子股份有限公司 | 数据处理方法及装置 |
-
2007
- 2007-09-10 CN CN200710145404XA patent/CN101387984B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103777966A (zh) * | 2014-02-28 | 2014-05-07 | 广州视源电子科技股份有限公司 | 一种从二进制文件中提取代码信息的方法及装置 |
CN103777966B (zh) * | 2014-02-28 | 2017-05-31 | 广州视源电子科技股份有限公司 | 一种从二进制文件中提取代码信息的方法及装置 |
CN105573670A (zh) * | 2015-12-11 | 2016-05-11 | 英业达科技有限公司 | 存储系统的扩展器配置文件的配置装置和方法 |
CN105677502A (zh) * | 2016-01-05 | 2016-06-15 | 惠州市蓝微新源技术有限公司 | 通过cpu内部存储空间存储参数的方法 |
CN105677502B (zh) * | 2016-01-05 | 2018-12-25 | 惠州市蓝微新源技术有限公司 | 通过cpu内部存储空间存储参数的方法 |
CN110275789A (zh) * | 2019-06-24 | 2019-09-24 | 恒生电子股份有限公司 | 数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101387984B (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wortmann et al. | Internet of things: technology and value added | |
CN111708641B (zh) | 一种内存管理方法、装置、设备及计算机可读存储介质 | |
CN110210731A (zh) | 提醒任务分配方法、装置、计算机设备和存储介质 | |
CN104520815A (zh) | 一种任务调度的方法、装置及设备 | |
CN106951254B (zh) | 支付系统中相似业务功能模块复用的方法及装置 | |
CN101387984B (zh) | 存储管理方法和设备 | |
CN113222170B (zh) | 一种用于物联网ai协同服务平台的智能算法和模型 | |
CN109634644A (zh) | 通过无线通信为传感器进行固件升级的方法及其设备 | |
CN115712422A (zh) | 表单页面的生成方法、装置、计算机设备及存储介质 | |
CN104050193B (zh) | 生成报文的方法和实现该方法的数据处理系统 | |
CN114356578A (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN111813517A (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
CN110399612A (zh) | 工业互联网中边缘层的语义转换方法及中间件 | |
CN110442753A (zh) | 一种基于opc ua的图数据库自动建立方法及装置 | |
CN109542863A (zh) | 人工智能存储挖矿机系统 | |
Martins et al. | Automatic Decomposition of IoT Aware Business Processes with Data and Control Flow Distribution. | |
CN104239072B (zh) | 软件的程序代码的生成方法及装置 | |
Adiga et al. | Object-oriented software modeling of a flexible manufacturing system | |
CN106354633A (zh) | 基于算法插件的任务调度表生成方法 | |
CN110363538A (zh) | 产品溯源方法、智能终端及云端装置 | |
CN115167274A (zh) | 物料切割方法、装置、控制系统、存储介质及电子设备 | |
CN114691335A (zh) | 任务调度处理方法、装置、计算机设备和存储介质 | |
CN114327779A (zh) | 一种应用运行环境搭建方法、装置及存储介质 | |
CN114565316A (zh) | 基于微服务架构的任务发布方法、及相关设备 | |
Dai et al. | Evolution process component composition based on process architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |