存储管理方法和设备的制作方法

文档序号:6611843阅读:103来源:国知局
专利名称:存储管理方法和设备的制作方法
技术领域
本发明涉及一种对数据项进行存储管理的方法和设备,更具体地说,涉
及一种在诸如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资源中的存储空间来保存 索引表,不需要进行索引地址与数据长度的人为计算,而且方便于日后的软 件升级与维护,可以提高软件开发效率。
因此,本发明提供一种对存储器中的多个数据项进行存储管理的方法, 包括以下步骤产生一个包含了所述数据项的结构体类型;创建结构体的首 地址;以及通过宏定义的方式,获得所述数据项的地址以及数据长度。
本发明还提供一种存储管理设备,包括存储器,其存储多个可修改的 数据项;和控制器,用于产生一个包含了存储器中的所述数据项的结构体类 型,创建结构体的首地址,并通过宏定义的方式,获得所述数据项的地址以 及数据长度。
本发明的lt据项存储管理方法具有如下优点
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中的存储分布。
具体实施例方式
通过借助附图在下文中将描述本发明的优选实施例。在以下描述中,将 不详细描述众所周知的功能或结构,因为不必要的细节将导致本发明的介绍 含混不清。
为了清楚、简明地描述本发明,在下面的具体实施例中,以图l中列举
域技术人员应该明白本发明可以应用于具有其他设置参数的任何设备,因此 在此不再对其赘述。
图4示出了根据本发明定义的图1的参数类的结构体类型以及定义参数 类中的各参数项的子结构体类型。
由于结构体在存储区的地址分配是连续的, 一旦给出 一个确定的结构体 存储首地址,那么结构体中的每个数据项都会被依次分配到该存储区,也就 是说其中的每一个数据项地址与数据长度都可以被确定下来了 。
在图4中,针对图1所示的HMI设备参数,其定义一个结构体类型(方 框部分),其中包含3个子结构体,分别用来定义设备标识identity参数类(灰 色部分),通信communication参数类(灰色部分),内部设置internal set参数 类(灰色部分),而每个参数类中又包含了各自的参数项。由于图1中列举的 设备包含了三个参数类,因此,在此仅给出三个子结构体,当设备包含三个 以上或三个以下的参数类时,可根据情况定义相应个数的子结构体。
图5示出了根据本发明的结构体的首地址设置。
因为结构体在内存中是连续分配的,这样一旦结构体的首地址确定后, 那么其中的每一个参数地址都确定下来了。例如,如图5所示将存储的首地 址设为0x00000000。
图6示出了根据本发明的获得各参数项的地址以及长度的宏定义。 如图6所示, 一旦确定首地址后,那么其中的每一参数项的地址与长度 都会自动确定下来。而且这样做不需要去计算出每个参数项的具体地址,只 要在完成每个参数项的地址与长度的宏定义后,我们就可以直接用这些宏去 访问每个参数项,不需要自己花时间去计算每个参数项的地址与长度,可以 省去做索引表的精力。
图7示出了根据本发明实施例的数据项存储管理方法的流程图。 如图7所示,在步骤Sl,产生一个包含了数据项的结构体类型。在步骤 S2,创建结构体的首地址。在步骤S3,通过宏定义的方式,获得所述数据项 的地址以及数据长度。
图8示出了根据本发明实施例的存储管理设备10的方框图。 在图8中,所述存储管理设备10包括存储器110和控制器120。所述存 储器110存储所述电子设备的设置参数项。控制器120用于产生一个包含了 存储器中的所述数据项的结构体类型,创建结构体的首地址,并通过宏定义 的方式,获得所述数据项的地址以及数据长度。并且该控制器120还进一步 用于根据所获得的地址和数据长度对所述数据项进行存储和访问。
采取本发明列举的如上方法还能够方便地进行参数项的增加、删除、修 改操作,描述如下。
1. 增加一个参数项
图9示出了根据本发明的增加一个参数项时子结构体类型的定义。
比如,当在设备标识identity参数类中增加一个软件版本的参数项时,只 需要在定义设备标识identity参数类的子结构体中插入SW-version(如图9的 划线部分所示)。
图10示出了根据本发明的增加一个参数项时获得各参数项的地址以及 长度的宏定义。
如图IO的划线部分所示,在增加一个软件版本参数项时,加入该参数项 的地址与长度的宏定义。这样,所有的参数项地址(宏定义)都会在下一次 的编译中被重新调整。因此,与常规方法相比,不需要对其他参数项的地址 进行重新计算。
图11示出了增加一个参数项后各参数项在EEPROM中的存储分布。 增加一个参数项后,如图ll所示,划线部分示出了增加的参数项在
EEPROM中的存储分布。
2. 删除一个参数项
图12示出了根据本发明的删除一个参数项时子结构体类型的定义。并且 图13示出了根据本发明的删除一个参数项时获得各参数项的地址以及长度 的宏定义。
比如,当删除设备标识identity参数类中的 一个生产商VendorID的参数 项时,如图12中的删除线部分所示,只需要在子结构体中删除VenderID,并 且如图13中的删除线部分所示,删除该参数项的地址与长度的宏定义。这样,
所有的参数项地址(宏定义)都会在下一次的编译中被重新调整。因此,与 常规方法相比,不需要对其他参数项的地址进行重新计算,而能够自动地确定。
图14示出了删除一个参数项后参数项在EEPROM中的存储分布。 删除一个参数项后,如图14所示,被删除参数项后的参数项的地址自动
—皮重新编-泽。
3.修改一个参数项
图15示出了根据本发明修改一个参数项时子结构体类型的定义。
比如,当想要修改设备标识identity参数类中的产品名字ProductName, 将原先的20个字节的存储现在扩大到IOO个字节时,只需要如图15的划线 部分,在设备标识identity参数类的子结构体中修改数组空间为100。与常规 方法相比,不需要对其他参数项的地址进行重新计算,因为所有的参数项地 址(宏定义)都会在下一次的编译中被重新调整。
图16示出了修改一个参数项后参数项在EEPR0M中的存储分布。如图 16所示,修改一个参数项后,参数项在EEPROM中的所占用的地址和长度 以及该修改参数项之后的参数项的地址都被自动重新调整。
虽然,上述增加、删除和修改都是针对特定子结构体的参数项进行的, 但本领域技术人员应该理解,上述增加、删除和修改操作也可以适用于任何 其他子结构体的其他参数项。
这里参照支持根据本发明实施例的方法和装置(系统)的方框图和流程 图描述本发明示例性实施例。应当理解,流程图和/或方框图的每个方框以及 流程图和/或方框图的方框组合可以通过计算机程序指令实现。这些计算机程 序指令可以提供给通用计算机、专用计算机、手机、PDA、移动PC或其他 可编程数据处理装置的处理器,使得通过计算机或其他可编程数据处理装置 的处理器执行的指令创建实现流程图和/或方框图方框中指定功能/动作的手 段。
虽然结合目前被认为是最实际和最优的实施例描述了本发明,但本领域 附权利要求的精神和范畴之内包括的各种各样的修改和等价结构。
权利要求
1. 一种对存储器中的多个数据项进行存储管理的方法,包括以下步骤:产生一个包含了所述数据项的结构体类型;创建结构体的首地址;以及通过宏定义的方式,获得所述数据项的地址以及数据长度。
2. 如权利要求l所述的方法,进一步包括根据所获得的地址和数据长 度对所述数据项进行存储和访问。
3. 如权利要求l所述的方法,其中当增加、删除或修改一个数据项的宏 定义时,所有数据项的地址以及数据长度都会在下一次编译中自动调整。
4. 如权利要求1所述的方法,其中所述结构体类型还包含多个子结构体, 用于定义所述数据项。
5. 如权利要求l所述的方法,其中所述数据项是诸如CanOpen设备、 DeviceNet设备、PLC、 HMI的电子设备的设置参数。
6. 如权利要求l所述的方法,其中所述存储器是非易失性存储器。
7. —种存储管理设备,包括 存储器,其存储多个可修改的数据项;控制器,用于产生一个包含了存储器中的所述数据项的结构体类型,创 建结构体的首地址,并通过宏定义的方式,获得所述数据项的地址以及数据 长度。
8. 如权利要求7所述的存储管理设备,所述控制器进一步用于根据所获 得的地址和数据长度对所述数据项进行存^f渚和访问。
9. 如权利要求7所述的存储管理设备,其中当增加、删除或修改一个数 据项的宏定义时,所有数据项的地址以及数据长度都会在下一次编译中自动 调整。
10. 如权利要求7所述的存储管理设备,其中所述结构体类型还包含多 个子结构体,用于定义所述数据项。
全文摘要
本发明提供一种对存储器中的多个数据项进行存储管理的方法,包括以下步骤产生一个包含了所述数据项的结构体类型;创建结构体的首地址;以及通过宏定义的方式,获得所述数据项的地址以及数据长度。
文档编号G06F17/30GK101387984SQ20071014540
公开日2009年3月18日 申请日期2007年9月10日 优先权日2007年9月10日
发明者任可可 申请人:施耐德电器工业公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1