CN115756624A - 设备树dtb文件加载方法、系统、电子设备及存储介质 - Google Patents
设备树dtb文件加载方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115756624A CN115756624A CN202211582909.3A CN202211582909A CN115756624A CN 115756624 A CN115756624 A CN 115756624A CN 202211582909 A CN202211582909 A CN 202211582909A CN 115756624 A CN115756624 A CN 115756624A
- Authority
- CN
- China
- Prior art keywords
- tree
- item
- dtb
- board card
- device tree
- 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.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000011161 development Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 238000002360 preparation method Methods 0.000 claims description 10
- 238000002955 isolation Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 238000007405 data analysis Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供一种设备树DTB文件加载方法、系统、电子设备及存储介质,包括新建公共工程;获取多个设备树DTS文件并添加至新建的公共工程的内核源码包中以生成设备树DTB文件;获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;根据查询到的设备树DTB文件名加载内核源码包中对应的设备树DTB文件。利用Open BMC在引导加载程序启动阶段新建对应的结构体表,通过通用输入输出端口读取项目板卡标识,若此时获取的项目板卡标识不在表中,则再使用总线读写函数读取最终的项目板卡标识,并根据获取的项目板卡标识查询结构体表得到设备树DTB文件名,在内核里加载对应的设备树DTB文件,易于开发维护。
Description
技术领域
本申请涉及嵌入式领域,特别涉及一种设备树DTB文件加载方法、系统、电子设备及存储介质
背景技术
为了便于管理,Linux引入了采用DTS(Device Tree Source,设备树源)文件和DTB(Device Tree Binary,设备树二进制)文件来描述的设备树(Device Tree)架构。DTS文件是便于人类阅读和理解的源文件,DTB文件是DTS文件被DTC(Device Tree Compiler,设备树编译器)编译后形成的二进制格式文件,可以被Linux内核解析。
BMC(Baseboard Management Controller,基板管理控制器)是服务器特有的管理控制器,可以自动监控服务器运行状态,并及时根据当前状态进行调控风扇、记录系统告警事件。Open BMC是一种开源的BMC,在OpenBMC项目开发适配中,不同项目有着不同的DTS文件,经过编译后生成对应的DTB文件。然而如果每个项目都单独建立一个工程并加以开发适配维护的话,需要大量的精力投入,还会导致代码混乱不便管理以及占用非必要的电脑资源等问题。
为解决这一问题,Open BMC也需要实现多项目共用一个代码工程、一个镜像文件的功能,而且实现这一功能的第一步就是要解决Open BMC的U-Boot(引导加载程序)能根据用于区分不同项目的Board id(板卡id)来加载正确的DTB文件。但迄今为止,在Open BMC上还没有出现这种根据不同项目的Board id来动态加载对应的设备树DTB文件的方法。
发明内容
为了解决现有技术的不足,本申请的主要目的在于提供一种设备树DTB文件加载方法、系统、电子设备及存储介质,以解决现有技术的上述技术问题。
为了达到上述目的,第一方面本申请提供了一种基于设备树DTB文件加载方法,所述方法包括:
新建公共工程;
获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
在一些实施例中,所述获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名,包括:
基于软硬件接口协议规定的项目板卡标识以及对应的设备树DTB文件名在引导加载程序中新建包含项目板卡标识与设备树DTB文件名对应的关系的结构体表;
基于获取到的所述项目板卡标识及所述结构体表返回与所述新增项目对应的设备树DTB文件名。
在一些实施例中,所述获取新增项目对应的项目板卡标识,包括:
通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;
若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识。
在一些实施例中,所述若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识,包括:
在所述引导加载程序中添加通信读写库,所述通信读写库中包含总线读写函数;
调用所述总线读写函数读取挂载在总线上的扩展芯片上的寄存器以获取新增项目对应的所述项目板卡标识。
在一些实施例中,所述方法还包括:
在所述引导加载程序中添加编译宏隔离,以确保调用的所述总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。
在一些实施例中,所述方法还包括:
若根据获取到的所述新增项目的项目板卡标识查询所述结构体表,无法查询到对应的设备树DTB文件名,则使用默认板卡项目id作为新增项目的项目板卡标识并加载对应的默认设备树DTB文件。
在一些实施例中,所述获取多个设备树DTS文件并添加至新建的所述公共工程以生成对应的设备树DTB文件,还包括:
比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;
将所述新增设备树DTS文件添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
第二方面,本申请提供了一种设备树DTB文件加载系统,所述系统包括:
工程开发模块,用于新建公共工程;
数据准备模块,用于获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
数据分析模块,用于获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
数据处理模块,用于根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
第三方面,本申请提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
新建公共工程;
获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
第四方面,本申请还提供了一种计算机可读存储介质,所述存储介质上存储计算机程序,所述计算机程序使得计算机执行如下操作:
新建公共工程;
获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
本申请实现的有益效果为:
本申请提供了一种设备树DTB文件加载方法,包括新建公共工程;获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。利用Open BMC在引导加载程序启动阶段新建对应的结构体表,首先通过通用输入输出端口读取的项目板卡标识,若此时获取的项目板卡标识不在表中,则再进一步使用总线读写函数读取最终的项目板卡标识,并根据获取到的不同项目的项目板卡标识查询结构体表得到对应的设备树DTB文件名,然后在内核里加载对应的设备树DTB文件,思路简单明了,易于开发和维护。
进一步,本申请通过新增编译宏隔离解决了直接添加通信读写库并调用其中的总线读写函数获取新增项目对应的项目板卡标识会导致编译报错的问题,使得在引导加载程序中能够调用到总线读写函数。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,其中:
图1是本申请实施例提供的设备树DTB文件加载方法第一示意图;
图2是本申请实施例提供的设备树DTB文件加载方法第二示意图;
图3是本申请实施例提供的设备树DTB文件加载系统架构图;
图4是本申请实施例提供的电子设备结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,在本申请的描述中,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要注意的是,术语“S1”、“S2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本申请,其仅仅是为了方便描述本申请的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
根据背景技术可知,在Open BMC项目的开发适配中,不同项目有着不同的DTS文件,而为了实现多项目共用一个代码工程以及一个镜像文件的功能首先需要确保能够基于不同项目的Board id(项目板卡标识)来加载正确的DTB文件。为解决上述技术问题,本申请提供了一种设备树DTB文件加载方法,以实现根据不同项目板卡标识动态加载对应的DTB文件。。
实施例一
本申请实施例了提供一种设备树DTB文件加载方法;具体的,如图1所示,应用本实施例公开的方法实现设备树DTB文件动态加载的过程如下:
S1、新建公共工程,并实现对公共工程的编译。
具体的,本申请实施例首先新建一个Open BMC工程作为公共工程,用于生成可供不同项目共用的镜像文件,还可以将不同项目的所需要的代码都合并到该公共工程中。然后将该公共工程镜像编译,并通过修改和调试以保证编译成功以生成镜像文件,从而为实现多项目共用同一个代码工程、共用同一个升级镜像文件提供实现条件。
S2、添加设备树DTS文件。
具体的,获取其他工程内的设备树DTS文件,并将获取到的多个设备树DTS文件添加至新建的公共工程的内核(Kernel)源码包中,以确保新建的公共工程中包含所有需要的设备树DTS文件。优选的,比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;然后将所述新增的设备树DTS文件名添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
S3、新建结构体表。
具体的,在引导加载程序中,按照软硬件接口协议中规定的不同项目的项目板卡标识与对应的设备树DTB文件的关系,新建一个结构体表以便在确定项目板卡标识后可通过查询结构体表获取对应的DTB文件名。其中引导加载程序(uboot,universal bootloader)是一种典型的用于引导Linux内核启动的系统引导程序。在启动过程中,引导加载程序需要将设备树DTB文件传递给Linux内核。
S4、获取与新增项目对应的项目板卡标识。
由于有些项目的项目板卡标识设置在该芯片的引脚上;有些项目则是直接使用BMC CPU的GPIO(General-purpose input/output,通用输入输出端口)引脚设置了项目板卡标识,而对于设置在GPIO的项目板卡标识可以通过指针访问GPIO对应的寄存器地址来获得其值。优选的,本申请实施例首先通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;若此时获取到的项目板卡标识在结构体表内,则说明此时获取的项目板卡标识为新增项目的板卡标识;若获取到的项目板卡标识不在所述结构体表内,则证明此时读取的项目板卡标识有误,此时调用总线读写函数以获取项目板卡标识。
其中,在调用总线读写函数以获取项目板卡标识前,需要在引导加载程序中添加通信读写库,该通信读写库中存储有总线读写函数,而由于内核源码包调用限制不能直接包含头文件,通过在引导加载程序的image_fit.c文件中开头位置增加离CONFIG_DM_I2C的编译宏隔离将总线读写函数的头文件包含进来解决这一问题,以确保调用的总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。在完成了上述准备操作后,就可以调用通信读写库中的总线读写函数,读取挂在总线上且地址固定的扩展芯片的寄存器内存储的新增项目的项目板卡标识。
S5、查询与新增项目对应的设备树DTB文件名并加载对应的设备树DTB文件。
根据通过步骤S4获取的新增项目的项目板卡标识,查询结构体表,若在结构体表中能够查询到与该项目板卡标识对应的设备树DTB文件名,则返回对应的设备树DTB文件名字符串,打印获取到的项目板卡标识和对应设备树DTB文件名字符串,并使用该设备树DTB文件名作为启动内核的设备树文件名。若在结构体表中查询不到与项目板卡标识对应的设备树DTB文件名,则证明此时获取到的项目板卡标识有误,此时返回空,并打印无效的项目板卡标识,此时使用默认的项目板卡标识和对应的设备树DTB文件名字符串。
根据返回的设备树DTB文件名字符串,配置内核启动时应加载id二进制设备树文件,若返回的设备树DTB文件名字符串为空,则加载默认的设备树DTB文件。
需要理解的是,在为内核设置启动参数时,可知在引导加载程序中从镜像文件处加载内核时需要对内核使用的设备树DTB文件进行配置,因此本申请实施例提出了在对内核要使用的设备数DTB文件进行配置前,加入对项目板卡标识的读取,并根据读取到的项目板卡标识来确定要加载的设备树DTB文件,简单方便,易于开发和维护;为实现多项目共用同一个代码工程、共用同一个升级镜像文件奠定了基础,解决了根本难题,大大节省了项目开发和项目维护的人力以及物力。
实施例二
对应上述实施例一,本申请实施例还提供了一种设备树DTB文件加载方法方法,如图2所示,具体如下:
2100、新建公共工程;
2200、获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
优选的,所述获取多个设备树DTS文件并添加至新建的所述公共工程以生成对应的设备树DTB文件,还包括:
2210、比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;
2220、将所述新增设备树DTS文件添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
2300、获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
优选的,所述获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名,包括:
2310、基于软硬件接口协议规定的项目板卡标识以及对应的设备树DTB文件名在引导加载程序中新建包含项目板卡标识与设备树DTB文件名对应的关系的结构体表;
2320、基于获取到的所述项目板卡标识及所述结构体表返回与所述新增项目对应的设备树DTB文件名。
优选的,所述获取新增项目对应的项目板卡标识,包括:
2330、通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;
2340、若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识。
优选的,所述若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识,包括:
2341、在所述引导加载程序中添加通信读写库,所述通信读写库中包含总线读写函数;
2342、调用所述总线读写函数读取挂载在总线上的扩展芯片上的寄存器以获取新增项目对应的所述项目板卡标识。
优选的,所述方法还包括:
2350、在所述引导加载程序中添加编译宏隔离,以确保调用的所述总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。
2400、根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
优选的,所述方法还包括:
2410、若根据获取到的所述新增项目的项目板卡标识查询所述结构体表,无法查询到对应的设备树DTB文件名,则使用默认板卡项目id作为新增项目的项目板卡标识并加载对应的默认设备树DTB文件。
实施例三
如图3所示,对应上述实施例一和实施例二,本申请实施例提供了一种设备树DTB文件加载系统,所述系统包括:
工程开发模块310,用于新建公共工程;
数据准备模块320,用于获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
数据分析模块330,用于获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
数据处理模块340,用于根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
在一些实施例中,所述数据准备模块320还用于基于软硬件接口协议规定的项目板卡标识以及对应的设备树DTB文件名在引导加载程序中新建包含项目板卡标识与设备树DTB文件名对应的关系的结构体表;所述数据准备模块320还用于基于获取到的所述项目板卡标识及所述结构体表返回与所述新增项目对应的设备树DTB文件名。
在一些实施例中,所述数据分析模块330还用于通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;若获取到的所述项目板卡标识不在所述结构体表内,则所述数据分析模块330还用于调用总线读写函数以获取所述项目板卡标识。
在一些实施例中,所述数据准备模块320还用于在所述引导加载程序中添加通信读写库,所述通信读写库中包含总线读写函数;所述数据分析模块330还用于调用所述总线读写函数读取挂载在总线上的扩展芯片上的寄存器以获取新增项目对应的所述项目板卡标识。
在一些实施例中,所述数据准备模块320还用于在所述引导加载程序中添加编译宏隔离,以确保调用的所述总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。
在一些实施例中,所述数据处理模块340还用于在根据获取到的所述新增项目的项目板卡标识查询所述结构体表,无法查询到对应的设备树DTB文件名时,使用默认板卡项目id作为新增项目的项目板卡标识并加载对应的默认设备树DTB文件。
在一些实施例中,所述数据准备模块320还用于比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;所述数据准备模块320还用于将所述新增设备树DTS文件添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
实施例四
对应上述所有实施例,本申请实施例提供一种电子设备,包括:
一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
新建公共工程;
获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
在一些实施场景中,还执行如下操作:
基于软硬件接口协议规定的项目板卡标识以及对应的设备树DTB文件名在引导加载程序中新建包含项目板卡标识与设备树DTB文件名对应的关系的结构体表;
基于获取到的所述项目板卡标识及所述结构体表返回与所述新增项目对应的设备树DTB文件名。
在一些实施场景中,还执行如下操作:
通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;
若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识。
在一些实施场景中,还执行如下操作:
在所述引导加载程序中添加通信读写库,所述通信读写库中包含总线读写函数;
调用所述总线读写函数读取挂载在总线上的扩展芯片上的寄存器以获取新增项目对应的所述项目板卡标识。
在一些实施场景中,还执行如下操作:
在所述引导加载程序中添加编译宏隔离,以确保调用的所述总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。
在一些实施场景中,还执行如下操作:
若根据获取到的所述新增项目的项目板卡标识查询所述结构体表,无法查询到对应的设备树DTB文件名,则使用默认板卡项目id作为新增项目的项目板卡标识并加载对应的默认设备树DTB文件。
在一些实施场景中,还执行如下操作:
比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;
将所述新增设备树DTS文件添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
其中,图4示例性的展示出了电子设备的架构,具体可以包括处理器410,视频显示适配器411,磁盘驱动器412,输入/输出接口413,网络接口414,以及存储器420。上述处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420之间可以通过总线430进行通信连接。
其中,处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,可编写存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储用于控制电子设备400执行的操作系统421,用于控制电子设备400的低级别操作的基本输入输出系统(BIOS)422。另外,还可以存储网页浏览器423,数据存储管理系统424,以及图标字体处理系统425等等。上述图标字体处理系统425就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口413用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口414用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线430包括一通路,在设备的各个组件(例如处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420)之间传输信息。
另外,该电子设备400还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,存储器420,总线430等,但是在具体实施过程中,该设备还可以包括实现正常执行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
实施例五
对应上述所有实施例,本申请实施例还提供一种计算机可读存储介质,其特征在于,其存储计算机程序,所述计算机程序使得计算机执行如下操作:
新建公共工程;
获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
优选的,所述计算机程序还使得计算机执行如下操作:
基于软硬件接口协议规定的项目板卡标识以及对应的设备树DTB文件名在引导加载程序中新建包含项目板卡标识与设备树DTB文件名对应的关系的结构体表;
基于获取到的所述项目板卡标识及所述结构体表返回与所述新增项目对应的设备树DTB文件名。
优选的,所述计算机程序还使得计算机执行如下操作:
通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;
若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识。
优选的,所述计算机程序还使得计算机执行如下操作:
在所述引导加载程序中添加通信读写库,所述通信读写库中包含总线读写函数;
调用所述总线读写函数读取挂载在总线上的扩展芯片上的寄存器以获取新增项目对应的所述项目板卡标识。
优选的,所述计算机程序还使得计算机执行如下操作:
在所述引导加载程序中添加编译宏隔离,以确保调用的所述总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。
优选的,所述计算机程序还使得计算机执行如下操作:
若根据获取到的所述新增项目的项目板卡标识查询所述结构体表,无法查询到对应的设备树DTB文件名,则使用默认板卡项目id作为新增项目的项目板卡标识并加载对应的默认设备树DTB文件。
优选的,所述计算机程序还使得计算机执行如下操作:
比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;
将所述新增设备树DTS文件添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务端,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种设备树DTB文件加载方法,其特征在于,所述方法包括:
新建公共工程;
获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
2.根据权利要求1所述的方法,其特征在于,所述获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名,包括:
基于软硬件接口协议规定的项目板卡标识以及对应的设备树DTB文件名在引导加载程序中新建包含项目板卡标识与设备树DTB文件名对应的关系的结构体表;
基于获取到的所述项目板卡标识及所述结构体表返回与所述新增项目对应的设备树DTB文件名。
3.根据权利要求2所述的方法,其特征在于,所述获取新增项目对应的项目板卡标识,包括:
通过指针访问通用输入输出端口对应的寄存器地址以获取新增项目对应的项目板卡标识;
若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识。
4.根据权利要求3所述的方法,其特征在于,所述若获取到的所述项目板卡标识不在所述结构体表内,则调用总线读写函数以获取所述项目板卡标识,包括:
在所述引导加载程序中添加通信读写库,所述通信读写库中包含总线读写函数;
调用所述总线读写函数读取挂载在总线上的扩展芯片上的寄存器以获取新增项目对应的所述项目板卡标识。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述引导加载程序中添加编译宏隔离,以确保调用的所述总线读写函数正常读取挂载在总线上的扩展芯片以获取新增项目对应的项目板卡标识。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若根据获取到的所述新增项目的项目板卡标识查询所述结构体表,无法查询到对应的设备树DTB文件名,则使用默认板卡项目id作为新增项目的项目板卡标识并加载对应的默认设备树DTB文件。
7.根据权利要求6所述的方法,其特征在于,所述获取多个设备树DTS文件并添加至新建的所述公共工程以生成对应的设备树DTB文件,还包括:
比对新添加至所述内核源码包中的设备树DTS文件与所述内核源码包中已有的初始设备树DTS文件,确定新增设备树DTS文件;
将所述新增设备树DTS文件添加至所述公共工程的配置文件中并重新编译所述公共工程以确保生成对应的设备树DTB文件。
8.一种设备树DTB文件加载系统,其特征在于,所述系统包括:
工程开发模块,用于新建公共工程;
数据准备模块,用于获取多个设备树DTS文件并添加至新建的所述公共工程的内核源码包中以生成设备树DTB文件;
数据分析模块,用于获取新增项目对应的项目板卡标识并基于预设的结构体表查询设备树DTB文件名;
数据处理模块,用于根据查询到的所述设备树DTB文件名加载所述内核源码包中对应的设备树DTB文件。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其特征在于,其存储计算机程序,所述计算机程序使得计算机执行权利要求1-7中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211582909.3A CN115756624A (zh) | 2022-12-09 | 2022-12-09 | 设备树dtb文件加载方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211582909.3A CN115756624A (zh) | 2022-12-09 | 2022-12-09 | 设备树dtb文件加载方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756624A true CN115756624A (zh) | 2023-03-07 |
Family
ID=85345044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211582909.3A Pending CN115756624A (zh) | 2022-12-09 | 2022-12-09 | 设备树dtb文件加载方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756624A (zh) |
-
2022
- 2022-12-09 CN CN202211582909.3A patent/CN115756624A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7181382B2 (en) | System and method for testing, simulating, and controlling computer software and hardware | |
US8972973B2 (en) | Firmware update discovery and distribution | |
US5748980A (en) | System for configuring a computer system | |
US9110761B2 (en) | Resource data structures for firmware updates | |
US9395968B1 (en) | Uniquely identifying and validating computer system firmware | |
US20140007069A1 (en) | Firmware Update System | |
JPH0588859A (ja) | 両立性検査方法、システムコンポーネント及びコンピユータシステム | |
US20040123090A1 (en) | Providing access to system management information | |
WO2012138046A1 (ko) | 범용 운영체제 상에서 안드로이드 어플리케이션을 실행하기 위한 단말장치 및 방법, 그리고 이를 위한 컴퓨터로 판독가능한 기록매체 | |
CN112068850A (zh) | 服务产品实例的创建方法、装置及电子设备 | |
CN114448823B (zh) | Nfs服务测试方法、系统及电子设备 | |
US10635504B2 (en) | API versioning independent of product releases | |
CN115756624A (zh) | 设备树dtb文件加载方法、系统、电子设备及存储介质 | |
CN113468458B (zh) | 一种基于web的应用运行方法 | |
CN115712559A (zh) | 测试硬件管理软件的方法、装置及电子设备 | |
CN110119625A (zh) | 一种可信计算方法 | |
CN114968386A (zh) | 一种电子设备的设备信息管理方法、装置及设备 | |
CN114092590A (zh) | 电子设备及其图像渲染性能的评估方法、介质 | |
CN114816445A (zh) | 系统平台架构、函数发布方法及装置、平台及存储介质 | |
CN112463262A (zh) | 一种安卓系统gps模块自适应方法及终端 | |
CN112947974B (zh) | 桌面图标更新方法、装置、设备及计算机可读存储介质 | |
CN111782282B (zh) | 启动程序加载方法和装置、电子设备和存储介质 | |
JP3183398B2 (ja) | 資源構成情報管理方式 | |
CN117170901A (zh) | 硬件管理方法、装置、存储介质及电子设备 | |
CN115589379A (zh) | 网卡pxe功能测试方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |