TWI521433B - 用於在hlos啓動之前預讀智慧型電話和其他連接設備的周邊設備驅動的方法和裝置 - Google Patents

用於在hlos啓動之前預讀智慧型電話和其他連接設備的周邊設備驅動的方法和裝置 Download PDF

Info

Publication number
TWI521433B
TWI521433B TW103106331A TW103106331A TWI521433B TW I521433 B TWI521433 B TW I521433B TW 103106331 A TW103106331 A TW 103106331A TW 103106331 A TW103106331 A TW 103106331A TW I521433 B TWI521433 B TW I521433B
Authority
TW
Taiwan
Prior art keywords
peripheral
peripherals
profile
user device
hlos
Prior art date
Application number
TW103106331A
Other languages
English (en)
Other versions
TW201447756A (zh
Inventor
巴爾特麥可G
Original Assignee
高通公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 高通公司 filed Critical 高通公司
Publication of TW201447756A publication Critical patent/TW201447756A/zh
Application granted granted Critical
Publication of TWI521433B publication Critical patent/TWI521433B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot 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)

Description

用於在HLOS啟動之前預讀智慧型電話和其他連接設備的周邊設備驅動的方法和裝置
以下說明一般係關於周邊設備驅動,更具體地說,係關於在高級作業系統(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的使用者設備的類型。
為能達成前述及相關目的,這一或多個態樣包括在下文中充分描述並在申請專利範圍中特別指出的特徵。以下說明和附圖詳細闡述了這一或多個態樣的某些說明性的特徵。但是,這些特徵僅僅是指示了可採用各個態樣的原理的各 種方式中的若干種,並且該說明旨在包括所有此類態樣及其等效項。
100‧‧‧方法
110‧‧‧方塊
120‧‧‧方塊
122‧‧‧方塊
124‧‧‧方塊
126‧‧‧方塊
130‧‧‧方塊
210‧‧‧方塊
220‧‧‧方塊
230‧‧‧方塊
240‧‧‧方塊
250‧‧‧方塊
252‧‧‧線
254‧‧‧線
260‧‧‧方塊
270‧‧‧方塊
280‧‧‧方塊
310‧‧‧區域
312‧‧‧外設類型
314‧‧‧外設編號
316‧‧‧周邊設備驅動辨識符
318‧‧‧外設辨識符
320‧‧‧條目
321‧‧‧數據機
322‧‧‧數據機
323‧‧‧外設編號1
324‧‧‧驅動ID A
325‧‧‧外設ID A
330‧‧‧條目
331‧‧‧螢幕
332‧‧‧螢幕
333‧‧‧外設編號1
334‧‧‧驅動ID
335‧‧‧外設ID D
400‧‧‧架構
410‧‧‧應用層
420‧‧‧應用框架層
430‧‧‧程式庫層
440‧‧‧HLOS執行時間層
450‧‧‧核心層
510‧‧‧單體LINUX核心層
511‧‧‧驅動1
512‧‧‧驅動2
550‧‧‧動態LINUX核心層
551‧‧‧驅動1
600‧‧‧方法
610‧‧‧方塊
620‧‧‧方塊
621‧‧‧方塊
700‧‧‧方法
710‧‧‧方塊
720‧‧‧方塊
721‧‧‧方塊
722‧‧‧方塊
723‧‧‧方塊
724‧‧‧方塊
800‧‧‧使用者設備(UE)
811‧‧‧螢幕
812‧‧‧觸摸模組
813‧‧‧照相機
814‧‧‧麥克風
815‧‧‧揚聲器
820‧‧‧片上智慧型電話(SPOC)
821‧‧‧藍芽低能量(BLE)模組
822‧‧‧WiFi模組
823‧‧‧數據機
824‧‧‧括處理器
825‧‧‧收發機
826‧‧‧記憶體
831‧‧‧卡式掃瞄器
832‧‧‧印表機
840‧‧‧外部位置
以下結合附圖對揭示的態樣進行描述,附圖用來說明而非限制揭示的態樣,其中相同的元件符號表示相同的元素,並且其中:圖1是對用於啟動使用者設備的示例性方法的說明;圖2是對用於決定與使用者設備相關聯的外設以及在外設設定檔表中更新每個所決定的外設的設定檔的示例性方法的說明;圖3是對示例性外設設定檔表的說明;圖4是對示例性高級作業系統的架構的說明;圖5是對在Linux核心層內的示例性顯示裝置驅動的說明;圖6是對使用單體方案來載入使用者設備的周邊設備驅動的示例性方法的說明;圖7是對用於使用動態方案來載入使用者設備的周邊設備驅動的示例性方法的說明;及圖8是對示例性使用者設備的說明。
現在參照附圖對各個態樣進行描述。在以下的說明中,出於解釋的目的,提供了諸多具體細節,以便提供對一或多個態樣的透徹理解。但是,顯而易見的是,可以不用這些具體細節來實施這些態樣。
所描述的態樣涉及用於啟動使用者設備或終端(例如智慧型電話)的方法和裝置。具體來說,所描述的態樣可以允許使用者設備(UE)在啟動UE的高級作業系統(HLOS)之前配置與UE相關聯的外設。配置外設可以包括:自動地或手動地預載入或預讀與針對關聯於UE的每個外設的驅動相關的資訊,以及經由儲存驅動資訊(例如在快閃記憶體中)來使得其對於HLOS是可得到的。在啟動HLOS之前配置外設以及預載入與關聯於外設的驅動有關的資訊可以允許HLOS被簡化並且較快地啟動。將對外設的配置和對驅動資訊的預讀與HLOS分開亦可以允許在任意數量的網路上在使用相同HLOS的各種各樣的UE上對HLOS的集中管理和更新。這些態樣亦可以提供簡化的初始軟體配置程序。
圖1是對用於啟動使用者設備(諸如,舉例來說,圖8的UE 800)的示例性方法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的UE 800)的記憶體(例如圖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的UE 800)相關聯的外設可以包括如圖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、具有外設編號1 323、驅動ID A 324和外設ID A 325。不完整的設定檔可能沒有包括與外設有關的所有相關資訊。例如,不完整的設定檔可以由一表條目來表示,對於該表條目來說缺失了外設設定檔表300中的一或多個欄位中的資訊。例如,圖3的條目330包括螢幕的設定檔。條目330指出了外設類型是螢幕331、螢幕是在UE的板 上332(例如整合到UE中但並不在SPOC上)、具有外設編號1 333和外設ID D 335。然而,條目330缺失了與螢幕的驅動ID 334相關的資訊。因此,條目330是不完整的,以及因此UE可以決定螢幕的設定檔在UE處不可得到。
在一個態樣,UE可以被配置為在HLOS的啟動之前載入與所決定的外設相關聯的臨時驅動。在一個例子中,可以由HLOS前的作業環境來載入和使用臨時驅動。在另一個例子中,臨時驅動可以允許UE(當執行HLOS前的作業環境時)在HLOS的啟動之前使用所決定的外設。在這種情況下,對於外設設定檔表300之每一者設定檔(或條目)來說可以包括額外的欄位(未圖示),該額外的欄位指示了臨時驅動對於設定檔是否是可得到的、臨時驅動是否在UE處或其他的地方可得到、臨時驅動是否應當由UE在HLOS啟動之前進行載入,及/或與臨時驅動相關的任何其他的資訊。
圖4是對示例性高級作業系統的架構400的說明。在一個例子中,HLOS可以是但不限於Android作業系統,儘管應當理解HLOS可以是任何類型的作業系統。HLOS可以正執行在UE(例如圖8的UE 800)上,其中處理器(例如圖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資訊或軟體(例如漏洞修復、安全補丁和作業系統更新)的協同部署(coordinated rollouts)時有困難。
為了幫助緩解上文所描述的一些問題以及提供對HLOS更新的協同部署,可以提供單一版本的LINUX核心以供遍及服務供應商網路和手機製造商的大量的智慧型電話使用。因此,可以協調由服務供應商網路或其他感興趣的實體對HLOS的控制。可以使用單體方案及/或動態方案來提供單一版本的LINUX核心。所描述的態樣的HLOS可以是任何類型的作業系統。ANDROID作業系統及其相關聯的LINUX屬性僅是用於說明目的的一個例子。本說明書並不受限於ANDROID或LINUX的實施方式。
圖5是對在Linux核心層內的示例性顯示裝置驅動的說明。更具體地說,圖5是對在單體LINUX核心層510內的示例性顯示裝置驅動和在動態LINUX核心層550內的示例性顯示驅動的說明。LINUX核心層510和550可以是例如圖4的 LINUX核心層450。
參考510,提供了單體核心,其可以包括與一或多個已知的顯示外設相關聯的一或多個驅動,諸如,舉例來說,驅動1 511、驅動2 512一直到第N個驅動513,其中N是正整數。例如,可以將驅動511、512和513預加載入和建立於單體或單一版本中的核心中。
參考550,提供了動態核心,其可以包括單個驅動,諸如,舉例來說,與顯示外設相關聯的驅動1 551。可以將驅動1 551載入為佔位容器(placeholder),例如可載入的核心模組(LKM)。在一個例子中,被載入為LKM的驅動可以僅包括與目標HLOS相關聯的那些驅動,該目標HLOS可以由電話製造商在晚些時候在智慧型電話上提供。可以將LKM載入為用於複數個外設類別中的每一個外設類別下的外設的驅動的佔位容器。例如,可以將LKM載入為用於數據機、顯示器、照相機、麥克風和可能與UE相關聯的其他外設的驅動的佔位容器。由於驅動1 551可以是LKM,因此不可以將其載入為基本核心版本的部分。更確切地說,對於被決定為與UE相關聯的特定顯示外設來說,LINUX核心可以基於儲存在例如外設設定檔表300中的外設設定檔來動態地載入驅動1 551。在一個例子中,動態方案可以允許對LINUX核心和設備驅動版本分別地發行和支援。所描述的態樣的HLOS可以是任何類型的作業系統。ANDROID作業系統及其相關聯的LINUX屬性僅是用於說明目的的一個例子。本說明書並不受限於ANDROID或LINUX的實施方式。
圖6是對使用單體方案來載入使用者設備的周邊設備驅動的示例性方法600的說明。在一個例子中,方法600可以用於為圖8的UE 800載入周邊設備驅動。在一個例子中,可以由圖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的UE 800載入周邊設備驅動。在一個例子中,可以由圖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的說明。UE 800可以包括片上智慧型電話(SPOC)820,SPOC 820可以包括SPOC上的外設,諸如,舉例來說,藍芽低能量(BLE)模組821、WiFi模組822和數據機823。
SPOC 820亦可以包括處理器824、收發機825和記憶體826。處理器824可以被配置為執行與本文所描述的元件和功能中的一或多個相關聯的處理功能。處理器824可以包括單個的或多組的處理器或多核處理器。此外,處理器824可以實現為整合式處理系統及/或分散式處理系統。具體來說,處理器824可以被配置為執行上文所討論的並且在圖1-3、6和7中所示出的方法的態樣。
在一個例子中,處理器824可以被配置為決定特定外設的設定檔是否在UE 820處可得到,如在圖2的210處所示出的。處理器824亦可以被配置為決定特定外設的設定檔是否在 外部位置處可得到,如在圖2的220處所示出的。如上文所描述的,設定檔可以在外部位置(諸如,舉例來說,與外設相關聯的製造商或OEM所建立的及/或管理的資料庫、網站或其他儲存媒體)處可得到。若設定檔在外部位置處可得到,則處理器824可以被配置為與收發機825通訊並且請求收發機825聯絡外部位置840。
收發機825可以被配置為建立和保持與使用如本文所描述的硬體、軟體和服務的一或多個實體的通訊。收發機825可以承載UE 800與外部設備之間的通訊,例如分佈遍及通訊網路的設備及/或串列地或本端地連接到UE 800的設備。例如,收發機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可以被配置為互相通訊。
UE 800亦可以包括板上的外設,例如螢幕811、觸摸模組812、照相機813、麥克風814和揚聲器815。圖8亦圖示板外的外設,例如卡式掃瞄器831和印表機832,其可以經由有線或無線介面連接到UE 800。
如本案中所使用的,術語「元件」、「模組」、「系統」等旨在包括電腦相關的實體,諸如但不限於硬體、韌體、硬體和軟體的組合、軟體或執行中的軟體。例如,元件可以是(但不限於)在處理器上執行的程序、處理器、物件、可執行檔、執行執行緒、程式及/或電腦。經由說明的方式,在計算設備上執行的應用與計算設備兩者可以是一元件。 一或多個元件可以常駐在程序及/或執行執行緒內,並且元件可位於一個電腦上及/或分佈在兩個或兩個以上電腦之間。此外,這些元件可以從其上儲存有各種資料結構的各種電腦可 讀取媒體執行。元件可以借助本端及/或遠端程序,例如根據具有一或多個資料封包的信號(例如,來自與本端系統、分散式系統中的另一元件及/或借助信號越過諸如網際網路的網路與其他系統進行互動的一個元件的資料)來通訊。
此外,本文結合終端(其可以是有線終端或無線終端)描述了各個態樣。終端亦可以被稱為系統、設備、用戶單元、用戶站、行動站、行動台、行動設備、遠端站、遠端終端機、存取終端、使用者終端、終端、通訊設備、使用者代理、使用者裝置或使用者設備(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)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.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)、軟碟和藍光光碟,其中磁碟通常磁性地複製資料,而光碟則利用鐳射來光學地複製資料。上述的組合亦應當包括在電腦可讀取媒體的範疇內。
雖然以上揭示內容討論了說明性的態樣及/或實施 例,但應當注意,在不脫離由所附申請專利範圍定義的所描述的態樣及/或實施例的範圍的情況下,可以對本文做出各種改變和修改。此外,雖然用單數形式描述或主張了所描述的態樣及/或實施例的元素,但除非明確說明限於單數,否則複數形式是可以預期的。此外,除非另外說明,否則任何態樣及/或實施例的全部或一部分可以與任何其他態樣及/或實施例的全部或一部分一起使用。
100‧‧‧方法
110‧‧‧方塊
120‧‧‧方塊
122‧‧‧方塊
124‧‧‧方塊
126‧‧‧方塊
130‧‧‧方塊

Claims (28)

  1. 一種用於啟動一使用者設備的方法,包括以下步驟:執行該使用者設備的一設備啟動;決定相關聯於該使用者設備的外設的設定檔是否在該使用者設備處可得到;在決定該等外設中之一外設的一設定檔在該使用者設備處不可得到但在該使用者設備的外部的一位置處可得到後,即從該位置獲取該等外設中之該外設的該設定檔,該位置由與該等外設中之該外設相關聯的一製造商管理;藉由至少基於所獲取的該設定檔更新該等外設中之該外設的該設定檔,而配置該使用者設備的該等外設和相關聯的驅動;及啟動一高級作業系統(HLOS),其中該配置使得相關於至少一個驅動的資訊在該HLOS處可得到,該至少一個驅動係相關聯於該等外設之每一者,且該配置發生在該HLOS的該啟動之前。
  2. 根據請求項1述及之方法,亦包括以下步驟:在該HLOS的該啟動之前預讀該使用者設備的該等相關聯的驅動。
  3. 根據請求項1述及之方法,其中配置該使用者設備的該等外設和相關聯的驅動包括:在該HLOS的該啟動之前啟動該等相關聯的驅動。
  4. 根據請求項1述及之方法,亦包括以下步驟:辨識與該等所配置的外設相關聯的臨時驅動;及載入該等臨時驅動以由一HLOS前的作業環境使用,以允許該使用者設備在該HLOS的該啟動之前使用該等外設。
  5. 根據請求項1述及之方法,其中配置該等外設和相關聯的驅動包括自動地配置該等外設和相關聯的驅動。
  6. 根據請求項1述及之方法,其中配置該等外設和相關聯的驅動包括手動地配置該等外設和相關聯的驅動。
  7. 根據請求項1述及之方法,其中該配置亦包括以下步驟:決定與該使用者設備相關聯的該等外設;在一外設設定檔表中更新每個所決定的外設的一設定檔;及準備與每個外設設定檔相關聯的驅動以由該HLOS使用。
  8. 根據請求項7述及之方法,其中決定與該使用者設備相關聯的該等外設亦包括以下步驟:偵測每個外設的一設定檔是否完整;及對每個外設的該設定檔進行錯誤檢查。
  9. 根據請求項7述及之方法,其中更新該等外設中之該外設 的該設定檔包括:將針對該等外設中之該外設的一錯誤訊息儲存在該外設設定檔表中。
  10. 一種用於啟動一使用者設備的裝置,包括:執行手段,用於執行該使用者設備的一設備啟動;決定手段,用於決定相關聯於該使用者設備的外設的設定檔是否在該使用者設備處可得到;獲取手段,用於在決定該等外設中之一外設的一設定檔在該使用者設備處不可得到但在該使用者設備的外部的一位置處可得到後,即從該位置獲取該等外設中之該外設的該設定檔;配置手段,用於藉由至少基於所獲取的該設定檔更新該等外設中之該外設的該設定檔,而配置該使用者設備的該等外設和相關聯的驅動;及啟動手段,用於啟動一高級作業系統(HLOS),其中該配置使得相關於至少一個驅動的資訊在該HLOS處可得到,該至少一個驅動係相關聯於該等外設之每一者,且該配置發生在該HLOS的該啟動之前。
  11. 一種電腦可讀取媒體,該電腦可讀取媒體包括:代碼,其用於使一電腦進行以下操作:執行一使用者設備的一設備啟動;決定相關聯於該使用者設備的外設的設定檔是否在該使用者設備處可得到; 在決定該等外設中之一外設的一設定檔在該使用者設備處不可得到但在該使用者設備的外部的一位置處可得到後,即從該位置獲取該等外設中之該外設的該設定檔,該位置由與該等外設中之該外設相關聯的一製造商管理;藉由至少基於所獲取的該設定檔更新該等外設中之該外設的該設定檔,而配置該使用者設備的該等外設和相關聯的驅動;及啟動一高級作業系統(HLOS),其中該配置使得相關於至少一個驅動的資訊在該HLOS處可得到,該至少一個驅動係相關聯於該等外設之每一者,且該配置發生在該HLOS的該啟動之前。
  12. 一種用於啟動一使用者設備的裝置,包括:一記憶體;一收發機;及一處理器,其被配置為:執行該使用者設備的一設備啟動;決定相關聯於該使用者設備的外設的設定檔是否在該使用者設備處可得到;在決定該等外設中之一外設的一設定檔在該使用者設備處不可得到但在該使用者設備的外部的一位置處可得到後,即從該位置獲取該等外設中之該外設的該設定檔,該位置由與該等外設中之該外設相關聯的一製造商管理 ;藉由至少基於所獲取的該設定檔更新該等外設中之該外設的該設定檔,而配置該使用者設備的該等外設和相關聯的驅動;及啟動一高級作業系統(HLOS),其中該配置使得相關於至少一個驅動的資訊在該HLOS處可得到,該至少一個驅動係相關聯於該等外設之每一者,且該配置發生在該HLOS的該啟動之前。
  13. 根據請求項12述及之裝置,其中該處理器亦被配置為在該HLOS的該啟動之前預讀該使用者設備的該等相關聯的驅動。
  14. 根據請求項12述及之裝置,其中為了配置該使用者設備的該等外設和相關聯的驅動,該處理器經配置以在該HLOS的該啟動之前啟動該等相關聯的驅動。
  15. 根據請求項12述及之裝置,其中該處理器亦被配置為:辨識與該等所配置的外設相關聯的臨時驅動;及載入該等臨時驅動以由一HLOS前的作業環境使用,以允許該使用者設備在該HLOS的該啟動之前使用該等外設。
  16. 根據請求項12述及之裝置,其中為了配置該等外設和相關聯的驅動,該處理器被配置為自動地配置該等外設和相關 聯的驅動。
  17. 根據請求項12述及之裝置,其中為了配置該等外設和相關聯的驅動,該處理器被配置為手動地配置該等外設和相關聯的驅動。
  18. 根據請求項12述及之裝置,其中為了配置該等外設和相關聯的驅動,該處理器亦被配置為進行以下操作:決定與該使用者設備相關聯的該等外設;在一外設設定檔表中更新每個所決定的外設的一設定檔;及準備與每個外設設定檔相關聯的驅動以由該HLOS使用。
  19. 根據請求項18述及之裝置,其中為了決定與該使用者設備相關聯的該等外設,該處理器亦被配置為進行以下操作:偵測每個外設的一設定檔是否完整;及對每個外設的該設定檔進行錯誤檢查。
  20. 根據請求項18述及之裝置,其中該處理器被配置為藉由至少將針對該等外設中之該外設的一錯誤訊息儲存在該外設設定檔表中,來更新該等外設中之該外設的該設定檔。
  21. 一種用於載入一使用者設備的周邊設備驅動的方法,包括以下步驟: 決定能與一使用者設備相關聯的外設;及載入該等所決定的外設的驅動,其中該等所載入的驅動與一高級作業系統(HLOS)的架構相關聯,而不考慮在其上提供了該HLOS的使用者設備的一類型,其中載入驅動包括以下步驟:載入用於複數個外設類別中的每一個外設類別下的一外設的一驅動的一佔位容器;決定與該使用者設備相關聯的外設;辨識與該所決定的外設相關聯的驅動;及將該所辨識的驅動動態地加載入該等佔位容器。
  22. 根據請求項21述及之方法,其中載入驅動包括以下步驟:載入複數個外設類別中的每一個外設類別下的一已知外設集合的一驅動集合。
  23. 根據請求項22述及之方法,其中在一單體版本中載入該驅動集合。
  24. 一種用於載入一使用者設備的周邊設備驅動的裝置,包括:決定手段,用於決定能與一使用者設備相關聯的外設;及載入驅動手段,用於載入該等所決定的外設的驅動,其中該等所載入的驅動與一高級作業系統(HLOS)的架構相關 聯,而不考慮在其上提供了該HLOS的使用者設備的一類型,其中該載入驅動手段經配置以:載入用於複數個外設類別中的每一個外設類別下的一外設的一驅動的一佔位容器;決定與該使用者設備相關聯的外設;辨識與該所決定的外設相關聯的驅動;及將該所辨識的驅動動態地加載入該等佔位容器。
  25. 一種用於載入一使用者設備的周邊設備驅動的電腦程式產品,包括:一電腦可讀取媒體,其包括:代碼,該代碼使一電腦進行以下操作:決定能與一使用者設備相關聯的外設;及載入該等所決定的外設的驅動,其中該等所載入的驅動與一高級作業系統(HLOS)的架構相關聯,而不考慮在其上提供了該HLOS的使用者設備的一類型,其中載入驅動包括以下操作:載入用於複數個外設類別中的每一個外設類別下的一外設的一驅動的一佔位容器;決定與該使用者設備相關聯的外設;辨識與該所決定的外設相關聯的驅動;及將該所辨識的驅動動態地加載入該等佔位容器。
  26. 一種用於載入一使用者設備的周邊設備驅動的裝置,包 括:一記憶體;一收發機;及一處理器,其被配置為:決定能與一使用者設備相關聯的外設;及載入該等所決定的外設的驅動,其中該等所載入的驅動與一高級作業系統(HLOS)的架構相關聯,而不考慮在其上提供了該HLOS的使用者設備的一類型,其中該處理器被配置為:載入用於複數個外設類別中的每一個外設類別下的一外設的一驅動的一佔位容器;決定與該使用者設備相關聯的外設;辨識與該等所決定的外設相關聯的驅動;及將該等所辨識的驅動動態地加載入該等佔位容器。
  27. 根據請求項26述及之裝置,其中被配置為載入驅動的該處理器包括:被配置為載入複數個外設類別中的每一個外設類別下的一已知外設集合的一驅動集合的該處理器。
  28. 根據請求項27述及之裝置,其中在一單體版本中載入該驅動集合。
TW103106331A 2013-02-28 2014-02-25 用於在hlos啓動之前預讀智慧型電話和其他連接設備的周邊設備驅動的方法和裝置 TWI521433B (zh)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
TW201447756A TW201447756A (zh) 2014-12-16
TWI521433B true TWI521433B (zh) 2016-02-11

Family

ID=50272704

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103106331A TWI521433B (zh) 2013-02-28 2014-02-25 用於在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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
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
CN106790739B (zh) * 2016-11-22 2020-05-08 合一智能科技(深圳)有限公司 一种dns服务的预加载启动方法、预加载系统及管理系统
CN109426625A (zh) * 2017-08-30 2019-03-05 深圳市道通科技股份有限公司 一种多驱动兼容的控制装置和实现方法
US20240095002A1 (en) 2022-09-21 2024-03-21 Ncr Corporation Updated driver installation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
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
US7185190B2 (en) 2003-12-29 2007-02-27 Intel Corporation Pushing capabilities into firmware by an operating system
WO2005101382A1 (ja) * 2004-04-15 2005-10-27 Matsushita Electric Industrial Co., Ltd. 情報処理装置
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
US7461247B2 (en) * 2005-06-03 2008-12-02 Qnx Software Systems Gmbh & Co. Kg Method for transitioning control of a peripheral device from a first device driver to a second device driver during operating system initialization
US7409537B2 (en) 2005-10-06 2008-08-05 Microsoft Corporation Fast booting an operating system from an off state
US7721080B2 (en) 2006-06-30 2010-05-18 Intel Corporation Management of option ROM
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
US8516236B2 (en) * 2009-09-30 2013-08-20 Imation Corp. Portable desktop device and method of host computer system hardware recognition and configuration
CN101699415B (zh) * 2009-10-29 2011-05-11 威盛电子股份有限公司 核心逻辑电路、计算机系统及外围设备初始化方法
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
EP2625598A4 (en) * 2011-11-28 2014-01-15 Lg Electronics Inc METHOD, RECORDING MEDIUM, AND ELECTRONIC DEVICE FOR REDUCING THE BOOT TIME
CN102446120A (zh) 2011-12-23 2012-05-09 广东步步高电子工业有限公司 一种不同手机显示屏驱动程序自动切换的方法以及对应的显示系统

