本发明涉及嵌入式系统技术,尤其涉及嵌入式系统数据处理方法及其装置。
背景技术:
:嵌入式系统(Embeddedsystem)是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。在嵌入式系统中,参数保存主要有三种形式:1)命令式,如主流路由器的配置文件,使用CLI命令方式记录参数配置情况;2)描述式,如很多应用软件使用XML格式保存参数;3)原始数据式,以最直接、简单的方式按顺序保存参数。使用命令式的优点是兼容性、可扩展性好,并且记录了参数生效的顺序。使用描述式同样具有兼容性和可扩展性好的优点,而且可以描述参数间的层次关系。但是,命令式和描述式都需要使用解析器对配置文件进行解析,参数生效速度慢,占用较多的内存空间。原始数据式,兼容性和可扩展性差,但参数生效速度快,占用内存少。在使用单片机的嵌入式环境下,内存资源有限,较多情况下使用原始数据式进行参数保存。在没有使用代码自动生成技术的情况下,当需要在参数区添加新的参数时,编程人员必须在参数加载、保存、新旧参数值比较等功能函数中添加相应的代码,操作过程容易出现漏加、错加代码的情况,影响嵌入式系统的运行正确性和稳定性,软件开发效率不高。技术实现要素:为了克服现有技术的不足,本发明的目的之一在于提供一种嵌入式系统数据处理方法,其能使数据处理占用内存少且更简单。本发明的目的之二在于提供一种嵌入式系统数据处理装置,其能使数据处理占用内存少且更简单。本发明的目的之一采用以下技术方案实现:一种嵌入式系统数据处理方法,具体包括如下步骤:S1、从外部的存储器读取应用参数包;应用参数包包括参数ID、位置列表、数据长度、数据值和属性描述;S2、根据该应用参数包中的参数ID、位置列表和数据长度计算其数据偏移值,并根据数据偏移值获取该应用参数包对应的内部存储区;S3、将该应用参数包的数据值加载到其对应的内部存储区;S4、根据应用参数包的属性描述判断该应用参数包是否立即生效,如果是则将该应用参数包的数据值应用到嵌入式系统的运行环境中,否则等嵌入式系统重启后再将该应用参数包的数据值应用到嵌入式系统的运行环境中。作为优选,所述S1中还包括:获取新的数据值时,执行S5;S5、获取与该新的数据值对应的数据类型、参数ID、位置列表长度、位置列表和数据长度,并连同新的数据值一起生成存储参数包,执行S6;S6、将该存储参数包存储到外部的存储器。作为优选,获取新的数据值时,在执行S5之前还包括执行S5a,S5a、判断该新的数据值和嵌入式系统中正在使用的对应的数据值是否相同,如果是则结束,否则执行S5。作为优选,S2之前还包括如下步骤:S2a、判断应用参数包的数据值和嵌入式系统中对应的数据值是否相同;如果是则结束,否则执行S2。本发明的目的之二采用以下技术方案实现:一种嵌入式系统数据处理装置,具体包括:获取执行模块,用于从外部的存储器读取应用参数包;应用参数包包括参数ID、位置列表、数据长度、数据值和属性描述;计算模块,用于根据该应用参数包中的参数ID、位置列表和数据长度计算其数据偏移值,并根据数据偏移值获取该应用参数包对应的内部存储区;加载模块,用于将该应用参数包的数据值加载到其对应的内部存储区;判断生效模块,用于根据应用参数包的属性描述判断该应用参数包是否立即生效,如果是则将该应用参数包的数据值应用到嵌入式系统的运行环境中,否则等嵌入式系统重启后再将该应用参数包的数据值应用到嵌入式系统的运行环境中。作为优选,所述获取执行模块还用于获取新的数据值时,执行生成模块;生成模块,用于获取与该新的数据值对应的数据类型、参数ID、位置列表长度、位置列表和数据长度,并连同新的数据值一起生成存储参数包,执行存储模块;存储模块,用于将该存储参数包存储到外部的存储器。作为优选,获取新的数据值时,在执行生成模块之前还包括执行第二比较模块,第二比较模块,用于判断该新的数据值和嵌入式系统中正在使用的对应的数据值是否相同,如果是则结束,否则执行生成模块。作为优选,嵌入式系统数据处理装置还包括第一比较模块,第一比较模块,用于判断应用参数包的数据值和嵌入式系统中对应的数据值是否相同;如果是则结束,否则执行计算模块。相比现有技术,本发明的有益效果在于:通过在应用参数包中设置参数ID、位置列表数据长度、属性描述等技术特征,处理数据更为简单,占用内存少,以及增加了系统处理数据的兼容性和可扩展性。附图说明图1为本发明的嵌入式系统数据处理方法的流程图;图2为本发明的嵌入式系统数据处理装置的模块连接图。具体实施方式下面,结合附图以及具体实施方式,对本发明做进一步描述:一种嵌入式系统数据处理方法,应用于嵌入式系统中;如图1所示,具体包括如下步骤:步骤01、当从外部的存储器读取到应用参数包时,执行步骤02;当获取到新的数据值时,执行步骤06;该新的数据值可以是用户设置,也可以是嵌入式系统内部自行生成的。所述应用参数包包括数据类型、参数ID、位置列表长度、位置列表、数据长度、数据值和属性描述;数据类型包括STRING、IP、MAC和PASSWORD等;例如,如表1所示,参数Magic的参数ID为0x00000001,位置列表长度为0x00000001,位置列表只有一个表项0x0000,数据长度为0x00000004,Magic的数据值为0x55aa1234。参数User的参数ID为0x00000002,位置列表长度为0x00000001,位置列表0x0000和0x0001分别对应User[0]和User[1],数据长度为0x00000008,即每个User的字符串最大长度,不足8位的在结尾补0;其中User[0]的数据值为“admin”,其ASCII码为0x61,0x64,0x6d,0x6e;User[1]的数据值为“guest”,其ASCII码为0x67,0x75,0x65,0x73,0x74;参数User的数据类型为STRING。某一个参数ID下,有一个n位数组,其中有n个不同数据值,位置列表长度表示该数组的长度,位置列表表示某个数据值在该数组中的位置。表1参数ID位置列表长度位置列表数据长度数据值000000010000000100000000000455aa1234000000020000000100000000000861646d696e00000000000002000000010001000000086775657374000000在本实施例中,所述属性描述包括该应用参数包是否立即生效、该参数所涉及的模块描述以及该应用参数包是全局或特定接口相关。例如,如果参数User的User[0]的属性描述中包含F_ON_FLY标识,则表示User[0]立即生效,否则User[0]为重启后生效;如果参数User的User[0]的属性描述中包含F_PORT标识的,表示特定接口相关,否则则表示全局;如果参数User的User[0]的属性描述中包含F_SYS、F_NET或F_TRANS,则表示User[0]分别涉及系统模块、网络功能模块或数据传输模块。步骤02、判断该应用参数包中的数据值和嵌入式系统中正在使用的对应的数据值是否相同,如果是则结束;否则执行步骤03。步骤03、根据该应用参数包中的参数ID、位置列表和数据长度计算其数据偏移值,并根据数据偏移值获取该应用参数包对应的内部存储区;执行步骤04。所述内部存储区为嵌入式系统内的内部存储区。步骤04、将该应用参数包加载到其对应的内部存储区;执行步骤05。步骤05、根据应用参数包的属性描述判断该应用参数包是否立即生效,如果是则将该应用参数包的数据值应用到嵌入式系统的运行环境中,否则等嵌入式系统重启后再将该应用参数包的数据值应用到嵌入式系统的运行环境中。步骤06、判断该新的数据值和嵌入式系统中正在使用的对应的数据值是否相同,如果是则结束;否则执行步骤07。步骤07、获取与该新的数据值对应的数据类型、参数ID、位置列表长度、位置列表和数据长度,并连同新的数据值一起生成存储参数包;执行步骤08;该存储参数包包括数据类型、参数ID、位置列表长度、位置列表、数据长度和数据值。例如,用户设置了一个新的参数User[3],其数据值为“abc”,其数据类型为STRING;新的参数User[3]的位置列表长度为0x00000001,位置列表为0x0002,数据长度为0x00000008,其数据值对应的ASCII码为0x61,0x62,0x63;如表2所示。表2参数ID位置列表长度位置列表数据长度数据值00000002000000010002000000086162630000000000步骤08、将该存储参数包存储到外部的存储器。嵌入式系统数据处理方法,在应用参数包中采用了数据类型、参数ID、位置列表长度、位置列表、数据长度、数据值和属性描述等多个技术特征,根据参数ID确定参数在数据结构中的基地址,再根据位置列表确定参数的偏移地址,根据数据长度确定变长数据的长度,处理过程简单,占用内存少;且增加了数据的兼容性和可扩展性。一种嵌入式系统数据处理装置,如图2所示,具体包括:获取执行模块,用于当从外部的存储器读取到应用参数包时,执行第一比较模块;当获取到新的数据值时,执行第二比较模块;第一比较模块,用于判断该参数包中的数据值和嵌入式系统中正在使用的对应的数据值是否相同,如果是则结束;否则执行计算模块。计算模块,用于根据该参数包中的参数ID、位置列表和数据长度计算其数据偏移值,并根据数据偏移值获取该参数包对应的内部存储区;执行加载模块。加载模块,用于将该参数包加载到其对应的内部存储区;执行判断生效模块。判断生效模块,用于根据参数包的属性描述判断该参数包是否立即生效,如果是则将该参数包的数据值应用到嵌入式系统的运行环境中,否则等嵌入式系统重启后再将该参数包的数据值应用到嵌入式系统的运行环境中。第二比较模块,用于判断该新的数据值和嵌入式系统中正在使用的对应的数据值是否相同,如果是则结束;否则执行生成模块。生成模块,用于获取与该新的数据值对应的数据类型、参数ID、位置列表长度、位置列表和数据长度,并连同新的数据值一起生成存储参数包;执行存储模块;存储模块,用于将该存储参数包存储到外部的存储器。对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。当前第1页1 2 3