一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

参数配置方法和设备及计算机可读介质与流程

2022-07-06 07:59:15 来源:中国专利 TAG:


1.本发明涉及嵌入式技术领域,特别涉及参数配置方法和设备及计算机可读介质。


背景技术:

2.在嵌入式设备产品研发过程中,很多时候会针对同一主体结构的产品来设计和开发不同类型的产品。这些不同类型的产品只是外围的配件有些不同,如不同尺寸的触控面板和lcd等。此外,在系统启动的初始阶段需要根据用户的配置来初始化设备,如lcd屏幕参数、车机倒车等相关方面的配置。在使用这些配置数据进行系统配置的时候,有时候会因为在存储驱动加载之前需要先进入kernel(内核),内核中会访问到屏幕参数,从而导致设备存储驱动中配置的参数不可用。
3.针对上述场景,现有技术通常会针对不同的产品预编译出不同类型的固件或固件组件,对编译后的默认固件包进行解包后,修改替换和对应产品相应的固件,最后重新打包固件进行烧录。但是这种方法由于对固件直接进行了修改,破坏了固件的完整性,无法通过对固件的安全校验,无法保证固件的合法性和安全性。


技术实现要素:

4.本发明所要解决的技术问题是提供参数配置方法和设备及计算机可读介质,能够在不修改固件本身的基础上进行参数的动态配置。
5.在本发明的一个方面,提供一种参数配置方法。该方法包括步骤:访问设备的分区表,以读取所述分区表中设置的配置参数分区;根据所述配置参数分区中的与各个参数区域相关联的信息设置与所述参数区域相对应的存储空间;若所述配置参数分区中的各个参数区域中存在配置参数,将所述配置参数存储至与所述参数区域相对应的所述存储空间;以及根据所述存储空间中的所述配置参数进行所述设备的初始化。
6.在本发明的另一方面,提供一种参数配置设备。该设备包括存储器,被配置为存储计算机程序;以及处理器,被配置为执行所述计算机程序以执行上述的参数配置方法。
7.在本发明的又一方面,提供一种计算机可读介质。该介质上存储有计算机程序,所述计算机程序被处理器执行以实现上述的参数配置方法。
8.本发明的有益效果在于:通过在设备分区表中增加配置参数分区,并在配置参数分区预留各个参数区域的存储空间,根据参数区域的数量设置对应的存储空间,并对存储空间进行初始化。将各个参数区域中存有的配置参数存储至对应的存储空间中,能够便于后续进行不同配置参数的查询,并且使用存储空间中的配置参数进行设备的初始化。因此,通过设置配置参数分区,并基于存储后的配置参数进行初始化,能够在不修改固件本身的基础上进行参数的动态配置。
附图说明
9.图1为根据本发明实施例的参数配置方法的流程图;
10.图2为根据本发明实施例的参数配置方法的具体步骤流程图;
11.图3为根据本发明实施例的参数配置方法在外设、内核以及用户空间进行对应的动态参数初始化的流程图;
12.图4为根据本发明实施例的参数配置设备的框图。
具体实施方式
13.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
14.在已有技术中,在嵌入式产品进行参数配置时,通常需要先预编译固件,对预编译的固件进行修改和重新打包,但是无法保证固件的合法性和安全性。
15.为了解决至少上述技术问题,本公开提供了参数配置方法。根据本公开,在设备分区表中增加配置参数分区,并在配置参数分区预留各个参数区域的存储空间,根据参数区域的数量设置对应的存储空间,并对存储空间进行初始化。将各个参数区域中存有的配置参数存储至对应的存储空间中,能够便于后续进行不同配置参数的查询,并且使用存储空间中的配置参数进行设备的初始化。以此方式,根据本公开的实施例能够在不修改固件本身的基础上进行参数的动态配置。
16.下文中,将参考具体实施例并且结合附图描述根据本公开的技术方案。
17.图1是示出根据本公开的实施例的参数配置方法100的流程图。参照图1,该方法100包括以下步骤102至步骤108。
18.在步骤102,访问设备的分区表,以读取所述分区表中设置的配置参数分区。配置参数分区用于存储需要在设备初始化过程中使用到的所有配置参数。配置参数分区可以包括头部信息和多个参数区域。在一些实施例中,该方法100还可以包括在设备分区表中增加所述配置参数分区。
19.在步骤104,根据所述配置参数分区中的与各个参数区域相关联的信息设置与所述参数区域相对应的存储空间。在一些实施例中,根据所述参数区域的数量设置对应的存储空间,并初始化所有所述存储空间。在一些实施例中,根据配置参数分区中的头部信息确定参数区域,根据所确定的参数区域预留对应的存储空间,存储空间的大小大于或者等于配置参数分区的大小,并且所有存储空间的内容均初始化为0x00。以此方式,能够为每一个参数区域提供对应的足够大的内存空间,便于后续进行不同配置参数的查询。
20.在步骤106,若所述配置参数分区中的各个参数区域中存在配置参数,将所述配置参数存储至与所述参数区域相对应的所述存储空间。在一些实施例中,若所述配置参数分区的头部信息参数与预设参数相同,则判断每一个所述参数区域中是否存有数据,若是,则将所述参数区域中的数据存储至对应的存储空间。在一些实施例中,将参数区域中的数据存储至对应的存储空间时,先定位到参数区域的偏移地址处,当参数区域中的数据是加密密文时,将数据在临时缓冲区解密为明文后再拷贝到存储空间中,当数区域中的数据不是加密密文时,直接将参数区域中的数据拷贝至对应的存储空间。以此方式,能够适应性的将任意类型的配置参数进行存储。
21.在步骤108,根据所述存储空间中的所述配置参数进行所述设备的初始化。在一些实施例中,判断所述存储空间中数据是否是初始化数据,若否,则使用所述存储空间中的配
置参数进行设备的初始化。在一些实施例中,参数区域包括可信环境参数区域、加密参数区域和非加密参数区域。在一些实施例中,判断与可信环境参数区域对应的第一存储空间中的数据是否是初始化数据,若是,则使用默认参数进行设备的初始化,否则使用可信环境区域对应的第一存储空间中的配置参数进行设备初始化。之后,判断加密参数区域对应的第二存储空间或者非加密参数区域对应的第三存储空间中的数据是否是初始化数据,若是,则表示对应的第二存储空间或者第三存储空间未使用,否则,表示对应的第二存储空间或者存储空间已使用。以此方式,能够适应性的对设备进行初始化,并且对对应的第二存储空间或者第三存储空间的使用情况进行标记,避免后续频繁查询造成的资源浪费。
22.在一些实施例中,进行设备外设驱动的初始化时,若外设驱动所需的配置参数位于加密参数区域或者非加密参数区域,则当对应的第二存储空间或者第三存储空间的标记为已使用时,从第二存储空间或者第三存储空间中读取配置参数进行外设驱动的初始化,并将第二存储空间或者第三存储空间的地址和长度传输至内核。以此方式,能够对外设进行动态参数的初始化。
23.在一些实施例中,进行设备内核的初始化时,进入镜像模式,若内核初始化所需的配置参数位于加密参数区域或者非加密参数区域,则当加密参数区域或者非加密参数区域可用时,将对应的第二存储空间或者第三存储空间的物理地址空间映射为虚拟地址空间,获取虚拟地址空间中的配置参数,并进行内核的初始化。以此方式,能够对内核进行动态参数的初始化。
24.在一些实施例中,进行用户空间的初始化时,若配置参数分区的头部信息参数与预设参数相同且用户空间初始化所需的配置参数位于加密参数区域,则判断加密参数区域是否存有数据,若是,则定位到加密参数区域的偏移地址处,将加密参数区域中的数据读取到临时缓冲区,在临时缓冲区中的数据解密为明文后,根据明文中的配置参数进行用户空间的初始化。若配置参数分区的头部信息参数与预设参数相同且用户空间初始化所需的配置参数位于非加密参数区域,则判断非加密参数区域是否存有数据,若是,则定位到非加密参数区域的偏移地址处,根据非加密参数区域的数据进行用户空间的初始化。以此方式,能够对用户空间进行动态参数的初始化。
25.下文中,将通过示例描述根据本发明实施例的参数配置升级方法的应用场景。
26.图2是示出根据本发明实施例的参数配置方法的流程图,包括以下步骤202至步骤208。
27.在步骤202,在设备分区表中增加一个配置参数分区,用于存储需要在设备初始化过程中使用到的所有配置参数。将配置参数转换成一个二进制镜像文件,它在出厂前通过烧录工具写入设备的配置参数分区。
28.在一些实施例中,配置参数所对应的二进制镜像文件大小和配置参数分区的大小一致,在生成配置文件二进制镜像文件过程中如果所有配置参数信息的总大小小于配置参数分区大小,则在末尾填充0x00,直到整个二进制镜像文件大小和配置参数分区的大小一致。
29.此外,配置参数所对应的二进制镜像文件包括4个部分,分别是固定大小的镜像头部信息、可信环境参数区域、加密参数区域和非加密参数区域。
30.在一些实施例中,固定大小的镜像头部信息包括配置文件魔幻数、可信环境参数
区域偏移地址、可信环境参数区域长度、加密参数区域偏移地址、加密参数区域长度、非加密参数区域偏移地址和非加密参数区域长度等。
31.可信环境参数区域保存可信环境操作系统、静态ta和动态ta所需的配置参数的密文,即该区域中的所有数据须使用内置的对称加密算法和密钥加密。
32.加密参数区域保存启动引导程序配置参数、内核空间配置参数和用户空间配置参数中需要加密的部分敏感配置参数,这些配置参数使用内置的对称加密算法和密钥加密。
33.非加密参数区域保存启动引导程序配置参数、内核空间配置参数和用户空间配置参数中除了需要加密的配置参数之外的所有其他配置参数。
34.在步骤204,设备启动,在启动引导程序中,首先访问设备的分区表,获取配置参数分区的起始地址和长度;然后在设备ddr内存中预留三块至少参数分区大小的存储空间,并全部初始化为0x00。这三块预留的存储空间不能用于后续分配。步骤204包括以下步骤2042至步骤2048。
35.在步骤2042,读取配置参数分区固定大小的头部信息,查看配置文件魔幻数是否和预期的一致,如果不一致,则执行步骤206。如果一致,继续执行步骤2044。
36.在步骤2044,读出头部信息中的可信环境参数区域偏移地址和可信环境参数区域长度,如果可信环境参数区域长度为0,则执行步骤206,否则定位到配置参数分区的可信环境参数区域偏移地址处,并读取可信环境参数区域长度的数据到临时缓冲区,并使用内置的对称加密算法和密钥对该临时缓冲区中的密文进行解密,最后将解密后的明文拷贝到预留的存储空间1中。
37.在步骤2046,读出头部信息中的加密参数区域偏移地址和加密参数区域长度,如果加密参数区域长度为0,则执行步骤2048,否则定位到配置参数分区的加密参数区域偏移地址处,并读取加密参数区域长度的数据到临时缓冲区,并使用内置的对称加密算法和密钥对该临时缓冲区中的密文进行解密,最后将解密后的明文拷贝到预留的存储空间2中。
38.在步骤2048,读出头部信息中的非加密参数区域偏移地址和非加密参数区域长度,如果非加密参数区域长度不为0,则定位到配置参数分区的非加密参数区域偏移地址处,并读取非加密参数区域长度的数据到预留的存储空间3。
39.在步骤206,启动引导程序加载可信操作系统,在可信操作系统中检查预留的存储空间1是否全部都是0x00,如果是,则使用默认参数完成可信操作系统、安全外设和可用应用的初始化;否则,从预留的存储空间1中读出预期的配置参数来完成可信操作系统、安全外设和可用应用的初始化。
40.在步骤208,启动引导程序检查预留的存储空间2和预留的存储空间3,分别检查存储空间中的数据是否全部为0x00,如果是,标记该存储空间为未使用,否则标记为已使用。
41.图3是示出根据本发明实施例的参数配置方法在外设、内核以及用户空间进行对应的动态参数初始化的流程图,包括以下步骤302至步骤306。
42.在步骤302,在对启动引导程序的对应模块和外设驱动进行初始化的过程中,包括以下步骤3022和步骤3024。
43.在步骤3022,如果其配置参数位于加密参数区域,则检查预留的存储空间2,如果预留的存储空间2标记为使用,则从预留的存储空间2中读出预期的启动引导程序配置参数来完成初始化配置,同时将预留的存储空间2的起始物理地址和长度通过命令行参数传递
给kernel(如shared_sec_param_addr和shared_sec_param_len)。如果预留的存储空间2标记为未使用,则使用默认参数完成对应模块和外设的初始化。
44.在步骤3024,如果其配置参数位于非加密参数区域,则检查预留的存储空间3,如果预留的存储空间3标记为使用,则从预留的存储空间3中读出预期的启动引导程序配置参数来完成初始化配置,同时将预留的存储空间3的起始物理地址和长度通过命令行参数传递给kernel(如shared_param_addr和shared_param_len)。如果预留的存储空间3标记为未使用,则使用默认参数完成对应模块和外设的初始化。
45.在步骤304,在对内核空间子系统和驱动程序进行初始化的过程中,包括以下步骤3042至步骤3046。
46.在步骤3042,启动引导程序引导设备进入启动镜像,首先检查命令行参数是否存在预留的存储空间2的起始物理地址和长度,如果存在则获取对应的起始物理地址和长度,并标记存储空间2可用;同时检查命令行参数是否存在预留的存储空间3的起始物理地址和长度,如果存在则获取对应的起始物理地址和长度,并标记存储空间3可用。
47.在步骤3044,在内核空间中的对应子系统和设备驱动程序中,如果其配置参数位于加密参数区域,则检查预留的存储空间2是否可用,如果不可用,则使用默认配置参数完成对应内核子系统或者设备驱动程序的初始化,如果可用,则首先将存储空间2物理地址空间映射成虚拟地址空间(如ioremap),通过直接访问这块虚拟地址空间来获取对应的配置参数并保存到临时变量,然后解除这块虚拟地址空间的映射(iounmap),最后使用获取到的配置参数完成对应内核子系统或者设备驱动程序的初始化。
48.在步骤3046,在内核空间中的对应子系统和设备驱动程序中,如果其配置参数位于非加密参数区域,则检查预留的存储空间3是否可用,如果不可用,则使用默认配置参数完成内核对应子系统或者设备驱动程序的初始化,如果可用,则首先将存储空间3物理地址空间映射成虚拟地址空间(如ioremap),通过直接访问这块虚拟地址空间来获取对应的配置参数并保存到临时变量,然后解除这块虚拟地址空间的映射(iounmap),最后使用获取到的配置参数完成对应内核子系统或者设备驱动程序的初始化。
49.在步骤306,进入系统用户空间之后,在需使用配置参数的对应子系统模块和应用程序中进行用户空间初始化,包括以下步骤3062至步骤3066。
50.在步骤3062,访问配置参数分区的块设备节点,读取配置参数分区固定大小的头部信息,查看配置文件魔幻数是否和预期的一致,如果不一致,提示获取配置信息出错,使用默认参数完成用户空间系统初始化。如果一致,继续执行步骤3064。
51.在步骤3064,在用户空间对应的子系统模块和应用程序中,如果其配置参数位于加密参数区域,则读出头部信息中的加密参数区域偏移地址和加密参数区域长度,如果加密参数区域长度为0,则使用默认参数来完成对应的初始化;否则定位到配置参数分区的加密参数区域偏移地址处,并读取加密参数区域长度的数据到临时缓冲区,并使用内置的对称加密算法和密钥对该临时缓冲区中的密文进行解密,将解密后的明文存储在临时缓冲区1。最后从临时缓冲区1中获取对应的配置参数来完成相应的初始化。
52.在步骤3066,在用户空间对应的子系统模块和应用程序中,如果其配置参数位于非加密参数区域,则读出头部信息中的非加密参数区域偏移地址和非加密参数区域长度,如果非加密参数区域长度为0,则使用默认参数来完成对应的初始化;否则定位到配置参数
分区的非加密参数区域偏移地址处,并读取非加密参数区域长度的数据到临时缓冲区2。最后从临时缓冲区2中获取对应的配置参数来完成相应的初始化。
53.根据本发明的另一方面,图4是示出根据本发明实施例的参数配置设备400的示意图。参照图4,该电子设备400包括存储器402、处理器404以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上面描述的参数配置方法的各个步骤。
54.根据本发明的又一方面,提供了一种计算机可读介质。该计算机可读介质上存储有计算机程序,该计算机程序被处理器执行以实现如上面描述的参数配置方法。
55.综上所述,本发明提供的参数配置方法和设备及计算机可读介质,在设备分区表中增加配置参数分区,并在配置参数分区预留头部信息和多个参数区域的存储空间。根据参数区域的数量设置对应的存储空间,并对存储空间进行初始化。存储空间的大小大于或者等于配置参数分区的大小,并且所有存储空间的内容均初始化为0x00,从而为每一个参数区域提供对应的足够大的内存空间,便于后续进行不同配置参数的查询。当配置参数的头部信息参数与预设参数相同时,则可以将参数区域中存有的参数存储至对应的存储空间中,能够便于后续进行不同配置参数的查询。当存储空间中的数据不是初始化数据时,使用存储空间中的配置参数进行设备的初始化。参数区域包括可信环境参数区域、加密参数区域和非加密参数区域,当可信环境参数区域中存储了配置参数时,使用配置参数进行设备的初始化。此外,本技术能够根据外设、内核以及用户空间进行对应的动态参数初始化,使得参数配置的灵活性和通用性更高。因此通过设置配置参数分区,并基于存储后的配置参数进行初始化,能够在不修改固件本身的基础上进行参数的动态配置。并且本技术即可以在系统用户空间中访问,也可以在内核空间的最初始阶段访问,支持可信环境的参数配置,同时也支持不同安全级别参数的配置,对于安全级别高的数据进行加密存储以保证数据的安全性。
56.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献