Also Published As

Publication number Publication date
WO2014133795A1 (en) 2014-09-04
KR20150123879A (ko) 2015-11-04
CN105144090A (zh) 2015-12-09
US20140244990A1 (en) 2014-08-28
JP2016508653A (ja) 2016-03-22
US9250922B2 (en) 2016-02-02
JP5996812B2 (ja) 2016-09-21
TW201447756A (zh) 2014-12-16
KR101632288B1 (ko) 2016-06-21
EP2962189A1 (en) 2016-01-06

Similar Documents

Publication Publication Date Title
US20200169620A1 (en) Remotely managing application settings using hash value comparison
US9071627B2 (en) Method and system for cloning applications from an electronic source device to an electronic target device
US7716661B2 (en) Embedded device update service
TWI521433B (zh) 用於在hlos啓動之前預讀智慧型電話和其他連接設備的周邊設備驅動的方法和裝置
TWI506555B (zh) 傳播更新的驅動程式給行動計算裝置的方法及其傳播系統
CN103677899B (zh) 安装应用程序的方法及设备
US20150026330A1 (en) Generating unique identifiers for mobile devices
US11310654B1 (en) Electronic subscriber identity module (eSIM) profile delivery and activation system and methods
EP3001309A1 (en) Application migration method, device and system for mobile terminal
US20110265078A1 (en) Method and system for device configuration and customization during manufacturing process
US20110191764A1 (en) Systems, methods, and apparatuses for facilitating distribution of firmware updates
US8554193B2 (en) Apparatus for reporting an exception and method thereof
US20170337234A1 (en) Using an Action Registry to Edit Data Across Users and Devices
CN103716793A (zh) 接入点信息分享方法和装置
US10514902B2 (en) Method and system for updating a software program installed in an electronic device
WO2012058880A1 (zh) 一种通过无线局域网对终端进行升级的方法和系统
US11968749B2 (en) Method for installing subscriber profile and electronic device therefor
TW201308067A (zh) 用於對通用晶片卡(uicc)之電力管理的方法和裝置
CN112181467B (zh) 终端的存储器固件升级方法、装置、终端和存储介质
EP3129883A1 (en) Method and apparatus for repairing dynamic link library file
WO2018010448A1 (zh) 文件传输方法及装置
CN104350476A (zh) 一种版本检测周期调节方法及装置
CN111008037A (zh) 一种代码迁移方法、设备以及存储介质
CN104965715A (zh) 更新内置搜索引擎的方法和装置
US9680914B1 (en) Seamless service migration updates

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees