嵌入式设备参数配置方法、电子设备和存储介质技术

技术编号:36871846 阅读:23 留言:0更新日期:2023-03-15 20:01
本发明专利技术涉及一种嵌入式设备参数配置方法、电子设备及存储介质,所述方法包括:响应于嵌入式设备的启动,根据设备分区表中的配置参数分区的启动引导程序参数区内的配置参数,对前级启动引导程序各功能模块和外设驱动的参数进行配置;根据所述配置参数分区的内核参数区内的配置参数,由启动引导程序引导操作系统内核,并且传递内核二进制设备树的内存加载地址到操作系统内核;以及根据所述配置参数分区的用户空间参数区内的配置参数,对用户空间内的各个功能模块进行初始化,并且访问所述内核二进制设备树中的参数值。实现了配置参数在内核初始化的早期访问,支持从启动程序到用户空间的统一的全流程配置参数访问。的统一的全流程配置参数访问。的统一的全流程配置参数访问。

【技术实现步骤摘要】
嵌入式设备参数配置方法、电子设备和存储介质


[0001]本申请涉及嵌入式设备
,特别涉及嵌入式设备参数配置方法、电子设备和存储介质。

技术介绍

[0002]在嵌入式设备研发过程中,厂家通常会研发一系列的产品,如面向高端、中端、低端以及面向特定场景的定制产品。属于同一系列的产品通常基于同一套核心固件代码,仅仅在启动引导程序、内核子系统和驱动程序、用户空间子模块和应用的部分处理逻辑不一样(如使用不同的外设,一些特定的定制逻辑)。现有方法通常需要静态编译出所有不同产品的固件进行单独维护,开发和维护工作量大。同时已有的参数配置方法,要么其参数无法在内核初始化的早期访问,如无法在内核空间的存储介质驱动(如eMMC驱动)加载之前使用;要么不支持从启动程序到用户空间的统一的全流程配置参数访问;要么无法与现有的kernel DTB访问方式无缝融合;要么不支持在设备端进行实时参数配置。

技术实现思路

[0003]本申请提供了嵌入式设备参数配置方法、电子设备和存储介质,其能够解决现有的嵌入式设备的参数配置方法中,无法实现配置参数在内核初始化的早起访问以及不支持从启动程序到用户空间的统一的全流程配置参数访问的问题。
[0004]在一个方面,提供了一种嵌入式设备参数配置方法。该方法包括:响应于嵌入式设备的启动,根据设备分区表中的配置参数分区的启动引导程序参数区内的配置参数,对前级启动引导程序各功能模块和外设驱动的参数进行配置;根据所述配置参数分区的内核参数区内的配置参数,由启动引导程序引导操作系统内核,并且传递内核二进制设备树的内存加载地址到操作系统内核;以及根据所述配置参数分区的用户空间参数区内的配置参数,对用户空间内的各个功能模块进行初始化,并且访问所述内核二进制设备树中的参数值。
[0005]在一些实施例中,该方法还包括:在所述嵌入式设备的所述设备分区表中增加所述配置参数分区,所述配置参数分区包括所述启动引导程序参数区、所述内核参数区和所述用户空间参数区;以及将配置参数烧录到所述配置参数分区中。
[0006]在一些实施例中,将配置参数烧录到所述配置参数分区中包括:将各个固件之间的差异部分以所述配置参数的形式放置在所述配置参数分区中,使得启动引导程序、内核子系统和驱动程序、以及用户空间子模块和应用程序通过读取所述配置参数来完成差异化逻辑的处理。
[0007]在一些实施例中,将各个固件之间的差异部分以所述配置参数的形式放置在所述配置参数分区中包括:将所述差异部分作为普通参数与其他可能的各种参数一起以所述配置参数的形式进行配置。
[0008]在一些实施例中,将配置参数烧录到所述配置参数分区中包括:将配置参数转化
为二进制文件后烧录至所述配置参数分区中,所述二进制文件包括固定大小的文件头、所述启动引导程序参数区、所述内核参数区和所述用户空间参数区,所述文件头包括配置文件魔幻数、校验和、启动引导程序参数区偏移地址、启动引导程序参数区长度、内核参数区偏移地址、内核参数区长度、用户空间参数区偏移地址和用户空间参数区长度。
[0009]在一些实施例中,根据所述配置参数分区的内核参数区内的配置参数,由启动引导程序引导操作系统内核,并且传递内核二进制设备树的内存加载地址到操作系统内核包括:通过所述启动引导程序将所述内核参数区内的配置参数动态插入传递给操作系统内核使用的二进制设备树空间,使得所述操作系统内核按标准方式直接进行访问来实现初始化。
[0010]在一些实施例中,该方法还包括:通过用户空间的配置参数修改模块来对所述配置参数分区中的配置参数进行实时修改。
[0011]在一些实施例中,通过用户空间的配置参数修改模块来对所述配置参数分区中的配置参数进行实时修改包括:通过只读方式访问所述配置参数分区的块设备节点,读取文件头到临时数临时缓冲区;检查临时数临时缓冲区中的文件头的配置文件魔幻数是否与预期一致;若一致,则检查启动引导程序参数区长度是否大于0,如果是,则根据临时数临时缓冲区中文件头的启动引导程序参数区偏移地址和启动引导程序参数区长度从配置参数分区的块设备节点文件中读取对应的数据存储到启动引导程序参数临时缓冲区,否则设置启动引导程序参数临时缓冲区为空;检查内核参数区长度是否大于0,如果是,则根据临时数临时缓冲区中文件头的内核参数区偏移地址和内核参数区长度,从配置参数分区块设备节点文件中读出对应的数据存储到内核参数临时缓冲区,否则设置内核参数临时缓冲区为空;检查用户空间参数区长度是否大于0,如果是,则根据临时数临时缓冲区中文件头的用户空间参数区偏移地址和用户空间参数区长度,从配置参数分区块设备节点文件中读出对应的数据存储到用户空间参数临时缓冲区,否则设备用户空间参数临时缓冲区为空;若不一致,则设置启动引导程序参数临时缓冲区、内核参数临时缓冲区及设备用户空间参数临时缓冲区为空;将启动引导程序参数临时缓冲区、内核参数临时缓冲区及设备用户空间参数临时缓冲区中的二进制数据转换为对应的临时文本文件格式;接收对临时文本文件进行修改;将修改后的临时文本文件转换成新配置参数的二进制数据。
[0012]在一些实施例中,嵌入式设备启动时,在启动程序中读取出配置参数分区中的文件头;查看文件头中的配置文件魔幻数是否和预期的一致;若一致,则在启动引导程序的对应模块和外设驱动中,查看文件头的启动引导程序参数区长度是否为0;若为0,则使用预设的默认参数值完成对应功能模块和外设驱动的初始化;若不为0,则根据文件头的启动引导程序参数区偏移地址的值,定位到配置参数分区偏移地址处,读出启动引导程序参数区长度大小的数据,按照对应的配置参数完成对应的功能模块和驱动的初始化;从物理存储介质的预设位置加载内核二进制设备树DTB到预设的内存加载地址;然后查看文件头中的内核参数区长度是否大于0,如果大于0,则遍历内核参数区中的所有配置参数,根据内核参数区中的所有配置参数对代表内核二进制设备树DTB的预设内存地址空间进行修改;若不一致,则使用预设的默认参数值完成对应功能模块和外设驱动的初始化,然后从物理存储介质的预设位置加载内核二进制设备树DTB到预设的内存加载地址。
[0013]在一些实施例中,根据内核参数区中的所有配置参数对代表内核二进制设备树
DTB的预设内存地址空间进行修改包括:若内核参数区中的配置参数的路径为非空,则查找对应的配置参数在内核二进制设备树DTB中是否存在相应的节点,若存在,则使用内核参数区中值字段的配置参数修改内核二进制设备树DTB中的对应节点的值,若不存在,则根据内核参数区中路径字段的配置参数创建对应的节点,并使用值字段的配置参数设置该节点的取值;若内核参数区中的配置参数的路径为空,检查内核二进制设备树DTB的根路径下是否存在预定义的配置参数子树,若不存在,则创建一棵配置参数子树,同时将内核参数区中的配置参数直接写入该配置参数子树,若存在,则直接将内核参数区中的配置参数直接写入该配置参数子树。
[0014]在一些实施例中,根据所述配置参数分区的用户空间参数区内的配置参数,对用户空间内的各本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式设备参数配置方法,其特征在于,包括:响应于嵌入式设备的启动,根据设备分区表中的配置参数分区的启动引导程序参数区内的配置参数,对前级启动引导程序各功能模块和外设驱动的参数进行配置;根据所述配置参数分区的内核参数区内的配置参数,由启动引导程序引导操作系统内核,并且传递内核二进制设备树的内存加载地址到操作系统内核;以及根据所述配置参数分区的用户空间参数区内的配置参数,对用户空间内的各个功能模块进行初始化,并且访问所述内核二进制设备树中的参数值。2.根据权利要求1所述的嵌入式设备参数配置方法,其特征在于,还包括:在所述嵌入式设备的所述设备分区表中增加所述配置参数分区,所述配置参数分区包括所述启动引导程序参数区、所述内核参数区和所述用户空间参数区;以及将配置参数烧录到所述配置参数分区中。3.根据权利要求2所述的嵌入式设备参数配置方法,其特征在于,将配置参数烧录到所述配置参数分区中包括:将各个固件之间的差异部分以所述配置参数的形式放置在所述配置参数分区中,使得启动引导程序、内核子系统和驱动程序、以及用户空间子模块和应用程序通过读取所述配置参数来完成差异化逻辑的处理。4.根据权利要求3所述的嵌入式设备参数配置方法,其特征在于,将各个固件之间的差异部分以所述配置参数的形式放置在所述配置参数分区中包括:将所述差异部分作为普通参数与其他可能的各种参数一起以所述配置参数的形式进行配置。5.根据权利要求2所述的嵌入式设备参数配置方法,其特征在于,将配置参数烧录到所述配置参数分区中包括:将配置参数转化为二进制文件后烧录至所述配置参数分区中,所述二进制文件包括固定大小的文件头、所述启动引导程序参数区、所述内核参数区和所述用户空间参数区,所述文件头包括配置文件魔幻数、校验和、启动引导程序参数区偏移地址、启动引导程序参数区长度、内核参数区偏移地址、内核参数区长度、用户空间参数区偏移地址和用户空间参数区长度。6.根据权利要求1所述的嵌入式设备参数配置方法,其特征在于,根据所述配置参数分区的内核参数区内的配置参数,由启动引导程序引导操作系统内核,并且传递内核二进制设备树的内存加载地址到操作系统内核包括:通过所述启动引导程序将所述内核参数区内的配置参数动态插入传递给操作系统内核使用的二进制设备树空间,使得所述操作系统内核按标准方式直接进行访问来实现初始化。7.根据权利要求1所述的嵌入式设备参数配置方法,其特征在于,还包括:通过用户空间的配置参数修改模块来对所述配置参数分区中的配置参数进行实时修改。8.根据权利要求7所述的嵌入式设备参数配置方法,其特征在于,通过用户空间的配置参数修改模块来对所述配置参数分区中的配置参数进行实时修改包括:通过只读方式访问所述配置参数分区的块设备节点,读取文件头到临时数临时缓冲
区;检查临时数临时缓冲区中的文件头的配置文件魔幻数是否与预期一致;若一致,则检查启动引导程序参数区长度是否大于0,如果是,则根据临时数临时缓冲区中文件头的启动引导程序参数区偏移地址和启动引导程序参数区长度从配置参数分区的块设备节点文件中读取对应的数据存储到启动引导程序参数临时缓冲区,否则设置启动引导程序参数临时缓冲区为空;检查内核参数区长度是否大于0,如果是,则根据临时数临时缓冲区中文件头的内核参数区偏移地址和内核参数区长度,从配置参数分区块设备节点文件中读出对应的数据存储到内核参数临时缓冲区,否则设置内核参数临时缓冲区为空;检查用户空间参数区长度是否大于0,如果是,则根据临时数临时缓冲区中文件头的用户空间参数区偏移地址和用户空间参数区长度,从配置参数分区块设备节点文件中读出对应的数据存储到用户空间参数临时缓冲区,否则设备用户空间参数临时缓冲区为空;若不一致,则设置启动引导程序参数临时缓冲...

【专利技术属性】
技术研发人员:纪大峣
申请(专利权)人:瑞芯微电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1