一种硬件初始化方法、介质及电子设备与流程

未命名 08-13 阅读:107 评论:0


1.本技术涉及电子技术领域,特别涉及一种硬件初始化方法、介质及电子设备。


背景技术:

2.手机、智能手表等电子设备通常由板卡、电池、摄像头以及外壳等硬件部件组成,例如电子设备的硬件部件可以包括如高通778g等型号的片上系统 (system on chip,soc)。其中,上述板卡可以为电子设备的主板或处理器芯片。通常一个电子设备中部署一个板卡,每个板卡具有一个板卡装置识别码(boardid),该boardid为一种各整机厂商为各个板卡定义的唯一标识码。
3.通常电子设备启动时硬件的初始化依赖于板卡的boardid。具体地,在手机启动时硬件初始化的过程中,首先获取当前手机中板卡的boardid;然后遍历该手机的硬件部件对应的设备树块覆盖(dtb overlay,dtbo)镜像中的所有设备树二进制(device tree binary,dtb)(如n个dtb)的镜像,并获取每个dtb的boardid字段中的boardid;将包含当前板卡的boardid的boardid字段所在的dtb作为与当前手机匹配的dtb,然后采用该dtb初始化当前手机中的硬件部件。其中,手机的硬件部件对应的dtbo镜像包含多个dtb镜像,每个dtb镜像用于指示该手机对应的一种硬件器件信息。并且,每个dtb镜像中具有一个boardid字段,不同板卡对应不同dtb镜像。
4.如此,电子设备启动时通常需要遍历dtbo镜像中的多个dtb镜像来读取这些dtb镜像中的boardid,才能查找到与当前板卡匹配的dtb镜像,导致板卡匹配过程的时间复杂度较高,如遍历全部的n个dtb镜像的时间复杂度为0(n)。其中,时间复杂度o()表示某个算法的耗时/耗空间与数据增长量之间的关系。其中n代表输入数据的量,o(n)为线性阶,表示数据量增大几倍耗时也增大几倍。


技术实现要素:

5.本技术实施例提供了一种硬件初始化方法、介质及电子设备,能够降低在硬件初始化时匹配boardid过程的耗时。
6.第一方面,本技术实施例提供了一种硬件初始化方法,方法包括:接收到初始化电子设备中各硬件部件的指令;获取电子设备上的第一板卡的第一板卡装置识别码(即第一boardid);从与电子设备的板卡装置识别码列表中查找与第一板卡装置识别码匹配的第二板卡装置识别码(即第二boardid),板卡装置识别码列表(即boardid列表)中的板卡装置识别码是按照第一顺序连续排列的;获取与第二板卡装置识别码对应的第一硬件配置文件;基于第一硬件配置文件对电子设备的各硬件部件进行初始化。
7.其中,第一硬件配置文件中包括电子设备中的各个硬件部件的信息,用于对这些部件进行初始化。第一板卡为当前电子设备中部署的板卡,如处理器芯片。
8.由于本技术中的板卡装置识别码列表是连续且有序的,那么,本技术匹配第一boardid时,通常仅需要从该列表中查找一个boardid就可以查找到与第一boardid匹配的
第二boardid,因此匹配boardid的过程时间复杂度为0(1),耗时较短。那么,尤其在针对大量boardid进行匹配的场景下,极大减少了boardid匹配过程的耗时。
9.在一种可能的实现方式中,板卡装置识别码列表包括对应每个板卡装置识别码的序号,序号为板卡装置识别码减去计算基数后的数值;并且从与电子设备对应的板卡装置识别码列表中查找与第一板卡装置识别码匹配的第二板卡装置识别码,包括:将第一板卡装置识别码减去计算基数得到待查询参数;从板卡装置识别码列表确定出与待查询参数相同的序号,其中,确定出的序号所对应的板卡装置识别码为第二板卡装置识别码。
10.那么,本技术匹配boardid时仅需要匹配与该boardid对应的序号,进一步简化了boardid的匹配流程,可以进一步减少耗时。
11.在一种可能的实现方式中,板卡装置识别码列表以数组的形式存储,且板卡装置识别码列表中的每个板卡装置识别码对应的序号为下标,下标为用于区分数组中的各个板卡装置识别码的数字编号,以方便快速实现boardid匹配的过程。
12.在一种可能的实现方式中,方法还包括:获取电子设备的多个第一设备树源码,每个第一设备树源码对应一个板卡装置识别码;按照板卡装置识别码的第一顺序对多个第一设备树源码进行排列;将排列后的多个第一设备树源码生成第一配置文件;在第一配置文件中插入多个第三板卡装置识别码得到第二配置文件,其中第二配置文件中各个元素包含的板卡装置识别码连续且有序;对第二配置文件中的各个元素进行编译以生成第一列表,其中第三板卡装置识别码所在的元素不包含硬件信息,第一列表中各个元素中的板卡装置识别码构成板卡装置识别码列表,并且与第一硬件配置文件为第一列表中包含第二板卡装置识别码的元素。如此,使得预先排列好的板卡装置识别码列表按照boardid顺序且有序排列。
13.在一种可能的实现方式中,第一列表包括设备树块覆盖镜像(即dtbo镜像),第一列表中每个元素为设备树二进制镜像(即dtb镜像)。
14.在一种可能的实现方式中,上述获取电子设备上的第一板卡的第一板卡装置识别码,包括:根据电子设备对应的通用输入输出口的状态数值和计算基数,计算电子设备上的第一板卡的第一板卡装置识别码;其中,计算基数为与电子设备相关的用于计算板卡装置识别码的参数。例如,计算基数在联发科(mediatek,mtk)平台上是4000;在高通(qcom)平台上是8000。
15.在一种可能的实现方式中,第一顺序为板卡装置识别码的取值从小到大排列的顺序。
16.在一种可能的实现方式中,上述接收到初始化电子设备中各硬件部件的指令,包括:对应于电子设备上电开机,接收到初始化电子设备中各硬件部件的指令。
17.在一种可能的实现方式中,板卡装置识别码列表中的多个板卡装置识别码与多个板卡一一对应,且第一板卡为多个板卡中的一个板卡。如此,可以实现快速批量的部署不同板卡的电子设备进行boardid匹配,以实现快速批量的硬件初始化。
18.在一种可能的实现方式中,电子设备中的硬件部件至少包括:中央处理器、内存、总线、摄像头。
19.第二方面,本技术实施例提供了一种可读介质,可读介质上存储有指令,指令在电子设备上执行时使电子设备执行第一方面及其任一种可能的实现方式中的硬件初始化方
法。
20.第三方面,本技术实施例提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是电子设备的处理器之一,用于执行第一方面及其任一种可能的实现方式中的硬件初始化方法。
附图说明
21.图1根据本技术的一些实施例,示出了一种单品台台下各个产品的各个方案下的boardid的示意图;图2根据本技术的一些实施例,示出了硬件初始化方法的流程示意图;图3根据本技术的一些实施例,示出了编译阶段的boardid的处理流程;图4根据本技术的一些实施例,示出了编译阶段的boardid对应的下标的示意图;图5根据本技术的一些实施例,示出了硬件初始化方法的编译阶段的流程示意图;图6根据本技术的一些实施例,示出了硬件初始化方法的运行阶段的流程示意图;图7根据本技术的一些实施例,示出了一种手机的结构示意图;图8根据本技术一些实施例,示出了一种片上系统(soc)的框图。
具体实施方式
22.本技术的说明性实施例包括但不限于硬件初始化方法、介质和电子设备。
23.为了解决背景技术中板卡识别过程时间复杂度较高的问题,本技术提供一种硬件初始化方法。该方法先将电子设备对应的多个dtb元素中的boardid按照顺序排列,再在这些dtb元素中添加缺失的boardid,得到连续且有序的多个dtb元素,如按照boardid从小到大依次排序的多个dtb元素,以得到包含这些dtb元素的dtbo镜像,且插入的boardid所在的dtb元素为空元素,即这些元素不包含任何硬件信息。进而,在电子设备启动时,可以该电子设备中当前板卡的boardid,再从dtbo镜像中连续且有序的dtb元素中查找与该boardid匹配的dtb元素。那么,由于dtbo镜像中各个dtb元素中boardid是连续且有序的,因此可以快速查找到包含当前板卡的boardid的dtb元素,进而基于该dtb元素对电子设备中的各硬件部件进行初始化。此时,该查找过程的时间复杂度为o(1),无需遍历dtbo镜像中的所有元素,减小了boardid匹配过程的耗时。
24.例如,电子设备对应的多个dtb元素包括三个boardid分别为4204、4203、4201,且这些boardid是无序的。然后,对这些boardid按照从小到大排序为4201、4203、4204,显然这些boardid中缺少4202,即这些boardid是非连续的。进而,本技术可以向这些boardid中插入4202,得到连续且有序的boardid分别为4201、4202、4203、4204。从而,得到按照boardid连续且有序排序的多个dtb元素,其中插入的boardid为4202的dtb元素为空元素。
25.在一些实施例中,本技术可以获取用于编译dtbo镜像的配置文件,该配置文件中的多个dtb元素中的boardid连续且有序排列的,且该配置文件中的一些dtb元素为包含boardid但不包含实际硬件信息的空元素。随后,基于该配置文件编译得到dtbo镜像后,可以将该dtbo镜像数组化为dtbo镜像数组,使得该数组中各个dtb元素的下标为对应的boardid减去厂商相关的计算基数后的数值。那么,在电子设备启动时,可以获取该电子设备中板卡的当前boardid,再根据将该boardid减去上述计算基数得到待查询数值。然后,从
dtbo镜像数组中查找与待查询数值相等的下标,该下标所在dtb元素中的boardid与当前boardid相等,该查找过程的时间复杂度为o(1)。
26.在一些实施例中,本技术提供的dtbo镜像可以为连续且有序的元素构成的序列,且序列中的每个元素(即dtb元素)对应一个序号,该序号为对应元素中的boardid减去上述计算基数得到的数值。
27.时间复杂度,也称为时空复杂度,通常使用o(1),o(n)表示。o(1)是最低的时空复杂度,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。
28.本技术根据查询数值查找出的下标所在的dtb元素就是与当前电子设备中的板卡匹配的dtb元素,用于初始化当前电子设备。
29.在一些实施例中,本技术中dtbo镜像数组中的各个dtb元素的下标,可以为对应的boardid。那么,本技术可以获取该电子设备中板卡的当前boardid,再将该boardid作为待查询数值,从dtbo镜像数组中查找与待查询数值相等的下标,该下标与当前boardid相等,以完成板卡识别过程。可以理解,该查询过程的时间复杂度为o(1)。
30.在一些实施例中,本技术中的硬件初始化方法可以应用于电子设备对应的多个产品在多个产线验证方案下的启动过程。可以理解,以手机为例,一个手机的各硬件部件对应的多个产品可以为同一款手机的不同版本。
31.在一些实施例中,本技术中电子设备中的各硬件部件可以组成硬件平台,或称为单品台,例如手机的各硬件部件可以组成手机平台。
32.此外,电子设备的各硬件部件通常支持多种产品,并且单个产品研发阶段会采用多种验证方案进行产线验证。而在不同验证方案下电子设备中通常部署不同的板卡,从而每种验证方案下的板卡的boardid不同。如图1所示,单品台支持产品a、b和c,并且每种产品的产线验证方案包括v1、v2和v3等,并且这些产品在不同验证方案下板卡的boardid均不同。当前单品台重复支撑多种产品,且单产品产线验证有时多达数十种,导致boardid的数量极速扩充,单品台boardid数量可能多达数百个。
33.如此,由于本技术的硬件初始化方法在boardid匹配过程的时空复杂度为0(1),那么在单品台的大量产线验证方案下,对大量boardid的匹配过程的耗时可以极大缩短。
34.此外,在使用现有技术中的板卡匹配方案,由于一个板卡的板卡匹配过程的时空复杂度较大,因此在单品台的大量产线验证方案下的板卡匹配过程整体的耗时也将较大。
35.可以理解,一个板卡中通常设置多个通用输入输出(general purpose input output,gpio)口。其中,一个板卡的gpio口的数量x通常与根据厂商在当前手机平台规划的产品数(假设为m)以及每一代产品数研发阶段需要验证的方案数(假设为n)有关,例如x=m*n。
36.在一些实施例中,boardid是根据硬件一组gpio口状态算出来的一个数值,用来代表当前板子(即板卡)信息。
37.例如,boardid的计算方式可以采用下述计算公式(1)实现。当然,boardid的计算方式并不限于公式(1)所示的计算方式。
38.boardid=f((v_id0《《2|v_id1))《《4|f((v_id2《《2|v_id3))+dalplatforminfo_hw_platform_base(1)
tree binary,dtb)。即设备树源码可以为dts格式的数据。并且,每个dtb中有一个字段描述boardid,该字段可以记为boardid字段。而设备树是一种描述硬件部件的数据结构,以便于操作系统的内核可以管理和使用这些硬件部件,包括中央处理器(central processing unit,cpu),内存,总线和其他一些外设。具体的,在设备树中,可描述的信息包括:cpu的数量和类别,内存基地址和大小,总线和桥,外设连接,中断控制器和中断使用情况,gpio控制器和gpio使用情况,时钟(clock)控制器和clock使用情况。
48.在一些实施例中,上述手机对应的所有产品的boardid,包含这些每个产品在每种产线验证的方案下板卡的boardid。
49.s202:按照boardid从小到大的顺序对与手机的硬件对应的设备树源码进行排序,得到配置文件。其中,该配置文件用于编译dtbo镜像。
50.在一些实施例中,上述配置文件中每个设备树源码中不仅包括boardid字段,还包括其他字段,如硬件信息字段、用于表示产品的产品字段,以及用于表示产线验证方案的方案字段等。
51.参照图1所示,为单品台下各个产品的各个方案下的boardid的示例,且这些boardid在存储单元中的顺序是无序的。
52.在图1示出的场景的基础上,参照图3,示出了编译阶段中单平台下各个产品的各个方案下boardid的处理流程。如图3所示,本技术在编译阶段可以将单平台下的各个boardid进行排序,得到包含这些boardid的非连续有序数组。可以理解,图3中非连续有序数组中的boardid依次为4201、4203、4204

