CN105144090A - 用于在高级操作系统(hlos)启动之前预读连接到智能电话的外围设备的设备驱动的方法和装置 - Google Patents
用于在高级操作系统(hlos)启动之前预读连接到智能电话的外围设备的设备驱动的方法和装置 Download PDFInfo
- Publication number
- CN105144090A CN105144090A CN201480010547.8A CN201480010547A CN105144090A CN 105144090 A CN105144090 A CN 105144090A CN 201480010547 A CN201480010547 A CN 201480010547A CN 105144090 A CN105144090 A CN 105144090A
- Authority
- CN
- China
- Prior art keywords
- peripheral hardware
- subscriber equipment
- configuration file
- driving
- hlos
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
- Quality & Reliability (AREA)
Abstract
描述了用于启动用户设备的装置和方法。可以执行用户设备的设备启动。可以配置用户设备的外设和相关联的驱动。可以启动高级操作系统(HLOS)。所述配置可以发生在HLOS的启动之前。还描述了用于加载用户设备的外围设备驱动的装置和方法。可以确定与用户设备相关联的外设。可以加载所确定的外设的驱动。所加载的驱动可以与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了HLOS的用户设备的类型。
Description
背景技术
以下说明一般涉及外围设备驱动,更具体地说,涉及在高级操作系统(HLOS)启动之前预读智能电话和其它连接设备的外围设备驱动。
可以对目前的智能电话和其它的无线设备进行配置,使得由各智能电话制造商制造的各个不同的智能电话型号可以使用不同的软件环境,并且可以与不同的外设相关联(既有在板上的也有通过有线或无线接口相连接的),即使所有的智能电话可能使用相同的高级操作系统(HLOS),例如Android。因此,针对智能电话的初始软件配置会要求识别以及加载大量的外设类别下的每种可能的外设的驱动,可以在制造过程中的晚些时候将外设的驱动与电话相关联。结果是,对这些智能电话进行初始软件配置要求广泛的工程专业技能、大量的人力付出以及显著的硬件和软件资源。
由于在HLOS启动之前并不知道可能的众多外设中的哪一些是实际与智能电话相关联的,所以即时地识别以及加载驱动会使HLOS启动变得较为复杂和缓慢,而非可取的。
此外,由于可以将全部的众多驱动加载到智能电话上,并且不清楚所加载的驱动中的哪一些可以供HLOS使用,所以很难由感兴趣的一方(诸如,举例来说,网络运营商、智能电话制造商、或与HLOS相关联的软件公司(其希望向运行特定HLOS的所有电话提供更新,诸如,举例来说,安全补丁,而不考虑电话订阅到的电话制造商和网络))来提供对HLOS的集中式管理。
因此,需要提供简化的初始软件配置过程。还需要以较低的功耗提供较快的HLOS启动。还需要在使用相同HLOS的各种各样的智能电话上提供对单个HLOS的集中管理和更新,即便是在不同的运营商网络上。
发明内容
下面给出对一个或多个方面的简要概述,以提供对这些方面的基本理解。该概述不是对全部预期方面的泛泛概括,也不旨在标识全部方面的关键或重要元素或者描述任意或全部方面的范围。其目的仅在于作为后文所提供更详细描述的序言,以简化形式提供一个或多个方面的一些概念。
在一个方面,描述了用于启动用户设备的方法。所述方法可以包括执行所述用户设备的设备启动。所述方法可以包括配置所述用户设备的外设和相关联的驱动。所述方法可以包括启动高级操作系统(HLOS)。所述配置可以发生在所述HLOS的启动之前。
在一个方面,描述了用于启动用户设备的装置。所述装置可以包括用于执行所述用户设备的设备启动的单元。所述装置可以包括用于配置所述用户设备的外设和相关联的驱动的单元。所述装置可以包括用于启动高级操作系统(HLOS)的单元。所述配置可以发生在所述HLOS的启动之前。
在一个方面,描述了用于启动用户设备的计算机程序产品。所述计算机程序产品可以包括计算机可读介质,所述计算机可读介质包括代码。所述代码可以使计算机执行所述用户设备的设备启动。所述代码可以使计算机配置所述用户设备的外设和相关联的驱动。所述代码可以使计算机启动高级操作系统(HLOS)。所述配置可以发生在所述HLOS的启动之前。
在一个方面,描述了用于启动用户设备的装置。所述装置可以包括存储器、收发机和处理器。所述处理器可以被配置为执行所述用户设备的设备启动。所述处理器可以被配置为配置所述用户设备的外设和相关联的驱动。所述处理器可以被配置为启动高级操作系统(HLOS)。所述配置可以发生在所述HLOS的启动之前。
在一个方面,描述了用于加载用户设备的外围设备驱动的方法。所述方法可以包括确定能与用户设备相关联的外设。所述方法可以包括加载所确定的外设的驱动。所加载的驱动可以与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
在一个方面,描述了用于加载用户设备的外围设备驱动的装置。所述装置可以包括用于确定能与用户设备相关联的外设的单元。所述装置可以包括用于加载所确定的外设的驱动的单元。所加载的驱动可以与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
在一个方面,描述了用于加载用户设备的外围设备驱动的计算机程序产品。所述计算机程序产品可以包括计算机可读介质,所述计算机可读介质包括代码。所述代码可以使计算机确定能与用户设备相关联的外设。所述代码可以使计算机加载所确定的外设的驱动。所加载的驱动可以与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
在一个方面,描述了用于加载用户设备的外围设备驱动的装置。所述装置可以包括存储器、收发机和处理器。所述处理器可以被配置为确定能与用户设备相关联的外设。所述处理器可以被配置为加载所确定的外设的驱动。所加载的驱动可以与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
为能达成前述及相关目的,这一个或多个方面包括在下文中充分描述并在权利要求书中特别指出的特征。以下说明和附图详细阐述了这一个或多个方面的某些说明性的特征。但是,这些特征仅仅是指示了可采用各个方面的原理的各种方式中的若干种,并且该说明旨在包括所有此类方面及其等效项。
附图说明
以下结合附图对公开的方面进行描述,附图用来说明而非限制公开的方面,其中相同的附图标记表示相同的元素,并且其中:
图1是对用于启动用户设备的示例性方法的说明;
图2是对用于确定与用户设备相关联的外设以及在外设配置文件表中更新每个所确定的外设的配置文件的示例性方法的说明;
图3是对示例性外设配置文件表的说明;
图4是对示例性高级操作系统的架构的说明;
图5是对在Linux内核层内的示例性显示设备驱动的说明;
图6是对使用单体方案来加载用户设备的外围设备驱动的示例性方法的说明;
图7是对用于使用动态方案来加载用户设备的外围设备驱动的示例性方法的说明;以及
图8是对示例性用户设备的说明。
具体实施方式
现在参照附图对各个方面进行描述。在以下的说明中,出于解释的目的,给出了诸多具体细节,以便提供对一个或多个方面的透彻理解。但是,显而易见的是,可以不用这些具体细节来实施这些方面。
所描述的方面涉及用于启动用户设备或终端(例如智能电话)的方法和装置。具体来说,所描述的方面可以允许用户设备(UE)在启动UE的高级操作系统(HLOS)之前配置与UE相关联的外设。配置外设可以包括:自动地或手动地预加载或预读与针对关联于UE的每个外设的驱动相关的信息,以及通过存储驱动信息(例如在闪存中)来使得其对于HLOS是可得到的。在启动HLOS之前配置外设以及预加载与关联于外设的驱动有关的信息可以允许HLOS被简化并且较快地启动。将对外设的配置和对驱动信息的预读与HLOS分开还可以允许在任意数量的网络上在使用相同HLOS的各种各样的UE上对HLOS的集中管理和更新。这些方面还可以提供简化的初始软件配置过程。
图1是对用于启动用户设备(诸如,举例来说,图8的UE800)的示例性方法100的说明。在一个例子中,可以由图8的处理器824结合图8的存储器826和收发机825来执行方法100。
在110,方法100包括执行用户设备(UE)的设备启动。例如,方法100可以执行UE(例如智能电话)的设备启动。在一些例子中,设备启动可以使得加载HLOS前的操作环境,以便在与UE相关联的高级操作系统(HLOS)启动之前执行后续操作。
在120,方法100包括配置UE的外设和相关联的驱动。在一个方面,可以自动地配置外设和相关联的驱动。在另一个方面,可以手动地配置外设和相关联的驱动。在一个例子中,UE的外设可以是诸如图8的外设821、822和823之类的基于片上智能电话(SPOC)的外设(例如,诸如处理器或调制解调器之类集成到SPOC上的外设)、诸如图8的外设811、812、813、814和815之类的板上外设(例如,诸如触摸屏或照相机之类集成到UE中但并不作为SPOC的部分的外设)和/或诸如图8的外设831和823之类的板外外设(例如,诸如打印机或卡式扫描仪之类的、通过有线或无线接口连接到UE的外设)。在一个方面,外设配置120可以发生在HLOS启动之前(例如HLOS启动之前的一时间处)。
在一个方面,举例来说,可以在HLOS的启动之前预读与所配置的外设相关联的驱动。在一个例子中,可以由HLOS前的操作环境来预读驱动。在另一个方面,可以在HLOS的启动之前激活驱动。在一个例子中,可以由HLOS前的操作环境来激活驱动。在另一个方面,可以由UE识别以及加载与所配置的外设相关联的临时驱动。在一个例子中,加载与所配置的外设相关联的临时驱动可以允许UE在HLOS的启动之前使用所配置的外设。在另一个例子中,HLOS前的操作环境可以识别以及加载临时驱动。在另一个例子中,临时驱动可以与所配置的外设相关联的驱动相同或不同。
外设配置120可以包括外设确定122、外设配置文件(profile)更新124和外设驱动准备126。在122,方法100可以包括确定与UE相关联的外设。更具体地说,可以确定与UE相关联的每个外设的外设配置文件是否在UE处可得到。在一个例子中,可以确定特定外设的配置文件是否已经被预加载入外设配置文件表中(例如图3的外设配置文件表),而不考虑特定外设是否是在SPOC上的、在板上的或板外的外设。特定外设的配置文件可以存储作为外设配置文件表300中(特定外设)的条目。在一个例子中,外设配置文件表(例如图3的外设配置文件表300)可以存储在UE(例如图8的UE800)的存储器(例如图8的存储器826)内。
在一些实例中,确定与UE相关联的配置文件还可以包括检测每个外设的配置文件是否完整。完整的配置文件可以包括与外设有关的所有相关信息。例如,完整的配置文件可以由表条目来表示,对于该表条目来说在外设配置文件表的每个字段中存在信息。不完整的配置文件可能没有包括与外设有关的所有相关信息。例如,不完整的配置文件可以由表条目来表示,对于该表条目来说缺失了外设配置文件表中的一个或多个字段中的信息。
在一些实例中,确定与UE相关联的配置文件还可以包括对每个外设的配置文件进行错误检查。例如,可以对外设配置文件表中的所有条目进行错误检查以确保条目可由HLOS使用。可以被识别并处理的错误可以包括例如基于完整性的错误、在正常范围之外的配置文件条目、或被手动地输入的条目中的错误(例如拼写错误)。
在124,方法100包括在外设配置文件表中更新每个所确定的外设的配置文件。在完整的配置文件的情况下,可以不更新外设配置文件表中相关联的条目,因为举例来说,当条目由UE确定时在条目中没有任何丢失的信息。在不完整的配置文件的情况下,可以由UE基于与所确定的外设有关的信息来更新外设配置文件表中相关联的条目。
在126,方法100包括准备与每个外设配置文件相关联的驱动以供HLOS使用。在一个例子中,驱动准备可以包括将当前完整的、已更新的且经错误检查的外设配置文件表加载入闪存或对于HLOS可用的其它存储介质中。在一个例子中,可以将外设配置文件表加载入存储器(例如图8的存储器826)中。在完成126以及由HLOS对外设配置文件表的存取之后,HLOS已经收到其需要的、与被确定为与UE相关联的每个外设相关联的驱动有关的所有信息。
在130,方法100包括启动HLOS。在一个例子中,与UE相关联的HLOS启动。在一个例子中,HLOS可以使用在120处的外设配置的结果,例如图3的完整的外设配置文件表300,其已经如上文所描述的存储起来,以加载与每个外设相关联的驱动。这种对驱动的预加载或预读可以允许迅速且简化的HLOS启动过程。
方法100被示出和描述为一系列的动作,应当理解并意识到方法并不受限于动作的顺序,因为一些动作可以根据一个或多个方面以与本文示出和描述的顺序不同的顺序发生和/或与其它动作同时发生。例如,应当意识到,方法可以替代地被表示为一系列相互关联的状态或事件,例如以状态图的形式。此外,并非所有示出的动作都需要用来实现根据一个或多个方面的方法。
图2是对用于确定与用户设备相关联的外设以及在外设配置文件表中更新每个所确定的外设的配置文件的示例性方法的说明。更具体地说,图2针对图1的122和124提供了附加的、方法上的细节。在一个例子中,可以由图8的处理器824结合图8的存储器826和收发机825来执行本文针对图2所描述的方面。
如在122所示出的确定与UE(诸如,举例来说,图8的UE800)相关联的外设可以包括如图2中所示出的附加的方面210、220、230、240、250和260。在210,方法122包括确定每个外设的配置文件是否在UE处可得到。在一个例子中,外设可以是图8的外设811、812、813、814、815、821、823、831和832。如果在外设配置文件表(例如图3的外设配置文件表300)中存在特定外设的条目(例如配置文件),则该特定外设的配置文件被确定为在UE处可得到。外设配置文件表中的每个条目可以是特定外设的配置文件。
如果特定外设的配置文件被确定为在UE处不可得到,则方法122包括确定特定外设的配置文件是否在外部位置处可得到,如在220所示出的。在一个例子中,UE可以在与外设相关联的制造商或OEM所创建的和/或管理的数据库、网站或其它存储介质处搜索配置文件。例如,UE可以从存储在云中(例如,在通过诸如互联网的网络可得到的服务器中、在受显示器公司A控制的数据库中)的针对显示器公司A的显示器的信息(例如驱动)的数据库中寻找由显示器公司A制造的显示器的配置文件。如果UE确定配置文件在外部位置处是可得到的,则方法122包括从外部位置处获取特定外设的配置文件,如在240所示出的。
如果特定外设的配置文件被确定为在UE处不可得到并且在外部位置处不可得到,如在230所示出的,则UE可以以若干方式中的一种方式来处理这种情况。在一个例子中,UE可以生成与特定配置文件相关联的错误,如在230所示出的。在另一个例子中,UE可以基于其它信息(未示出)从头开始生成或创建外设的配置文件。
在250,方法122包括检测每个外设的配置文件是否完整。例如,对于每个外设,其可能已经是在UE处可得的或者可能已经从外部位置获取到,可以检测配置文件是否完整。配置文件可以被检测为是完整的,如果它由外设配置文件表中的一条目来表示,对于该条目来说在该条目的每个字段中存在信息。换句话说,该配置文件未丢失任何信息。配置文件可以被检测为是不完整的,如果并非在该条目的每个字段中存在信息。换句话说,该配置文件丢失了信息。
如果配置文件在UE处是可得到的但特定外设的配置文件是不完整的,则可以在外部位置处寻找特定外设的完整的配置文件,如线252所示出的。换句话说,如果在UE处可得到的是不完整的配置文件,则方法可以转移到220。如果特定外设的配置文件是不完整的并且配置文件无法从外部位置中获取得到,则可以生成错误消息,如线254所示出的。换句话说,如果从外部位置获取了不完整的配置文件或没有获取到任何配置文件,则方法可以转移到230。在另一个例子中,如果从外部位置获取了特定外设的不完整的配置文件,则方法可以转移到220(如线252所示出的),以便尝试从与从其中获取了该不完整的配置文件的外部位置不同的外部位置获取特定外设的完整的配置文件。在另一个例子中(未示出),如果检测到不完整的配置文件并且不可能完成该配置文件,则可以基于与外设有关的信息来从头生成或创建该外设的新的配置文件,并且可以将该外设的新条目添加到外设配置文件表中。
在260,方法122包括对每个外设的配置文件进行错误检查。例如,可以对外设配置文件表中的所有条目进行错误检查以确保条目可由HLOS使用。可以被识别并处理的错误可以包括例如基于完整性的错误、在正常范围之外的配置文件条目、或被手动地输入的条目中的错误(例如拼写错误)。
如在124所示出的在外设配置文件表(例如图3的外设配置文件300)中更新每个所确定的外设的配置文件可以包括如图2中所示出的附加的方面270和280。如在270所示出的,方法124包括在外设配置文件表中更新每个所确定的外设的配置文件。在一个例子中,如果基于检测配置文件是否完整、完成配置文件(如有必要)以及对配置文件进行错误检查和处理来对在UE处可得到的配置文件进行调整,则UE可以在外设配置文件表中存取配置文件的原始条目以及基于所调整的配置文件来更新条目。在另一个例子中,如果从外部位置获取了特定外设的配置文件,则UE可以在外设配置文件表中存取与特定外设相关联的条目(如果这样的条目存在)以及基于所获取的配置文件来更新条目。如果与特定外设(对于其来说从外部位置获取了配置文件)相关联的条目先前并不存在于外设配置文件表中,则将基于所获得的配置文件来创建条目以及将信息添加到该条目。
在一个例子中,如果特定外设的配置文件既不可在UE处得到也不可在外部位置处得到,则方法124包括将针对特定外设的错误消息存储在外设配置文件表中,如在230所示出的。在这种情况下,举例来说,可以生成错误消息并且随后将其存储在外设配置文件表中或其它的地方,以及将其与特定外设相关联,如在280所示出的。在一个例子中,如果生成了错误消息并且以与特定外设相关联的方式存储了错误消息,则在130,HLOS可以在进入其启动过程时被告警该错误。
在另一个例子中,UE可以基于与外设有关的信息来尝试为这样的外设从头生成或创建新的配置文件。在这种情况下,举例来说,方法可以从230转移到270(未示出),以便通过添加特定外设的新创建的配置文件来更新外设配置文件表。
方法200被示出和描述为一系列的动作,应当理解并意识到方法并不受限于动作的顺序,因为一些动作可以根据一个或多个方面以与本文示出和描述的顺序不同的顺序发生和/或与其它动作同时发生。例如,应当意识到,方法可以替代地被表示为一系列相互关联的状态或事件,例如以状态图的形式。此外,并非所有示出的动作都需要用来实现根据一个或多个方面的方法。
图3是对示例性外设配置文件表300的说明。外设配置文件表300示出为具有字段,所述字段包括:区域310、外设类型312、外设编号314、外围设备驱动标识符316和外设标识符318。在一个例子中,可以在外设配置文件表300中手动地输入每个配置文件或条目(例如条目320和330),使得条目已被预先填充以及因此当UE确定与条目相关联的外设时该条目是完整的。在另一个例子中,可以基于上文针对图1和图2所描述的外设自动配置过程来自动填充或生成外设配置文件表300中的条目。区域310可以涉及特定外设是否位于SPOC上、UE的板上或板外。外设类型312可以指示与条目相关联的外设的类型,诸如,举例来说,调制解调器、Wi-Fi、蓝牙设备、屏幕、照相机、麦克风、扬声器或卡式扫描仪。外设编号314是基于特定外设配置的标识符。可以手动地输入或基于外设标识符318来自动地填充外围设备驱动标识符316。在一个例子中,外设标识符318可以仅被用于(例如包括在条目中)将被自动配置的那些外设,以便确定要使用的对应的外围设备驱动。在另一个例子中,即使已经填充了外围设备驱动标识符316字段,也可以使用外设标识符318。
完整的配置文件可以包括与外设有关的所有相关信息。例如,完整的配置文件可以由一表条目来表示,对于该表条目来说在外设配置文件表的每个字段中存在信息。例如,图3的条目320包括调制解调器的配置文件。条目320指出了外设类型是调制解调器321、调制解调器是在SOPC上322、具有外设编号1323、驱动IDA324和外设IDA325。不完整的配置文件没有包括与外设有关的所有相关信息。例如,不完整的配置文件可以由一表条目来表示,对于该表条目来说缺失了外设配置文件表300中的一个或多个字段中的信息。例如,图3的条目330包括屏幕的配置文件。条目330指出了外设类型是屏幕331、屏幕是在UE的板上332(例如集成到UE中但并不在SPOC上)、具有外设编号1333和外设IDD335。然而,条目330缺失了与屏幕的驱动ID334相关的信息。因此,条目330是不完整的,以及因此UE可以确定屏幕的配置文件在UE处不可得到。
在一个方面,UE可以被配置为在HLOS的启动之前加载与所确定的外设相关联的临时驱动。在一个例子中,可以由HLOS前的操作环境来加载和使用临时驱动。在另一个例子中,临时驱动可以允许UE(当运行HLOS前的操作环境时)在HLOS的启动之前使用所确定的外设。在这种情况下,对于外设配置文件表300中的每个配置文件(或条目)来说可以包括附加的字段(未示出),所述附加的字段指示了临时驱动对于配置文件是否是可得到的、临时驱动是否在UE处或其它的地方可得到、临时驱动是否应当由UE在HLOS启动之前进行加载、和/或与临时驱动相关的任何其它的信息。
图4是对示例性高级操作系统的架构400的说明。在一个例子中,HLOS可以是但不限于Android操作系统,尽管应当理解HLOS可以是任何类型的操作系统。HLOS可以正运行在UE(例如图8的UE800)上,其中处理器(例如图8的处理器824)可以正执行与HLOS相关联的指令,其中指令可以存储在存储器(例如图8的存储器826)中。HLOS架构400的架构包括应用层410、应用框架层420、程序库层430、HLOS运行时间层440(例如可以是Android运行时间层)和内核层450(诸如但不限于LINUX内核层)。上文针对图1、2和3所描述的方面可以涉及HLOS架构400的最底层,诸如,举例来说,LINUX内核层450,因为在LINUX内核层450中规定了对与UE外设相关联的驱动的支持。
在针对智能电话HLOS的一个方案中,可以提供具有对特定的、目标电话配置的支持的单体LINUX内核来将设备驱动直接建立于LINUX内核中。在这种方案中,每个智能电话型号可以具有其自身特殊的LINUX内核以及因此其自身版本的特定HLOS。因此,运营商网络或其它感兴趣的实体可能难以控制在可得到的每个智能电话型号上运行的HLOS版本。这种情况可能在提供所更新的HLOS信息或软件(例如漏洞修复、安全补丁和操作系统更新)的协同部署(coordinatedrollouts)时有困难。
为了帮助缓解上文所描述的一些问题以及提供对HLOS更新的协同部署,可以提供单一版本的LINUX内核以供遍及运营商网络和手机制造商的大量的智能电话使用。因此,可以协调由运营商网络或其它感兴趣的实体对HLOS的控制。可以使用单体方案和/或动态方案来提供单一版本的LINUX内核。所描述的方面的HLOS可以是任何类型的操作系统。ANDROID操作系统及其相关联的LINUX属性仅是用于说明目的的一个例子。本说明书并不受限于ANDROID或LINUX的实施方式。
图5是对在Linux内核层内的示例性显示设备驱动的说明。更具体地说,图5是对在单体LINUX内核层510内的示例性显示设备驱动和在动态LINUX内核层550内的示例性显示驱动的说明。LINUX内核层510和550可以是例如图4的LINUX内核层450。
参考510,提供了单体内核,其可以包括与一个或多个已知的显示外设相关联的一个或多个驱动,诸如,举例来说,驱动1511、驱动2512一直到第N个驱动513,其中N是正整数。例如,可以将驱动511、512和513预加载入和建立于单体或单一版本中的内核中。
参考550,提供了动态内核,其可以包括单个驱动,诸如,举例来说,与显示外设相关联的驱动1551。可以将驱动1551加载为占位容器(placeholder),例如可加载的内核模块(LKM)。在一个例子中,被加载为LKM的驱动可以仅包括与目标HLOS相关联的那些驱动,所述目标HLOS可以由电话制造商在晚些时候在智能电话上提供。可以将LKM加载为用于多个外设类别中的每一个外设类别下的外设的驱动的占位容器。例如,可以将LKM加载为用于调制解调器、显示器、照相机、麦克风和可能与UE相关联的其它外设的驱动的占位容器。由于驱动1551可以是LKM,因此不可以将其加载为基本内核版本的部分。更确切地说,对于被确定为与UE相关联的特定显示外设来说,LINUX内核可以基于存储在例如外设配置文件表300中的外设配置文件来动态地加载驱动1551。在一个例子中,动态方案可以允许对LINUX内核和设备驱动版本分别地发行和支持。所描述的方面的HLOS可以是任何类型的操作系统。ANDROID操作系统及其相关联的LINUX属性仅是用于说明目的的一个例子。本说明书并不受限于ANDROID或LINUX的实施方式。
图6是对使用单体方案来加载用户设备的外围设备驱动的示例性方法600的说明。在一个例子中,方法600可以用于为图8的UE800加载外围设备驱动。在一个例子中,可以由图8的处理器824结合图8的存储器826和收发机825来执行方法600。
在610,方法600包括确定能与UE相关联的外设。例如,所确定的外设中的每一个可以位于SPOC上、UE的板上或板外,诸如,举例来说,图8的外设811、812、813、814、815、821、822、823、831和832。
在620,方法600包括:加载所确定的外设的驱动,使得所加载的驱动与HLOS架构相关联,而不考虑在其上提供了HLOS的UE的类型。例如,可以将所确定的外设的驱动加载入LINUX内核中(例如图4的LINUX内核450或图5的LINUX内核510)。在一个例子中,可选地,并且如在621所示出的,方法600包括加载多个外设类别中的每一个外设类别下的已知外设集合的驱动集合。在一个例子中,可以加载可与UE相关联的、所有已知调制解调器中的每一个或所有已知调制解调器中的某些大的子集的一个或多个驱动,可以加载可与UE相关联的、所有已知显示器中的每一个或所有已知显示器中的某些大的子集的一个或多个驱动等。可以将驱动集合预加载入和建立于单体或单一版本中的内核中。
所描述的方面的HLOS可以是任何类型的操作系统。ANDROID操作系统及其相关联的LINUX属性仅是用于说明目的的一个例子。本说明书并不受限于ANDROID或LINUX的实施方式。
方法600被示出和描述为一系列的动作,应当理解并意识到方法并不受限于动作的顺序,因为一些动作可以根据一个或多个方面以与本文示出和描述的顺序不同的顺序发生和/或与其它动作同时发生。例如,应当意识到,方法可以替代地被表示为一系列相互关联的状态或事件,例如以状态图的形式。此外,并非所有示出的动作都需要用来实现根据一个或多个方面的方法。
图7是对用于使用动态方案来加载用户设备的外围设备驱动的示例性方法700的说明。在一个例子中,方法700可以用于为图8的UE800加载外围设备驱动。在一个例子中,可以由图8的处理器824结合图8的存储器826和收发机825来执行方法800。
在710,方法700包括确定能与用户设备相关联的外设。例如,所确定的外设中的每一个可以是位于SPOC上、UE的板上或板外的,诸如,举例来说,图8的外设811、812、813、814、815、821、822、823、831和832。
在720,方法700包括:加载所确定的外设的驱动,使得所加载的驱动与HLOS架构相关联,而不考虑在其上提供了HLOS的UE的类型。在一个例子中,可以将所确定的外设的驱动加载入LINUX内核中(例如图4的LINUX内核450或图5的LINUX内核550)。在720,方法700可选地包括721、722、723和724,如下文所描述的。
在721,方法700包括加载用于多个外设类别中的每一个外设类别下的外设的驱动的占位容器。在一个例子中,可以将可加载的内核模块(LKM)加载为用于多个外设类别中的每一个外设类别下的外设的驱动的占位容器。例如,可以将LKM加载为用于调制解调器、显示器、照相机、麦克风和可能与UE相关联的其它外设的驱动的占位容器。在一个方面,LKM可以仅包括与目标HLOS相关联的那些驱动,所述目标HLOS可以由电话制造商在晚些时候在智能电话上提供。
在722,方法700包括确定与UE相关联的外设。例如,UE可以确定(如上文例如针对图1、2和3所描述的)多个外设类别中的每一个外设类别下当前与UE相关联的特定外设。例如,UE可以确定由显示器公司A制造的显示器与UE相关联。
在723,方法700包括识别与所确定的外设相关联的驱动。在当前的例子中,可以识别出与显示器公司A的显示器相关联的驱动。
在724,方法700包括动态地加载所识别的驱动。在当前的例子中,可以将显示器公司A的显示器驱动动态地加载入LINUX内核内的占位容器LKM,例如图4的LINUX内核450或图5的550。此外,在另一个例子中,对于被确定为与UE相关联的特定外设来说,可以基于存储在例如外设配置文件表(诸如图3的外设配置文件表300)中的外设配置文件来加载与所确定的外设相关联的驱动。在一个例子中,动态方案可以允许对LINUX内核和设备驱动版本分别地发行和支持。
所描述的方面的HLOS可以是任何类型的操作系统。ANDROID操作系统及其相关联的LINUX属性仅是用于说明目的的一个例子。本说明书并不受限于ANDROID或LINUX的实施方式。
方法700被示出和描述为一系列的动作,应当理解并意识到方法并不受限于动作的顺序,因为一些动作可以根据一个或多个方面以与本文示出和描述的顺序不同的顺序发生和/或与其它动作同时发生。例如,应当意识到,方法可以替代地被表示为一系列相互关联的状态或事件,例如以状态图的形式。此外,并非所有示出的动作都需要用来实现根据一个或多个方面的方法。
图8是对示例性用户设备(UE)800的说明。UE800可以包括片上智能电话(SPOC)820,SPOC820可以包括SPOC上的外设,诸如,举例来说,蓝牙低能量(BLE)模块821、WiFi模块822和调制解调器823。
SPOC820还可以包括处理器824、收发机825和存储器826。处理器824可以被配置为执行与本文所描述的组件和功能中的一个或多个相关联的处理功能。处理器824可以包括单个的或多组的处理器或多核处理器。此外,处理器824可以实现为集成式处理系统和/或分布式处理系统。具体来说,处理器824可以被配置为执行上文所讨论的并且在图1-3、6和7中所示出的方法的方面。
在一个例子中,处理器824可以被配置为确定特定外设的配置文件是否在UE820处可得到,如在图2的210处所示出的。处理器824还可以被配置为确定特定外设的配置文件是否在外部位置处可得到,如在图2的220处所示出的。如上文所描述的,配置文件可以在外部位置(诸如,举例来说,与外设相关联的制造商或OEM所创建的和/或管理的数据库、网站或其它存储介质)处可得到。如果配置文件在外部位置处可得到,则处理器824可以被配置为与收发机825通信并且请求收发机825联系外部位置840。
收发机825可以被配置为建立和保持与使用如本文所描述的硬件、软件和服务的一个或多个实体的通信。收发机825可以承载UE800与外部设备之间的通信,例如分布遍及通信网络的设备和/或串行地或本地地连接到UE800的设备。例如,收发机825可以包括可操作用于与外部设备对接的发射链路组件和接收链路组件。
具体来说,收发机825可以与外部位置840通信,以在存储于外部位置840处的多个配置文件841的一个中确定特定外设的配置文件是否在外部位置840处可得到。如果是的话,则收发机825可以从外部位置840获取配置文件。收发机825可以将所获取的配置文件提供给处理器824。处理器824可以被配置为基于所获取的配置文件来存取存储器826(其可以存储单独的配置文件827和外设配置文件表(例如图3的外设配置文件表300))以在外设配置文件表中更新特定外设的配置文件。
如上文所讨论的,存储器826可以被配置为存储本文所使用的数据和/或由处理器824执行的应用的本地版本。例如,存储器826可以被配置为将外设配置文件存储在例如外设配置文件表(诸如图3的外设配置文件表300)中。此外,在一个例子中,存储器826可以包括由计算机可使用的任何类型的存储器,例如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器及其任意组合。在一个例子中,存储器826可以是闪存。存储器826还可以包括数据存储器(未示出),所述数据存储器可以是硬件和/或软件的任意适当组合,所述硬件和/或软件提供了对结合本文所描述的方面采用的信息、数据库和程序的海量存储。例如,数据存储器可以是数据仓库,以用于当前未由处理器824执行的应用。
处理器824、收发机825和存储器826可以被配置为互相通信。
UE800还可以包括板上的外设,例如屏幕811、触摸模块812、照相机813、麦克风814和扬声器815。图8还示出了板外的外设,例如卡式扫描仪831和打印机832,其可以通过有线或无线接口连接到UE800。
如本申请中所使用的,术语“组件”、“模块”、“系统”等旨在包括计算机相关的实体,诸如但不限于硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是(但不限于)在处理器上运行的过程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过说明的方式,在计算设备上运行的应用与计算设备两者可以是一组件。一个或多个组件可以驻留在过程和/或执行线程内,并且组件可位于一个计算机上和/或分布在两个或多个计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质执行。组件可以借助本地和/或远程过程,例如根据具有一个或多个数据分组的信号(例如,来自与本地系统、分布式系统中的另一组件和/或借助所述信号越过诸如因特网的网络与其它系统进行交互的一个组件的数据)来通信。
此外,本文结合终端(其可以是有线终端或无线终端)描述了各个方面。终端也可以被称为系统、设备、用户单元、用户站、移动站、移动台、移动设备、远程站、远程终端、接入终端、用户终端、终端、通信设备、用户代理、用户设备或用户装置(UE)。无线终端可以是蜂窝电话、卫星电话、无绳电话、会话发起协议(SIP)电话、无线本地环路(WLL)站、个人数字助理(PDA)、具有无线连接能力的手持设备、计算设备或连接到无线调制解调器的其它处理设备。此外,本文结合基站描述了各个方面。基站可以用于与无线终端进行通信,并且其还可以被称为接入点、节点B或某种其它术语。
此外,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另外说明或者从上下文中明确得知,否则短语“X使用A或B”旨在表示正常的包括性的排列中的任何一种。也就是说,以下实例中的任一种都满足短语“X使用A或B”:X使用A;X使用B;或者X使用A和B两者。此外,如本申请和所附权利要求书中所使用的冠词“一”和“一个”通常应当被解释为表示“一个或多个”,除非另外说明或者从上下文中明确得知其是针对单数形式。
本文所描述的技术可以用于各种无线通信系统,例如CDMA、TDMA、FDMA、OFDMA、SC-FDMA及其它系统。术语“系统”和“网络”经常互换地使用。CDMA系统可以实现诸如通用陆地无线接入(UTRA)、cdma2000等等之类的无线技术。UTRA包括宽带CDMA(W-CDMA)和CDMA的其它变形。此外,cdma2000覆盖IS-2000、IS-95和IS-856标准。TDMA系统可以实现诸如全球移动通信系统(GSM)之类的无线技术。OFDMA系统可以实现诸如演进型UTRA(E-UTRA)、超移动宽带(UMB)、IEEE802.11(Wi-Fi)、IEEE802.16(WiMAX)、IEEE802.20、闪速OFDM等等之类的无线技术。UTRA和E-UTRA是通用移动电信系统(UMTS)的一部分。3GPP长期演进(LTE)是UMTS的使用E-UTRA的版本,其在下行链路上采用OFDMA,而在上行链路上采用SC-FDMA。在来自名称为“第三代合作伙伴计划”(3GPP)的组织的文档中描述了UTRA、E-UTRA、UMTS、LTE和GSM。另外,在来自名称为“第三代合作伙伴计划2”(3GPP2)的组织的文档中描述了cdma2000和UMB。此外,这些无线通信系统可以附加地包括对等的(例如,移动台到移动台)自组织网络系统,其通常使用不成对的免许可的频谱、802.xx无线LAN、蓝牙和任何其它短距离或长距离无线通信技术。
将依照可以包括多个设备、组件、模块等等的系统来呈现各个方面或特征。应当理解和意识到,各个系统可以包括附加的设备、组件、模块等和/或可以不包括结合附图讨论的所有设备、组件、模块等。还可以使用这些方案的组合。
结合本文公开的方面所描述的各种说明性的逻辑、逻辑框、模块以及电路可以用被设计成执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件、或者其任意组合来实现或执行。通用处理器可以是微处理器,但可替代地,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核,或者任何其它此种配置。此外,至少一个处理器可以包括可操作用于执行上文描述的一个或多个步骤和/或动作的一个或多个模块。
此外,结合本文公开的方面所描述的方法或者算法的步骤和/或动作可以直接体现为硬件、由处理器执行的软件模块或两者的组合。软件模块可以驻留于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或者本领域已知的任何其它形式的存储介质中。可以将示例性存储介质耦接到处理器,使得处理器可以从存储介质读取信息,以及向存储介质写入信息。或者,存储介质可以集成到处理器。此外,在一些方面,处理器和存储介质可以位于ASIC中。另外,ASIC可以位于用户终端中。可替代地,处理器和存储介质可以作为分立组件位于用户终端中。另外,在一些方面,方法或者算法的步骤和/或动作可以作为一个代码和指令或代码和指令的任意组合或代码和指令集合驻留在机器可读介质和/或计算机可读介质上,该机器可读介质和计算机可读介质可以并入计算机程序产品。
在一个或多个方面,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或在其上传输。计算机可读介质包括计算机存储介质和通信介质两者,所述通信介质包括促进计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机存取的任何可用的介质。通过举例而非限制性的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构的形式携带或存储期望的程序代码以及可以由计算机来存取的任何其它的介质。此外,任何连接被称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源发送软件,则同轴电缆、光纤光缆、双绞线、DSL或无线技术(诸如红外线、无线电和微波)包括在介质的定义中。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的范围内。
虽然以上公开内容讨论了说明性的方面和/或实施例,但应当注意,在不脱离由所附权利要求书定义的所描述的方面和/或实施例的范围的情况下,可以对本文做出各种改变和修改。此外,虽然用单数形式描述或主张了所描述的方面和/或实施例的元素,但除非明确说明限于单数,否则复数形式是可以预期的。此外,除非另外说明,否则任何方面和/或实施例的全部或一部分可以与任何其它方面和/或实施例的全部或一部分一起使用。
Claims (32)
1.一种用于启动用户设备的方法,包括:
执行所述用户设备的设备启动;
配置所述用户设备的外设和相关联的驱动;以及
启动高级操作系统(HLOS),其中,所述配置发生在所述HLOS的启动之前。
2.根据权利要求1所述的方法,还包括:预读所述用户设备的相关联的驱动,其中,所述预读发生在所述HLOS的启动之前。
3.根据权利要求1所述的方法,其中,配置所述用户设备的外设和相关联的驱动包括:激活所述相关联的驱动,其中,所述激活发生在所述HLOS的启动之前。
4.根据权利要求1所述的方法,还包括:
识别与所配置的外设相关联的临时驱动;以及
加载所述临时驱动以由HLOS前的操作环境使用,其中,所述加载允许所述用户设备在所述HLOS的启动之前使用所述外设。
5.根据权利要求1所述的方法,其中,配置外设和相关联的驱动包括自动地配置外设和相关联的驱动。
6.根据权利要求1所述的方法,其中,配置外设和相关联的驱动包括手动地配置外设和相关联的驱动。
7.根据权利要求1所述的方法,其中,所述配置还包括:
确定与所述用户设备相关联的外设;
在外设配置文件表中更新每个所确定的外设的配置文件;以及
准备与每个外设配置文件相关联的驱动以由所述HLOS使用。
8.根据权利要求7所述的方法,其中,确定与所述用户设备相关联的外设还包括:
确定每个外设的配置文件是否在所述用户设备处可得到;
检测每个外设的配置文件是否完整;以及
对每个外设的配置文件进行错误检查。
9.根据权利要求8所述的方法,其中,确定每个外设的配置文件是否在所述用户设备处可得到进一步包括:
确定特定外设的配置文件在所述用户设备处不可得到;
确定所述特定外设的配置文件在所述用户设备的外部位置处可得到,其中,所述外部位置由与所述特定外设相关联的制造商管理;
从所述外部位置获取所述特定外设的配置文件;以及
其中,更新所述特定外设的配置文件包括基于所获取的配置文件来进行更新。
10.根据权利要求8所述的方法,其中,确定每个外设的配置文件是否在所述用户设备处可得到进一步包括:
确定特定外设的配置文件在所述用户设备处不可得到;
确定所述特定外设的配置文件在所述用户设备的外部位置处不可得到,其中,所述外部位置由与所述特定外设相关联的制造商管理;以及
其中,更新所述特定外设的配置文件包括将针对所述特定外设的错误消息存储在所述外设配置文件表中。
11.一种用于启动用户设备的装置,包括:
用于执行所述用户设备的设备启动的单元;
用于配置所述用户设备的外设和相关联的驱动的单元;以及
用于启动高级操作系统(HLOS)的单元,其中,所述配置发生在所述HLOS的启动之前。
12.一种用于启动用户设备的计算机程序产品,包括:
计算机可读介质,所述计算机可读介质包括:
代码,其用于使计算机进行以下操作:
执行所述用户设备的设备启动;
配置所述用户设备的外设和相关联的驱动;以及
启动高级操作系统(HLOS),其中,所述配置发生在所述HLOS的启动之前。
13.一种用于启动用户设备的装置,包括:
存储器;
收发机;以及
处理器,其被配置为:
执行所述用户设备的设备启动;
配置所述用户设备的外设和相关联的驱动;以及
启动高级操作系统(HLOS),其中,所述配置发生在所述HLOS的启动之前。
14.根据权利要求13所述的装置,所述处理器还被配置为在所述HLOS的启动之前预读所述用户设备的相关联的驱动。
15.根据权利要求13所述的装置,其中,被配置为配置所述用户设备的外设和相关联的驱动的所述处理器包括:被配置为在所述HLOS的启动之前激活所述相关联的驱动的所述处理器。
16.根据权利要求13所述的装置,所述处理器还被配置为:
识别与所配置的外设相关联的临时驱动;以及
加载所述临时驱动以由HLOS前的操作环境使用,其中,所述加载允许所述用户设备在所述HLOS的启动之前使用所述外设。
17.根据权利要求13所述的装置,其中,被配置为配置外设和相关联的驱动的所述处理器包括:被配置为自动地配置外设和相关联的驱动的所述处理器。
18.根据权利要求13所述的装置,其中,被配置为配置外设和相关联的驱动的所述处理器包括:被配置为手动地配置外设和相关联的驱动的所述处理器。
19.根据权利要求13所述的装置,其中,被配置为配置外设和相关联的驱动的所述处理器还包括被配置为进行以下操作的所述处理器:
确定与所述用户设备相关联的外设;
在外设配置文件表中更新每个所确定的外设的配置文件;以及
准备与每个外设配置文件相关联的驱动以由所述HLOS使用。
20.根据权利要求19所述的装置,其中,被配置为确定与所述用户设备相关联的外设的所述处理器还包括被配置为进行以下操作的所述处理器:
确定每个外设的配置文件是否在所述用户设备处可得到;
检测每个外设的配置文件是否完整;以及
对每个外设的配置文件进行错误检查。
21.根据权利要求20所述的装置,其中,被配置为确定每个外设的配置文件是否在所述用户设备处可得到的所述处理器还包括被配置为进行以下操作的所述处理器:
确定特定外设的配置文件在所述用户设备处不可得到,以及
确定所述特定外设的配置文件在所述用户设备的外部位置处可得到,其中,所述外部位置由与所述特定外设相关联的制造商管理;以及
所述收发机被配置为从所述外部位置获取所述特定外设的配置文件,其中,更新所述特定外设的配置文件包括基于所获取的配置文件来更新所述特定外设的配置文件。
22.根据权利要求20所述的装置,其中,被配置为确定每个外设的配置文件是否在所述用户设备处可得到的所述处理器还包括被配置为进行以下操作的所述处理器:
确定特定外设的配置文件在所述用户设备处不可得到;以及
确定所述特定外设的配置文件在所述用户设备的外部位置处不可得到,其中,所述外部位置由与所述特定外设相关联的制造商管理,其中,更新所述特定外设的配置文件包括将针对所述特定外设的错误消息存储在所述外设配置文件表中。
23.一种用于加载用户设备的外围设备驱动的方法,包括:
确定能与用户设备相关联的外设;以及
加载所确定的外设的驱动,其中,所加载的驱动与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
24.根据权利要求23所述的方法,其中,加载驱动包括加载多个外设类别中的每一个外设类别下的已知外设集合的驱动集合。
25.根据权利要求24所述的方法,其中,在单体版本中加载所述驱动集合。
26.根据权利要求23所述的方法,其中,加载驱动包括:
加载用于多个外设类别中的每一个外设类别下的外设的驱动的占位容器;
确定与所述用户设备相关联的外设;
识别与所确定的外设相关联的驱动;以及
将所识别的驱动动态地加载入所述占位容器。
27.一种用于加载用户设备的外围设备驱动的装置,包括:
用于确定能与用户设备相关联的外设的单元;以及
用于加载所确定的外设的驱动的单元,其中,所加载的驱动与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
28.一种用于加载用户设备的外围设备驱动的计算机程序产品,包括:
计算机可读介质,其包括:
代码,所述代码使计算机进行以下操作:
确定能与用户设备相关联的外设;以及
加载所确定的外设的驱动,其中,所加载的驱动与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
29.一种用于加载用户设备的外围设备驱动的装置,包括:
存储器;
收发机;以及
处理器,其被配置为:
确定能与用户设备相关联的外设;以及
加载所确定的外设的驱动,其中,所加载的驱动与高级操作系统(HLOS)的架构相关联,而不考虑在其上提供了所述HLOS的用户设备的类型。
30.根据权利要求29所述的装置,其中,被配置为加载驱动的所述处理器包括:被配置为加载多个外设类别中的每一个外设类别下的已知外设集合的驱动集合的所述处理器。
31.根据权利要求30所述的装置,其中,在单体版本中加载所述驱动集合。
32.根据权利要求29所述的装置,其中,被配置为加载驱动的所述处理器包括被配置为进行以下操作的所述处理器:
加载用于多个外设类别中的每一个外设类别下的外设的驱动的占位容器;
确定与所述用户设备相关联的外设;
识别与所确定的外设相关联的驱动;以及
将所识别的驱动动态地加载入所述占位容器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/780,353 US9250922B2 (en) | 2013-02-28 | 2013-02-28 | Method and apparatus for prefetching peripheral device drivers for smart phones and other connected devices prior to HLOS boot |
US13/780,353 | 2013-02-28 | ||
PCT/US2014/016530 WO2014133795A1 (en) | 2013-02-28 | 2014-02-14 | Method and apparatus for prefetching device drivers for peripheral devices connected to a smartphone prior to high-level operating system (hlos) boot |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105144090A true CN105144090A (zh) | 2015-12-09 |
Family
ID=50272704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480010547.8A Pending CN105144090A (zh) | 2013-02-28 | 2014-02-14 | 用于在高级操作系统(hlos)启动之前预读连接到智能电话的外围设备的设备驱动的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9250922B2 (zh) |
EP (1) | EP2962189A1 (zh) |
JP (1) | JP5996812B2 (zh) |
KR (1) | KR101632288B1 (zh) |
CN (1) | CN105144090A (zh) |
TW (1) | TWI521433B (zh) |
WO (1) | WO2014133795A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790739A (zh) * | 2016-11-22 | 2017-05-31 | 合智能科技(深圳)有限公司 | 一种dns服务的预加载启动方法、预加载系统及管理系统 |
CN109426625A (zh) * | 2017-08-30 | 2019-03-05 | 深圳市道通科技股份有限公司 | 一种多驱动兼容的控制装置和实现方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459735B2 (en) * | 2015-11-04 | 2019-10-29 | Texas Instruments Incorporated | Scalable boot options for a processor/controller |
US20240095002A1 (en) | 2022-09-21 | 2024-03-21 | Ncr Corporation | Updated driver installation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050149713A1 (en) * | 2003-12-29 | 2005-07-07 | Rothman Michael A. | Pushing capabilities into firmware by an operating system |
EP1736871A2 (en) * | 2005-06-03 | 2006-12-27 | QNX Software Systems GmbH & Co. KG | System for executing code during operating system initialization |
US20080005551A1 (en) * | 2006-06-30 | 2008-01-03 | Intel Corporation | Management of option rom |
CN101699415A (zh) * | 2009-10-29 | 2010-04-28 | 威盛电子股份有限公司 | 核心逻辑电路、计算机系统及外围设备初始化方法 |
US20110078428A1 (en) * | 2009-09-30 | 2011-03-31 | Memory Experts International Inc. | Portable desktop device and method of host computer system hardware recognition and configuration |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173417B1 (en) | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
TW515937B (en) | 2001-08-08 | 2003-01-01 | Inventec Corp | Method and system for booting personal digital assistant (PDA) system directly by hardware elements on portable personal computer (PC) |
US7849301B2 (en) | 2001-12-12 | 2010-12-07 | Intel Corporation | Providing a user input interface prior to initiation of an operating system |
US7103914B2 (en) | 2002-06-17 | 2006-09-05 | Bae Systems Information Technology Llc | Trusted computer system |
TW588284B (en) | 2002-11-12 | 2004-05-21 | Mitac Technology Corp | Computer real-time power-on system and method |
CN1910661A (zh) * | 2004-04-15 | 2007-02-07 | 松下电器产业株式会社 | 信息处理装置 |
US7698552B2 (en) | 2004-06-03 | 2010-04-13 | Intel Corporation | Launching a secure kernel in a multiprocessor system |
JP4826077B2 (ja) | 2004-08-31 | 2011-11-30 | 株式会社日立製作所 | ブートディスク管理方法 |
US7600105B2 (en) | 2004-09-22 | 2009-10-06 | Cyberlink Corp. | Systems, methods, and apparatus for providing efficient startup to computers with peripheral devices |
US7966485B2 (en) * | 2004-12-01 | 2011-06-21 | Igt | Universal operating system to hardware platform interface for gaming machines |
US7409537B2 (en) | 2005-10-06 | 2008-08-05 | Microsoft Corporation | Fast booting an operating system from an off state |
US20080209198A1 (en) | 2007-02-26 | 2008-08-28 | Majni Timothy W | Boot Acceleration For Computer Systems |
FR2938946B1 (fr) | 2008-11-26 | 2012-08-10 | Valeo Equip Electr Moteur | Procede de configuration d'un systeme comportant une machine electrique tournante dans un vehicule automobile |
TW201118733A (en) | 2009-11-30 | 2011-06-01 | Inventec Corp | An automatically executing method for operation system kernel |
CN102023882A (zh) | 2010-12-22 | 2011-04-20 | 福建天晴在线互动科技有限公司 | 计算机自动识别手机并安装手机驱动程序的系统及方法 |
US20120278796A1 (en) | 2011-04-26 | 2012-11-01 | Microsoft Corporation | Automatically installing device drivers |
US20120302346A1 (en) * | 2011-05-27 | 2012-11-29 | Ami Entertainment Network, Inc. | Method of selecting a device profile for provisioning an amusement device |
US20130138938A1 (en) * | 2011-11-28 | 2013-05-30 | Lg Electronics Inc. | Method, recording medium, and electronic device for reducing boot time |
CN102446120A (zh) | 2011-12-23 | 2012-05-09 | 广东步步高电子工业有限公司 | 一种不同手机显示屏驱动程序自动切换的方法以及对应的显示系统 |
-
2013
- 2013-02-28 US US13/780,353 patent/US9250922B2/en not_active Expired - Fee Related
-
2014
- 2014-02-14 EP EP14709788.5A patent/EP2962189A1/en not_active Withdrawn
- 2014-02-14 CN CN201480010547.8A patent/CN105144090A/zh active Pending
- 2014-02-14 WO PCT/US2014/016530 patent/WO2014133795A1/en active Application Filing
- 2014-02-14 KR KR1020157026502A patent/KR101632288B1/ko active IP Right Grant
- 2014-02-14 JP JP2015560206A patent/JP5996812B2/ja not_active Expired - Fee Related
- 2014-02-25 TW TW103106331A patent/TWI521433B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050149713A1 (en) * | 2003-12-29 | 2005-07-07 | Rothman Michael A. | Pushing capabilities into firmware by an operating system |
EP1736871A2 (en) * | 2005-06-03 | 2006-12-27 | QNX Software Systems GmbH & Co. KG | System for executing code during operating system initialization |
US20080005551A1 (en) * | 2006-06-30 | 2008-01-03 | Intel Corporation | Management of option rom |
US20110078428A1 (en) * | 2009-09-30 | 2011-03-31 | Memory Experts International Inc. | Portable desktop device and method of host computer system hardware recognition and configuration |
CN101699415A (zh) * | 2009-10-29 | 2010-04-28 | 威盛电子股份有限公司 | 核心逻辑电路、计算机系统及外围设备初始化方法 |
Non-Patent Citations (2)
Title |
---|
丁善镜: "《计算机操作系统原理分析》", 31 May 2012, 北京:清华大学出版社 * |
张思民: "《嵌入式系统设计与应用》", 31 July 2008, 北京:清华大学出版社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790739A (zh) * | 2016-11-22 | 2017-05-31 | 合智能科技(深圳)有限公司 | 一种dns服务的预加载启动方法、预加载系统及管理系统 |
CN109426625A (zh) * | 2017-08-30 | 2019-03-05 | 深圳市道通科技股份有限公司 | 一种多驱动兼容的控制装置和实现方法 |
WO2019042323A1 (zh) * | 2017-08-30 | 2019-03-07 | 深圳市道通科技股份有限公司 | 多驱动兼容的控制装置和实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140244990A1 (en) | 2014-08-28 |
WO2014133795A1 (en) | 2014-09-04 |
KR20150123879A (ko) | 2015-11-04 |
JP2016508653A (ja) | 2016-03-22 |
TW201447756A (zh) | 2014-12-16 |
US9250922B2 (en) | 2016-02-02 |
TWI521433B (zh) | 2016-02-11 |
EP2962189A1 (en) | 2016-01-06 |
JP5996812B2 (ja) | 2016-09-21 |
KR101632288B1 (ko) | 2016-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256496B2 (en) | Apparatus and method for managing application | |
CN106293507B (zh) | 具有外部存储器的电子设备及操作电子设备的方法 | |
US9161209B1 (en) | Multi-step mobile device initiation with intermediate partial reset | |
US20150026330A1 (en) | Generating unique identifiers for mobile devices | |
EP2076834A1 (en) | Program upgrade system and method for ota-capable mobile terminal | |
US20100268867A1 (en) | Method and apparatus for updating firmware as a background task | |
US11310654B1 (en) | Electronic subscriber identity module (eSIM) profile delivery and activation system and methods | |
US20140310332A1 (en) | Method for accessing plural cloud storages, electronic apparatus and non-transitory computer readable medium | |
CN103809996A (zh) | 对移动计算设备传播经更新驱动程序的方法和其传播系统 | |
CN104113576A (zh) | 一种客户端的更新方法及装置 | |
CN111316230B (zh) | 一种补丁包生成方法及设备 | |
CN110909373A (zh) | 一种访问控制方法、设备、系统及存储介质 | |
CN105144090A (zh) | 用于在高级操作系统(hlos)启动之前预读连接到智能电话的外围设备的设备驱动的方法和装置 | |
CN103716346A (zh) | 一种安卓手机客户端上应用的管理方法和装置 | |
EP3273706A1 (en) | Method and system for configuring a mobile device | |
US20170177395A1 (en) | Embedded architecture based on process virtual machine | |
US10078532B2 (en) | Resource management method and device for terminal system among multiple operating systems | |
CN108132832B (zh) | 应用程序启动方法和装置 | |
WO2019041891A1 (zh) | 升级包的生成方法及装置 | |
US11604656B2 (en) | Method and apparatus for managing application | |
CN112416466A (zh) | 一种应用程序加载方法、移动终端及可读存储介质 | |
CN110968333B (zh) | 配置信息替换方法和装置、机器可读存储介质及处理器 | |
CN110321241A (zh) | 一种应用程序的重启方法及终端设备 | |
KR20190098516A (ko) | 어플리케이션과 관련된 데이터를 관리하기 위한 방법 및 그 전자 장치 | |
CN114296764A (zh) | 系统升级方法、装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151209 |