4301、4302、4304

4480、4481

,该数组缺少4202和4303等boardid取值,即该数组中的boardid不是连续的。并且,非连续有序数组中的每个元素对应一个索引。例如,图3中产品a(producta)、验证方案v1下的boardid为4202,该boardid在该非连续有序数组的索引为1。类似的。图3中非连续有序数组中的取值为4203的boardid的索引为2,取值为4204的boardid的索引为3。此外,图3示出的boardid就是boardid。
53.在一些实施例中,图3示出的非连续有序数组为配置文件各个元素所有信息组成的数组,即数组中每个元素包括产品,方案和boardid以及对应的硬件信息。
54.s203:将介于配置文件中最大boardid和最小boardid之间且被跳过的boardid按序插入到配置文件。从而,使得插入boardid的配置文件中的boardid连续且有序,并且配置文件中相邻boardid的差值为1。
55.参照图3,本技术在编译阶段可以对非连续有序数组中的最大boardid和最小boardid之间且被跳过的boardid进行插入处理,即向非连续有序数组中插入占位dtbo的boardid,以得到图3示出的连续有序数组。例如,如图3所示,在已有的4201、4203之间插入4202这一取值的boardid,并在4302、4304之间插入4303这一取值的boardid。即执行图3示出的“1.编译时“插帧”补齐跳空的boardid”步骤。
56.可以理解,在非连续有序数组中插入boardid的同时,该数组中各个元素的索引也会发生变化。例如,图3示出的连续有序数组中取值为4201、4202、4203、4204的boardid的索引分别为1、2、3、4。
57.s204:将配置文件中连续且有序中的各个设备树源码进行编译,并将配置文件中插入的boardid所在的dtb元素以空dtb的方式编译打包到dtbo镜像中,生成dtbo镜像。
58.可以理解,dtbo镜像中的元素为dtb元素。
59.其中,保证dtbo镜像中每个dtb元素的大小一致,即每个dtb元素占用的比特数一致。即dtbo镜像中由设备树源码编译得到的dtb元素占用的比特位数与空dtb元素占用的比特位数一致。如图3所示,在编译阶段可以执行“2、缺失boardid使用空dtbo填补”在一些实施例中,本技术可以设备树源码采用dtc工具将配置文件中的配置树源码由dts文件编译为dtb文件,即编译得到各个配置树源码的dtb镜像。
60.为了方便描述,本技术中的boardid也称为boardid,板卡也称为板子。
61.可以理解,上述dtbo镜像中的各个dtb镜像可以通过手机的引导程序(bootloader)加载到内核中,以用于对手机进行初始化。
62.运行阶段:在一些实施例中,手机的各硬件部件的运行阶段指的是手机上电开机之后通过软件拉起硬件的过程,具体为手机的硬件上电开机之后调用引导程序(bootloader)运行手机板卡对应的dtb镜像以启动手机的各硬件部件的过程中。
63.继续参照图2,在上述编译阶段之后本技术的运行阶段可以通过以下步骤实现:s205:在手机上电开机时获取当前板卡的boardid。
64.在一些实施例中,手机上电时可以生成指示初始化手机中各硬件部件的指令,并响应于该指令获取当前板卡的boardid。
65.在一些实施例中,本技术可以根据当前板卡的gpio口状态,采用上文中的公式(1)计算出当前板卡的boardid。例如,公式(1)中的计算基数可以为mtk平台上的4000。
66.s206:将dtbo镜像数组化为dtbo镜像数组,其中dtbo镜像数组中的每个dtb元素的下标为对应的boardid减去当前板卡对应的计算基数(如4000)后的数值。
67.可以理解,dtbo镜像数组可以为图3示出的上述连续有序数组。在图3的基础上,参照图4所示,以计算基数为4000为例,对于dtbo镜像对应的数组中各个dtb元素的boardid的取值4201、4203、4204

4301、4302、4304

4480、4481

,可以分别减去400得到对应的各个dtb元素的下标201、202、203、204

301、302、303、304

480、481

。显然,各个dtb元素的下标也是连续的。
68.s207:将当前板卡的boardid减去当前板卡对应的计算基数后的数值作为待查询数值。
69.例如,假设当前板卡的boardid为4304,那么在计算基数为4000时待查询数值为304。
70.s208:从dtbo镜像数组中查找与下标与待查询数值相等的dtb元素。
71.例如,结合图3和图4,对于当前板卡的boardid为4304,可以从dtbo镜像数组中查找到数组下标为304的dtb元素,即当前手机的硬件下的产品b在产线验证方案v2下的板卡所对应的dtb元素。
72.s209:采用查询出的dtb元素对手机的硬件进行初始化。
73.在一些实施例中,本技术中手机可以调用引导程序将查询出的dtb元素表示的dtb镜像加载到内核中,以对手机的硬件进行初始化。
74.在一些实施例中,本技术的dtbo镜像数组中的每个dtb元素的下标还可以为所包含的boardid。那么,本技术可以将当前板卡的boardid作为待查询数值,从dtbo镜像数组中
查询到下标与该查询参数相等的dtb元素。
75.在一些实施例中,本技术的dtbo镜像数组中的每个dtb元素的下标还可以根据dtbo镜像数组的索引设定。例如,每个dtb元素的下标可以为所包含的boardid减去计算基数再减去设定差值,该设定差值为dtbo镜像数组中最小的boardid与其所在的dtb元素的索引之间的差值。那么,本技术可以将当前板卡的boardid减去计算基数和预设差值后的数值作为待查询数值,从dtbo镜像数组中查询到下标与该查询参数相等的dtb元素。在图3示出的各个boardid的基础上,以计算基数为400为例,预设差值可以为4201减去4000再减去1等于200。那么,对于当前板卡的boardid为4304,可以从dtbo镜像数组中查找到数组下标为104的dtb元素,即索引为104的dtb元素,也即当前手机的硬件下的产品b在产线验证方案v2下的板卡所对应的dtb元素。
76.如此,本技术在识别板卡的场景中,由于编译阶段可以dtbo镜像中的各个dtb元素是按照boardid连续且有序排列的,因此可以根据连续的且有序排列boardid设定dtbo镜像数组中连续且有序的下标。从而,在单平台启动时可以基于当前板卡的boardid从dtbo镜像数组中查找到数组下标与当前板卡的boardid匹配的dtb元素。而该查询过程中仅需查询下标与该当前板卡的boardid匹配的一个dtb元素,而无需遍历dtbo镜像中的所有dtb元素,因此该查找过程的时间复杂度为o(1)。进而,在单品台的大量产线验证方案下,对大量boardid的识别过程的耗时可以极大缩短。
77.如此,本技术在编译阶段将现有的无序、不连续的dtbo镜像改进为有序且连续的dtbo镜像;并且,在运行阶段将现有的遍历o(n)复杂度的方法改为直接计算的o(1)方法。即本技术可以基于对boardid的镜像编译和运行时查找双重优化,将查找复杂度降低到o(1)。
78.在一些实施例中,参照图5,示出了本技术中硬件初始化方法的编译阶段的流程示意图。该流程包括:扫描当前平台(例如手机的硬件)所有产品的boardid;根据扫描结果补齐缺失boardid(即“插帧”),使得补齐后的boardid为连续的boardid;根据boardid值大小顺序生成boardid配置清单,该清单中的boardid是连续且有序的,如按照从小到大的顺序排列;按照清单boardid大小顺序编译,以生成dtbo镜像。可以理解,boardid配置清单就是上文中用于编译生成dtbo镜像的配置文件。
79.在一些实施例中,参照图6,示出了本技术中硬件初始化方法的运行阶段的流程示意图。该流程包括:获取dtb_list[],按照boardid大小有序排列,dtb_list[]表示boardid所在的数组,如上文中的dtbo镜像数组。将dtb_list数组化,确定dtb_list[i]=i+platform_boarded_base,其中i为数组下标,dtb_list[i]表示一个boardid,platform_boarded_base表示计算基数(如4000)。根据dtbo_tagret_index= tagret_dtbo-platform_boarded_base查询dtb元素,其中,dtbo_tagret_index为数组下标,tagret_dtbo为需要启动的板卡的boardid。如此,可以通过数组下标的匹配方式快速地查询到手机的硬件等平台中当前板卡的boardid对应的dtb元素。其中,图6中的boardid就是boardid。
[0080]
接下来,对适用于本技术的硬件初始化方法的手机的结构进行说明。
[0081]
如图7所示,手机10可以包括处理器110、电源模块140、存储器180,移动通信模块130、无线通信模块120、传感器模块190、音频模块150、摄像头170、接口模块160、按键101以及显示屏102等。
[0082]
可以理解的是,本发明实施例示意的结构并不构成对手机10的具体限定。在本申
请另一些实施例中,手机10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0083]
处理器110可以包括一个或多个处理单元,例如,可以包括cpu、图像处理器(graphics processing unit,gpu)、数字信号处理器dsp、微处理器(micro programmed control unit,mcu)、人工智能(artificial intelligence,ai)处理器或可编程逻辑器件(field programmable gate array,fpga)等的处理模块或处理电路。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中可以设置存储单元,用于存储指令和数据。在一些实施例中,处理器110中的存储单元为高速缓冲存储器180。例如,处理器110可以调用引导程序将当前手机中板卡对应的dtb镜像加载至内核,以初始化手机10中的硬件。
[0084]
电源模块140可以包括电源、电源管理部件等。电源可以为电池。电源管理部件用于管理电源的充电和电源向其他模块的供电。在一些实施例中,电源管理部件包括充电管理模块和电源管理模块。充电管理模块用于从充电器接收充电输入;电源管理模块用于连接电源,充电管理模块与处理器110。电源管理模块接收电源和/或充电管理模块的输入,为处理器110,显示屏102,摄像头170,及无线通信模块120等供电。
[0085]
移动通信模块130可以包括但不限于天线、功率放大器、滤波器、低噪声放大器(low noise amplify,lna)等。移动通信模块130可以提供应用在手机10上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块130可以由天线接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块130还可以对经调制解调处理器调制后的信号放大,经天线转为电磁波辐射出去。在一些实施例中,移动通信模块130的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块130至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wide band code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),无线局域网(wireless local area net works,wlan),近距离无线通信技术(near field communication,nfc),调频(frequency modulation,fm)和/或field communication,nfc),红外技术(infrared,ir)技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellitesystem,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentationsystems,sbas)。
[0086]
无线通信模块120可以包括天线,并经由天线实现对电磁波的收发。无线通信模块120可以提供应用在手机10上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequencymodulation,fm),近距离
无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。手机10可以通过无线通信技术与网络以及其他设备进行通信。
[0087]
在一些实施例中,手机10的移动通信模块130和无线通信模块120也可以位于同一模块中。
[0088]
显示屏102用于显示人机交互界面、图像、视频等。显示屏102包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。
[0089]
传感器模块190可以包括接近光传感器、压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
[0090]
音频模块150用于将数字音频信息转换成模拟音频信号输出,或者将模拟音频输入转换为数字音频信号。音频模块150还可以用于对音频信号编码和解码。在一些实施例中,音频模块150可以设置于处理器110中,或将音频模块150的部分功能模块设置于处理器110中。在一些实施例中,音频模块150可以包括扬声器、听筒、麦克风以及耳机接口。
[0091]
摄像头170用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给图像信号处理(image signal processing,isp)转换成数字图像信号。手机10可以通过isp,摄像头170,视频编解码器,图形处理器(graphic processing unit,gpu),显示屏102以及应用处理器等实现拍摄功能。
[0092]
接口模块160包括外部存储器接口、通用串行总线(universal serial bus,usb)接口及用户标识模块(subscriber identification module,sim)卡接口等。其中外部存储器接口可以用于连接外部存储卡,例如microsd卡,实现扩展手机10的存储能力。外部存储卡通过外部存储器接口与处理器110通信,实现数据存储功能。通用串行总线接口用于手机10和其他电子设备进行通信。用户标识模块卡接口用于与安装至手机1010的sim卡进行通信,例如读取sim卡中存储的电话号码,或将电话号码写入sim卡中。
[0093]
在一些实施例中,手机10还包括按键101、马达以及指示器等。其中,按键101可以包括音量键、开/关机键等。马达用于使手机10产生振动效果,例如在用户的手机10被呼叫的时候产生振动,以提示用户接听手机10来电。指示器可以包括激光指示器、射频指示器、led指示器等。
[0094]
根据本技术的实施例,图8示出了一种soc 1500的框图。例如,该soc 1500可以为手机10中的板卡。在图8中,相似的部件具有同样的附图标记。另外,虚线框是更先进的soc的可选特征。在图8中,soc 1500包括:互连单元1550,其被耦合至应用处理器1510;系统代理单元1570;总线控制器单元1580;集成存储器控制器单元1540;一组或一个或多个协处理器1520,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(sram)单元1530;直接存储器存取(dma)单元1560。在一个实施例中,协处理器1520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、gpgpu、高吞吐量mic处理器、或嵌入式处理器等等。
[0095]
本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0096]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
[0097]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0098]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
[0099]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0100]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0101]
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要
素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0102]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。

技术特征:
1.一种硬件初始化方法,其特征在于,所述方法包括:接收到初始化电子设备中各硬件部件的指令;获取所述电子设备上的第一板卡的第一板卡装置识别码;从与所述电子设备的板卡装置识别码列表中查找与所述第一板卡装置识别码匹配的第二板卡装置识别码,所述板卡装置识别码列表中的板卡装置识别码是按照第一顺序连续排列的;获取与第二板卡装置识别码对应的第一硬件配置文件;基于所述第一硬件配置文件对所述电子设备的各硬件部件进行初始化。2.根据权利要求1所述的方法,其特征在于,所述板卡装置识别码列表包括对应每个板卡装置识别码的序号,所述序号为所述板卡装置识别码减去计算基数后的数值;并且所述从与所述电子设备对应的板卡装置识别码列表中查找与所述第一板卡装置识别码匹配的第二板卡装置识别码,包括:将所述第一板卡装置识别码减去计算基数得到待查询参数;从所述板卡装置识别码列表确定出与所述待查询参数相同的序号,其中,确定出的所述序号所对应的板卡装置识别码为所述第二板卡装置识别码。3.根据权利要求2所述的方法,其特征在于,所述板卡装置识别码列表以数组的形式存储,且所述板卡装置识别码列表中的每个板卡装置识别码对应的序号为下标,所述下标为用于区分所述数组中的各个板卡装置识别码的数字编号。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:获取所述电子设备的多个第一设备树源码,每个第一设备树源码对应一个板卡装置识别码;按照板卡装置识别码的第一顺序对所述多个第一设备树源码进行排列;将排列后的所述多个第一设备树源码生成第一配置文件;在所述第一配置文件中插入多个第三板卡装置识别码得到第二配置文件,其中所述第二配置文件中各个元素包含的板卡装置识别码连续且有序;对所述第二配置文件中的各个元素进行编译以生成第一列表,其中所述第三板卡装置识别码所在的元素不包含硬件信息,所述第一列表中各个元素中的板卡装置识别码构成所述板卡装置识别码列表,并且与第一硬件配置文件为所述第一列表中包含所述第二板卡装置识别码的元素。5.根据权利要求4所述的方法,其特征在于,所述第一列表包括设备树块覆盖镜像,所述第一列表中每个元素为设备树二进制镜像。6.根据权利要求1所述的方法,其特征在于,所述获取电子设备上的第一板卡的第一板卡装置识别码,包括:根据所述电子设备对应的通用输入输出口的状态数值和计算基数,计算所述电子设备上的第一板卡的第一板卡装置识别码;其中,所述计算基数为与所述电子设备相关的用于计算板卡装置识别码的参数。7.根据权利要求1所述的方法,其特征在于,所述第一顺序为板卡装置识别码的取值从小到大排列的顺序。8.根据权利要求1所述的方法,其特征在于,所述接收到初始化电子设备中各硬件部件
的指令,包括:对应于所述电子设备上电开机,接收到初始化电子设备中各硬件部件的指令。9.根据权利要求1所述的方法,其特征在于,所述板卡装置识别码列表中的多个板卡装置识别码与多个板卡一一对应,且所述第一板卡为所述多个板卡中的一个板卡。10.根据权利要求1所述的方法,其特征在于,所述电子设备中的硬件部件至少包括:中央处理器、内存、总线、摄像头。11.一种可读介质,其特征在于,所述可读介质上存储有指令,所述指令在电子设备上执行时使所述电子设备执行权利要求1至10中任一项所述的硬件初始化方法。12.一种电子设备,其特征在于,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是所述电子设备的处理器之一,用于执行权利要求1至10中任一项所述的硬件初始化方法。

技术总结
本申请涉及电子技术领域,公开了一种硬件初始化方法、介质及电子设备,能够降低硬件初始化时匹配BoardID过程的耗时。该方法包括:接收到初始化电子设备中各硬件部件的指令;获取电子设备上的第一板卡的第一板卡装置识别码;从与电子设备的板卡装置识别码列表中查找与第一板卡装置识别码匹配的第二板卡装置识别码,板卡装置识别码列表中的板卡装置识别码是按照第一顺序连续排列的;获取与第二板卡装置识别码对应的第一硬件配置文件;基于所述第一硬件配置文件对所述电子设备的各硬件部件进行初始化。行初始化。行初始化。


技术研发人员:石磊
受保护的技术使用者:荣耀终端有限公司
技术研发日:2023.07.10
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