新四季網

用於現場診斷無線通信設備系統軟體的系統和方法

2023-05-09 05:51:36

專利名稱:用於現場診斷無線通信設備系統軟體的系統和方法
技術領域:
本申請要求2001年8月10日提交的、名稱為″用於執行無線通信設備動態指令集的系統和方法″的序列號為09/927,131的美國專利申請的優先權,並與2001年7月26日提交的、名稱為″用於現場下載無線通信設備軟體代碼段的系統和方法″的序列號為09/916,900的美國專利申請,以及2001年7月26日提交的名稱為″用於壓縮現場可升級無線通信設備軟體代碼段的系統和方法″的序列號為09/9169,460的美國專利相關。它們都被結合於本文中,以供參考。
本發明一般涉及無線通信設備,尤其涉及用於利用動態指令集現場診斷無線通信設備的系統和方法。
背景技術:
對已經使用的電話的軟體不進行更新是罕見的。一旦電話被製造並銷售給公眾,更新可能涉及對所發現的軟體中的問題。一些更新可能涉及電話的新特性的使用,或服務提供商所提供的服務。其他的更新可能涉及地區問題,或與特定載波相關的問題。例如,在特定的區域,電信公司的網絡分布可能將無線接口條件強加給手機(handset),導致手機產生不期望的行為,例如不正確的頻道搜索,不正確的呼叫結束,不正確的音頻等。
傳統的更新方法是把通信設備(此處是指無線設備,電話,電話耳機或手機)送回最近的電信零售/服務市場(outlet)或製造商來處理這種改變。這種更新所涉及的成本是昂貴的,並超過底線。而且消費者不方便並可能被激怒。在實踐中的方案通常是給消費者新的電話。
無線設備在多種環境中使用,為大量的不同消費者提供不同的用戶服務,因此,即使無線設備的軟體能夠被升級以改善服務,為所有使用者提供統一改進的升級也是不可能的。
如果無線通信設備軟體可以便宜地升級,並且不造成消費者的不便,那麼將是有利的。
如果無線通信設備軟體能被升級,並且消費者在相當長的時間裡仍能使用他們的電話,那麼將是有利的。
如果無線通信設備軟體能被更新,而同時技術服務時間最少,或不需要將設備送到服務機構,那麼將是有利的。
如果能在代碼段區分無線設備系統軟體,那麼在更新系統軟體時,只需替換系統軟體的代碼段,這將是有利的。如果這些代碼段能通過空中鏈路(airlink)與無線設備通信,那麼也將是有利的。
如果無線設備能被用於現場更新系統軟體的動態加載指令集操作,它將是有優勢的。
如果動態指令集能使修改調整到適合需要,或能解決個人設備使用者的問題,那麼它是有優勢的。
如果動態指令集能被用於系統軟體的故障檢測(troubleshoot)並提供暫時的修復,那麼它將是有優勢的。

發明內容
無線通信設備的軟體更新可向用戶提供儘可能最適合的產品和用戶體驗。回收手機而更新軟體在商業上是昂貴的。手機製成後,這些更新對於向用戶提供增值服務或解決電話使用中發現的問題可能是必須的。本發明使得通過空中鏈路接口現場升級手機在實踐中成為可能。尤其是本發明可允許無線通信設備執行動態指令集。這些動態指令集可使無線設備「智能化地」或有條件地更新系統軟體或系統數據。此外動態指令集可使無線設備收集數據,並依據所收集的數據對系統軟體進行更改。另外,可以收集數據並將所收集的數據傳送給無線設備製造商用於分析。
因而,提供一種現場診斷無線通信設備中的系統軟體的方法。該方法包括執行系統軟體;啟動運行時期引擎,在非易失性存儲器的文件系統段接收包括動態指令集和新代碼段的補丁管理器運行時期指令(PMRTI);以及處理動態指令集以現場診斷系統軟體。
對動態指令集的處理包括執行帶有系統軟體的診斷指令集以收集數據;分析所收集的數據,以及根據對所收集的數據的分析,對系統數據和系統軟體進行操作。所述方法進一步包括在對系統軟體和系統數據操作之後,執行系統軟體。
下面將提供上述系統軟體現場診斷方法和用於現場診斷無線通信設備中的系統軟體的系統的詳細說明。
附圖簡要說明

圖1是整個無線設備軟體維護系統的示意方框圖。
圖2是軟體維護系統的示意性方框圖,突出表明通過空中鏈路接口對指令集的安裝。
圖3是本發明的用於在無線通信設備中執行動態指令集的系統的示意方框圖。
圖4是無線設備存儲器的示意方框圖。
圖5是圖3所示的代碼段地址表。
圖6是圖3所示的符號(suymbol)庫的符號的詳細描述。
圖7是圖3所示的符號偏移地址表。
圖8a和圖8b是對由運行時期引擎所存取的操作碼(op-code)的說明。
圖9是本發明的用於現場診斷無線通信設備中的系統軟體的系統。
圖10是圖9所示系統的更詳細說明。
圖11是圖10所示的診斷指令集的條件邏輯或數學方面的示意圖。
圖12是本發明的現場診斷系統的簡單更新方面的示意方框圖。
圖13是本發明的現場診斷系統的重複代碼補丁方面的示意方框圖。
圖14是對由圖13所示的現場診斷系統所建立的臨時修正的永久解決方案的示意方框圖。
圖15a和15b是本發明的用於執行無線通信設備中的動態指令集的方法流程圖。
圖16是動態指令集操作的一個示例的流程圖。
圖17是動態指令集操作的另一示例的流程圖。
圖18是動態指令集操作的第三示例的流程圖。
圖19是動態指令集操作的第四示例的流程圖。
圖20是動態指令集操作的第五示例的操作流程圖。
圖21是本發明的用於現場診斷無線通信設備中的系統軟體方法的流程圖。
圖22是圖21所示的本發明方法的另外特性的流程圖。
圖23是圖21所示的現場診斷方法的外部分析特性流程圖。
優選實施例的詳細描述下面詳細描述中的一些部分將用程序、步驟、邏輯塊、代碼、過程和其他表示在無線設備微處理器或存儲器中進行數據位操作的符號表達來說明。
這些描述和表達是數據處理領域的技術人員所使用的、與該領域的其他技術人員進行最高效的工作交流的工具。在這裡,程序、微處理器執行步驟、應用程式、邏輯塊,過程等等一般是所構思的前後一致的、通向期望結果的指令或步驟序列。步驟是那些物理量的所需要的物理操作。雖然不是必須的,通常這些量採用電或磁信號的形式,能被存儲、傳輸、組合、比較以及能在基於無線設備微處理器中被進行其他的操作。
主要是由於普遍使用的緣故,把這些信號作為比特、值、單元(element)、符號、字符、項(term)、數等來說明有時被證明是方便的。在物理設備(例如存儲器)被提及時,他們是通過總線或其他電連接與其他物理設備相連接的。這些物理設備可被認為是與邏輯處理器或應用程式互相作用的,因此,是″連接″到邏輯運算。例如,存儲器能存儲或訪問代碼,進而,邏輯運算或應用程式能從存儲器調用代碼段用於執行。
然而應該意識到,這些以及相似的術語是與合適的物理量聯繫在一起的,並且僅僅是加在這些物理量上的便利的標籤。除非特別指出,應該意識到,在以下對整個發明的討論中,使用術語例如″處理″、″連接″、″轉換″、″顯示″、″提示″、″決定″、″顯示″或″認可″等進行的討論涉及無線設備微處理器系統中的動作和處理,即把在計算機系統的寄存器和存儲器內的代表物理(電子的)量的數據處理和轉換為其他在無線設備存儲器或寄存器或其他的此類信息存儲、傳送或顯示設備內的物理量的數據。
圖1是整個無線設備軟體維護系統100的示意方框圖。在對軟體維護系統100進行總的說明之後,將在下面詳細說明本發明的系統軟體組織。系統100描述了傳送系統軟體更新材料和指令集(程序)以及在無線設備內安裝被傳送的軟體的過程。手機製造商開發了系統軟體更新材料和補丁管理運行時期指令(PMRTI),其作為指令集或動態指令集,更為公知。系統軟體被組織為符號庫。符號庫被排列到代碼段。在符號庫被更新時,軟體更新材料102作為一個或多個代碼段被傳送。軟體更新材料被廣播到無線通信設備104所代表的現場無線設備,或使用公知傳統的空中鏈路(air)以及數據或消息傳送協議,從基站106在個別通信中傳輸。由於能很容易地調整無線通信設備以處理任何可用的空中(over-the-air)傳送協議從而接收系統軟體和PMRTI更新材料,因而本發明不限於任何特定的傳送格式。
系統軟體可被看作是不同子系統的集合。代碼對象能緊緊地結合進這些抽象子系統中一個,結果集合被標註為符號庫。這樣就邏輯分解了原始碼(code base),軟體補丁和修正軟體能與這些符號庫的一個相關。在最通常的情況下,單一的更新材料與一個,至多二個符號庫相關。其餘代碼資料庫、符號庫保持不變。
符號庫的概念提供了處理代碼和常數的機制。另一方面,讀寫(RW)數據安裝到唯一的單獨的RW庫中,該庫包含了用於所有庫的基於RAM的數據。
一旦被無線設備104接收,所傳送的代碼段必須被處理。該無線設備重寫非易失性存儲器108的特定代碼段。非易失性存儲器108包括文件系統段(FSS)110和代碼存儲段112。通常在被傳送前,代碼段被壓縮,以使對FSS110的佔用最小。通常被更新的代碼段帶有它自己的RW數據,RW數據是另一種符號庫,包含用於每個符號庫的所有RW數據。雖然在系統軟體運行時期,RW數據裝載在隨機存取可讀寫易失性存儲器114中,但它經常需要存儲在非易失性存儲器108中,因而每次無線設備復位時,它能被裝入隨機存取可讀寫易失性存儲器114中。這包括RW數據第一次裝入到隨機存取可讀寫易失性存儲器。正如下面的更詳細的解釋,RW數據通常排列在補丁管理器代碼段中。
系統100包括虛擬表的概念。利用這種表,在一個代碼段內的符號庫能被修補(更換),而不會破壞(替換)系統軟體的其他的部分(其他的代碼段)。為提高效率,虛擬表在隨機存取可讀寫易失性存儲器114中執行。代碼段地址表和符號偏移地址表都是虛擬表。
更新代碼段被無線設備104接收,並存儲在FSS 110中。通常無線設備用戶接口(UI)將通知使用者新軟體可用,使用者對UI提示作出響應,確認該通知,發出進行修補或更新操作的信號。可選地,更新操作是自動完成的。在更新過程中,無線設備可能不能進行標準的通信作業。補丁管理器代碼段包括非易失性可讀寫驅動器符號庫,該非易失性可讀寫驅動器符號庫也被裝入隨機存取可讀寫易失性存儲器114。該非易失性讀寫驅動器符號庫可使代碼段被更新的代碼段重寫。補丁管理器代碼段包括讀-寫數據,代碼段地址表和符號偏移地址表,以及符號存取器代碼和符號存取器代碼地址(在下面討論)。在引進更新代碼段時,這些數據中的一部分是無效的;更新的補丁管理器代碼段包括對更新的代碼段有效的讀寫數據、代碼段地址表和符號偏移地址表。一旦更新的代碼段被裝入代碼存儲段112,無線設備即復位。在復位操作之後,無線設備能執行更新的系統軟體。也應該理解,補丁管理器代碼段可能包括其他上面未討論過的符號庫。這些其他符號庫不需要裝入可讀寫易失性存儲器114。
圖2是軟體維護系統100的示意方框圖,突出顯示了經空中鏈路(airlink)接口對指令集的安裝。除了更新系統軟體代碼段,維護系統100能下載和安裝在本文被稱為補丁管理器運行時期指令集(PMRTI)的動態指令集、程序、或補丁管理器指令集(PMIS)。PMRTI代碼段200以與上述系統軟體代碼段同樣的方式被傳送到無線設備104。PMRTI代碼段最初存儲在FSS 110中。PMRTI代碼段通常是二進位文件,可作為編譯的指令顯示在手機上。PMRTI代碼段是足夠詳盡的,可用於基本數學運算和條件運算。例如,RF校準的PMRTI可能執行下列各項操作IF RF CAL ITEM IS LESS THAN X(如果RE CAL項小於X)EXECUTE INSTRUCTION (執行指令)ELSE (否則)EXECUTE INSTRUCTION (執行指令)
PMRTI能支持基本數學運算,例如加、減、乘、除。與系統軟體代碼段一樣,PMRTI代碼段可被加載以響應UI提示,在PMRTI被裝入代碼存儲段112之後,無線設備必須被重起。隨後可以執行PMRTI代碼段。如果PMRTI代碼段與任何虛擬表或讀-寫數據有關,更新的補丁管理器代碼段與PMRTI將同時被傳送,以在代碼存儲段112內安裝PMRTI。可選地,PMRTI能從FSS 110中被保持和處理。在手機104已執行了PMRTI段內的全部指令之後,可以從FSS 110中刪除該PMRTI段。可選地,保留該PMRTI以便將來的操作。例如,每次無線設備開機時,可以執行PMRTI。
PMRTI是很強大的運行時期指令引擎。通過PMRTI環境,手機能執行任何傳來的指令。這種機制可被用於支持RF標準。更一般的,通常是由用戶抱怨而使廠商或服務提供商意識到軟體問題時,PMRTI能用於遠程調試無線設備軟體。PMRTI也能記錄診斷軟體問題所需要的數據。PMRTI能啟動新下載的系統應用軟體,用於數據分析、調試和修正。PMRTI能提供用來取代更新的系統軟體代碼段的基於RW數據的更新材料,以針對問題進行分析和短期修正。PMRTI能提供無線設備使用的存儲器壓縮算法。
在本發明的一些方面中,將系統軟體組織進符號庫的這種結構可影響執行所需要的易失性存儲器114和非易失性存儲器108的大小。這通常是由於代碼段比排列在代碼段中的符號庫更大。這些較大代碼段用於容納(accommodate)更新的代碼段。將系統軟體作為庫的集合進行組織影響所需的非易失性存儲器的大小。對於同樣大小的代碼而言,由於代碼段比排列於其中的符號庫更大,因而使用的非易失性存儲器的量較大。
一旦軟體更新資料被傳輸到無線設備,軟體維護系統100就進行支持存儲器壓縮。存儲器壓縮與臺式計算機中的磁碟碎片整理程序相似。這種壓縮方法可確保存儲器的最佳使用並有更多的節餘,以用於將來的代碼段更新資料,而更新代碼段的大小是不可預測的。當系統100被修補(更新)時,其可分析代碼存儲段。系統100意圖將更新代碼段裝入由被代替的代碼段所佔據的存儲空間。如果更新代碼段比被代替的代碼段更大,那麼系統100在存儲器112中壓縮代碼段。可選擇地,製造商或服務提供者可計算這種壓縮,並且壓縮指令可被傳輸到無線設備104。
壓縮會由於算法複雜、數據移動量大而成為耗費時間的過程。壓縮算法在開始處理之前進行可行性分析。在壓縮開始前,可用UI提示來請求使用者的許可。
在本發明的一些情況中,所有的系統軟體代碼段能被同時更新。但全部系統軟體升級需要更大的FSS 110。
圖3是本發明的無線通信設備中的動態指令集的執行示意方框圖。系統300包括在存儲器108中的代碼存儲段112,該代碼存儲段112包括被分成多個當前代碼段的可執行的無線設備系統軟體。在圖中示出了代碼段一(302)、代碼段二(304),代碼段n(306)和補丁管理器代碼段308。然而,本發明不受任何具體的代碼段數的限制。進一步,系統300還包含排列到第二組的代碼段中的第一組符號庫。如圖示出了排列到代碼段一(302)中的符號庫一(310)、排列在代碼段二(304)中的符號庫二(312)和符號庫三(314)、以及排列在代碼段n(306)中的符號庫m(316)。每個庫包含具有相關功能的符號。例如,符號庫一(310)可能涉及到無線設備液晶顯示器(LCD)的操作。那麼,該庫中的符號可能與顯示功能有關。正如下面詳細說明的那樣,其他符號庫被排列在補丁管理器代碼段308中。
圖4是無線設備存儲器的示意方框圖。如圖所示,存儲器是圖1所示的代碼存儲段112。存儲器是可寫的非易失性存儲器,如快閃記憶體(Flashmemory)。應該理解,代碼段不必象FSS 110那樣存儲在同一存儲器中。而應該理解,在本發明的系統軟體結構中,代碼段可以存儲在多個相配合的存儲器中。代碼存儲段112包括第二組連續編址的存儲器塊,其中每個存儲器塊存儲有來自第二組的代碼段的相應代碼段。因而,代碼段一(302)存儲在第一存儲器塊400中,代碼段二(304)存儲在第二存儲器塊402中,代碼段n(306)存儲在第n存儲器塊404中,補丁管理器代碼段(308)在第p塊存儲器塊406中存儲。
對比圖3和4,每個代碼段的開始相應地存儲在存儲器的開始地址處,符號庫被排列以在代碼段的起始處起始。也就是說,每個符號庫在第一地址起始並從第一地址起依次佔據(run through)一定範圍的地址。例如,代碼段一(302)在代碼存儲段存儲器112的第一起始地址408(標號為″S″)開始。在圖3中,符號庫一(310)在第一代碼段的起始地址318處起始。同樣地,代碼段二(304)開始在第二開始地址410(圖4),符號庫二開始在代碼段二的開始320(圖3)。代碼段n(306)開始在代碼存儲段存儲器112(圖4)的第三開始地址412,符號庫m(316)開始在代碼段n(322)的開始處(圖3)。補丁管理器代碼起始在代碼存儲段存儲器112的第P開始地址414,補丁管理器代碼段308的第一符號庫從補丁管理器代碼段的開始處324開始。因而,符號庫一(310)最後存儲在第一存儲器塊400中。如果代碼段包括多個符號庫,例如代碼段二(304),那麼多個符號庫存儲在相應的存儲器塊中,存儲器塊402就是這種情況。
在圖3中,系統300進一步包含代碼段地址表326,作為一種類型的符號包括在補丁管理器代碼段308中排列的符號庫中。代碼段地址表用存儲器中的代碼起始地址來交叉引用(cross-reference)相應的代碼段識別符。
圖5是圖3中326所示的代碼段地址表。查詢代碼段地址表326以查找符號庫的代碼段起始地址。例如,在要求執行符號庫一中的符號時,系統300尋找代碼段一。為查找代碼段一的開始地址,並因而定位符號庫一中的符號,代碼段地址表326被查詢(consult)。符號庫在代碼段中的排列以及利用表對代碼段的跟蹤,允許代碼段被移動或擴充。在安裝被升級的代碼段(帶有被升級的符號庫)時可能需要擴充或移動操作。
回到圖3,應該注意到,並不是每個符號庫都必需在代碼段的開始處開始。如圖所示,排列在代碼段二(304)中的符號庫三(314)就不是排列在代碼段的開始地址320處。因而,如果要執行符號庫三(314)中的符號,系統300查詢代碼段地址表326以查找代碼段二(304)的開始地址。正如以下所解釋的,符號偏移地址表允許定位符號庫三(314)中符號。這些符號跨越多個庫是沒有問題的,只要這些庫保持在同一代碼段中即可。
如上所述,每個符號庫包括與一定功能相關的符號。符號是用於查找和定位例行程序(routing body)、變量或數據結構的程式設計師定義的名字。因而,符號可以是地址或值。符號可以是內部的或外部的。內部符號在其所處的代碼段範圍之外是看不可見的。更具體地,他們不能被在其他的代碼段中其他的符號庫查找(seek)。外部符號被跨代碼段地使用和調用,並可被在不同代碼段中的庫查找(seek)。符號偏移地址表通常包括全部外部符號的列表。
例如,符號庫一(310)可能在無線設備顯示裝置上生成字符。在該庫中的符號將依次生成電話號碼、名字,時間,或其他的顯示特性。每個特性都由例行程序生成,例行程序在本文中被引用為符號。例如,在符號庫一(310)中的一個符號生成顯示裝置上的電話號碼。該符號由″X″表示,是外部符號。當無線設備收到電話呼叫,而且呼叫方ID服務被激活,則系統需要執行符號「X」以生成在顯示器上顯示的號碼。因此,系統必須定位符號「X」。
圖6是對圖3中的符號庫一(310)的符號的詳細描寫。排列符號以從各自的代碼段起始地址處偏移。在許多環境中,符號庫的開始是代碼段的開始,但如果代碼段包括多於一個的符號庫則不是這樣,符號庫一(310)在代碼段一的開始處開始(見圖3)。如圖6所示,符號「X」定位在從符號庫開始的偏移(03)處,而符號″Y″被定位在偏移(15)處。符號偏移地址存儲在補丁管理器代碼段的符號偏移地址表328中(見圖3)。
圖7是圖3中的符號偏移地址表328。符號偏移地址表328利用存儲器中的相應的偏移地址和代碼段標識符交叉引用符號標識符。因而,在系統搜索執行符號庫一中的符號「X」時,符號偏移地址表328被查詢,以查找該符號在它所排列的代碼段中的精確地址。
回到圖3,第一組的符號庫通常都包括在執行這些符號庫時必須被查詢或設置的讀寫數據。例如,符號庫可能包括依賴於條件指令的操作。讀寫數據段被查詢以確定為完成條件指令所需的狀態。本發明將來自全部符號庫的讀寫數據集中到共享讀寫部分。在本發明的一些方面,讀寫數據330被排列在補丁管理器代碼段308中。可選地(未示出),讀寫數據可以排列在不同的代碼段,例如,代碼段n(306)。
第一組的符號庫也包括符號存取器代碼,該符號存取器代碼排列在代碼段中以計算所搜索的符號的地址。符號存取器代碼可以被排列和存儲在獨立的代碼段中,例如,代碼段二(304)。然而,如圖所示,符號存取器代碼332被排列和存儲在補丁管理器代碼段308中。系統300進一步包括用於存儲符號存取器代碼地址的第一位置。第一位置可以是代碼存儲段112中的代碼段,或在無線設備(未示出)的單獨的存儲器段。第一位置也可以與讀寫數據一樣排列在同一代碼段中。如圖所示,第一位置334與讀寫數據330、符號偏移地址表328、代碼段地址表326和符號存取器代碼332以及補丁庫(補丁符號庫)336一起被存儲在補丁管理器代碼段308中。
符號存取器代碼訪問代碼段地址表和符號偏移地址表以計算或查找所尋找符號在存儲器中的地址。也就是說,符號存取器代碼用相應的符號標識符和相應的代碼段標識符計算所尋找符號的地址。例如,如果尋找在符號庫一中的符號「X」,調用符號存取器以尋找與符號「X」相應的符號標識符(符號ID)″X_1″(見圖7),查詢符號偏移地址表以確定″X_1″符號標識符具有從代碼段一開始處起的偏移(03)(見圖6),尋找與代碼段一相應的代碼段標識符″CS_1″,查詢代碼段地址表以確定與代碼段標識符(代碼段ID)″CS_1″相關的開始地址。以此方式,符號存取器代碼確定符號標識符″X_1″是從地址(00100)偏移(03),或被定位在地址(00103)。
由於符號″X″是實際代碼的一部分,因而它是保留名。換句話說,它帶有與之相連的確定數據。該數據可能是地址或值。符號標識符是為跟蹤符號所創建的別名。符號偏移地址表和代碼段地址表兩者都用標識符工作,以避免與保留的符號和代碼段名相混。同一符號名被許多符號庫使用也是可能的。標識符的使用可防止在符號之間產生混亂。
回到圖1,系統300進一步包含可讀寫易失性存儲器114,通常是隨機存儲器(RAM)。讀寫數據330、代碼段地址表326、符號偏移地址表328、符號存取器代碼332、和符號存取器代碼地址334從補丁管理器代碼段裝入可讀寫易失性存儲器114以在系統軟體執行期間被訪問。同樣是眾所周知的,訪問存儲在RAM中的代碼的時間比訪問非易失性存儲器(如快閃記憶體)的時間要短。
回到圖3,雖然被劃分的存儲器塊的大小正好可容納存儲於其內的相應的代碼段,但應該注意到,符號庫不必裝滿他們所排列的代碼段。可選地,第二組的代碼段中的每一個都具有用來容納符號庫的用字節表示的空間(size),每一個地址連續的存儲器塊都帶有容納相應代碼段的以字節表示的空間。例如,代碼段一(302)可能是100位元組的段,以容納長度為100位元組的符號庫。為與代碼段一的字節大小相匹配,第一存儲器塊將是100位元組。然而,裝入代碼段1的符號庫可能比100位元組小。如圖3所示,由於符號庫一(310)小於100位元組,代碼段一(302)帶有未使用的段340。因而,第二組的代碼段中的每一個都可能比排列符號庫所需的大小要大。利用″超大的″代碼段,可以容納更大的更新符號庫。
地址連續存儲器塊是指將物理存儲器空間分區成大小可變的邏輯塊。當代碼段被存儲在存儲器中時,代碼段和存儲器塊基本上是可互換的術語。代碼段的概念被用於識別可能比符號庫更大的一段代碼,或用於在當移動並處理代碼段時,識別代碼段中的符號庫集合。
如圖3所示,系統300包括在本文也被稱為補丁庫336的補丁符號庫,用以在代碼存儲段中將當前代碼段和新代碼段排列在一起。新代碼段和當前代碼段在代碼存儲段中的排列可形成已更新的可執行系統軟體。補丁管理器336不僅可將新代碼段和當前代碼段排列在一起,而且可用更新代碼段代替代碼段。
回到圖4,存儲器108的文件系統段110接收新代碼段,如新代碼段450和更新的補丁管理器代碼段452。文件系統段還接收初次補丁管理器運行時期指令(PMRTI)454,其包含將當前代碼段和新代碼段排列在一起的指令。如圖1所示,空中鏈路接口150可接收新的或更新的代碼段及初次PMRTI。儘管圖中的空中鏈路接口150是天線,但是應該理解空中鏈路接口也包括RF收發機、基帶電路及解調電路(未示出)。文件系統段110可存儲通過空中鏈路接口150接收的代碼段。從可讀寫易失性存儲器114中執行的補丁庫336可以依據PMRTI 454用新的或更新的代碼段450代替代碼存儲段中的第一代碼段,例如代碼段n(306)。通常用更新的補丁管理器代碼段452代替補丁管理器代碼段308。當代碼段被代替時,補丁庫336用文件系統段110中的更新的代碼段例如代碼段450重寫代碼存儲段112中的第一代碼段,例如代碼段n(306)。在極端情況下,存儲段112中的所有代碼段都被更新的代碼段所代替。即FSS110接收第二組的更新代碼段(圖未示),並且補丁庫336可用第二組的更新代碼段代替代碼存儲段112中的第二組的代碼段。當然,FSS 110必須足夠大以容納通過空中鏈路接口接收的第二組的更新的代碼段。
如上所述接收的更新代碼段可包括讀寫數據代碼段、代碼段地址表代碼段、符號庫、符號偏移地址表代碼段、符號存取器代碼段或帶有新補丁庫的代碼段。所有這些代碼段和與它們相關的符號庫及符號可被存儲成不同和獨立的代碼段。然後這些代碼段中的每一個被唯一的更新代碼段所代替。即所接收的更新的讀寫代碼段將代替代碼存儲段中的讀寫代碼段。所接收的更新的代碼段地址表代碼段將代替代碼存儲段中的代碼段地址表代碼段。所接收的已更新的符號偏移地址表代碼段將代替代碼存儲段中的符號偏移地址表代碼段。被接收的更新的符號存取代碼段將代替代碼存儲段中的符號存取代碼段。同樣地,更新的補丁管理器代碼段(帶有補丁庫)將被接收並代替代碼存儲段中的補丁管理器代碼段。
然而上述的代碼段通常與補丁管理器代碼段捆綁在一起。這樣當補丁管理器代碼段308被更新的補丁管理器代碼段450代替時,代碼存儲段中的讀寫代碼段可被來自文件系統段110的讀寫代碼段代替。同樣地,當安裝更新的補丁管理器代碼段450時,代碼段地址表、符號偏移地址表、符號存取代碼段及補丁庫將被取代。新讀寫數據、新代碼段地址表、新符號偏移地址表、新符號存取代碼、新補丁庫和更新的補丁管理器代碼段450及代碼存儲段中的當前代碼段的排列形成更新的可執行系統軟體。
當文件系統段110接收已更新的符號存取器代碼地址時,補丁管理器用更新的符號存取器代碼地址代替存儲器中第一位置的符號存取器代碼地址。如上所述,存儲器334中的第一位置通常是在補丁管理器代碼段中(參見圖3)。
如圖3所示,補丁庫308還包括壓縮器或壓縮器符號庫342。壓縮器342也可以是獨立的代碼段,然而如上所述,將該與系統軟體升級相關的功能捆綁進補丁管理器代碼段是有用和有效的。通常壓縮器342也被稱為重設大小代碼段,從而新段可與代碼存儲段112中的當前代碼段排列。
就目前建立的本發明的結構、下載和壓縮,下面的討論將集中在無線通信設備動態指令集執行系統300。如上面所詳細討論的,系統300包括可執行的被分成代碼段的系統軟體和系統數據。此外,系統300包括用於作業系統數據和系統軟體並控制系統軟體的執行的動態指令集。如圖4所示,動態指令集470被組織進第一PMRTI 454。如圖3所示,系統還包括用於處理動態指令集的運行時期引擎,作為運行時期庫370。與如上所述的壓縮器庫342和補丁庫336一樣,運行時期庫370通常位於補丁管理器代碼段308中。然而,運行時期庫370可選擇地位於另一個代碼段中,例如第一代碼段304中。
動態指令集是單一或含有條件操作代碼的多重指令集,並且通常包括數據項。運行時期引擎可讀取操作代碼並決定需要進行何種操作。操作代碼可以是條件代碼、數學代碼、程序代碼或邏輯代碼。運行時期引擎或運行時期庫370處理動態指令集以執行諸如數學操作或邏輯操作等操作。即運行時期引擎可根據操作代碼讀取動態指令集470並進行一系列操作。
儘管動態指令集不限於任何特定的語言,但由於無線設備存儲器空間有限並且執行速度很重要,所以操作代碼通常是機器代碼的形式。由於操作代碼分析數據項並根據分析結果做出決定,因而它被認為是條件代碼。運行時期引擎也可決定在數據被分析之前對其進行操作。
例如操作代碼可指定將從無線設備存儲器來的數據項與預定值比較。如果數據項小於預定值,那麼不用處理它,如果數據項大於預定值,那麼就用預定值代替它。可選地,在進行上述的比較操作前,操作代碼可使從無線設備存儲器來的數據項增加第二預定值。
如上所述,非易失性存儲器文件系統段110可通過接口如空中鏈路150接收動態指令集。如圖1所示,接口也可以是射頻(RF)硬線160。這樣,在沒有系統軟體正在工作的情況下,如在工廠校準環境中,PMRTI可被FSS 110接收。PMRTI也可通過邏輯埠接口162或可安裝的存儲器模塊164來接收。存儲器模塊164可安裝在無線設備104中,可在初始校準時安裝,或現場安裝,或在工廠校準時安裝。儘管沒有特別說明,但PMRTI可通過紅外接口或藍牙(Bluetooth)接口來接收。
圖8a和8b是對被運行時期引擎370所訪問的指令的說明。在圖8a中所示的是第一指令800、第二指令802和第j指令804,然而動態指令集不限於任何特定數量的指令。在每條指令中的操作代碼的長度是固定的。運行時期引擎370可獲得指令的長度,即字節或位的數量,來檢測指令是否包括數據項。減去操作代碼後,剩餘指令長度包括數據項。運行時期引擎可從指令中提取數據項。如圖所示,第一指令800的長度806被測量並提取了數據項808。應注意並不是所有的指令都必須包括將被提取的數據項。在依據指令800中的操作代碼810執行的一系列操作時,運行時期引擎370使用提取的數據808。
圖8b是圖8a中的第一指令800的更詳細說明。以第一指令800為例,指令包括操作代碼810和數據808。指令,更具體地是指數據項段808,包括符號標識符,其用於連接無線設備代碼段中的符號。如上所詳細說明的,符號標識符和代碼段地址表326(參見圖5)和符號偏移地址表328(參見圖7)一起使用以定位與符號標識符相應的符號。如圖所示,在第一指令800中示出了符號標識符「X_1」。符號偏移地址表328可利用標識符「CS_1」和偏移量「3」在代碼段中定位相應符號。代碼段地址表326可給出代碼段一(302)的起始地址。以這種方式可找到符號「X」(參見圖6)。
在運行時期引擎在使用代碼段地址表和符號偏移地址表定位了與所接收的符號標識符相應的符號之後,在被定位的符號是數據項時它提取數據。例如,如果符號庫一(310)中的符號「X」是數據項時,運行時期引擎就可提取它。可選擇地,符號「X」可以是操作代碼,並且當其被定位時運行時期引擎可執行符號「X」。
PMRTI可被用於更新系統數據或數據項。在本發明的某些方面中,參見圖4,系統數據存儲在文件系統段110的代碼段中,例如在代碼段472中。運行時期引擎可訪問來自於代碼段472的系統數據並分析該系統數據。如上所述,運行時期引擎可處理動態指令集中的操作代碼以對數據項執行數學或邏輯操作。此操作後,運行時期引擎可處理指令以產生更新的系統數據。應注意到在某些情況下更新的系統數據可包括未改變的數據項。根據操作代碼,在二次代碼段472中的系統數據被更新的系統數據代替。這樣,通過運行時期引擎對指令的處理,使用代碼段472中的已更新的系統數據控制系統軟體的執行。以這種方式,系統軟體中的特定目標符號可被更新,而不用替換全部的代碼段。通過相同的處理,可以替換代碼存儲段112的代碼段中的系統數據。例如如果系統數據存儲在第三代碼段344中,運行時期引擎可根據操作代碼用更新的系統數據替換第三代碼段中的系統數據。
PMRTI也可被用於更新易失性存儲器114中的數據項。例如參見圖1,易失性存儲器114接收讀寫數據330。讀寫數據可從代碼存儲段112和/或FSS 110中的一個或多個代碼段得來。運行時期引擎可訪問讀寫數據、分析讀寫數據330、產生更新的讀寫數據並根據操作代碼用已更新的讀寫數據代替易失性存儲器114中的讀寫數據330。然後使用易失性存儲器114中的更新的讀寫數據來控制系統軟體的執行。
在本發明的某些方面中,運行時期引擎可監測系統軟體的執行。性能監測被廣義地定義,以包括最大數量的無線設備活動。例如,通過一系列操作可導致特定失效條件或性能下降的諸如信道參數、信道特性、系統棧、出錯條件等數據或RAM中數據項記錄可被收集。也可使用動態指令集分析收集到的性能數據、提供已更新的數據變量並再次捕獲數據來研究針對問題的可能解決方案。也可使用PMRTI處理提供臨時性的修正。
更具體地,運行時期引擎可收集性能數據並根據操作代碼將性能數據存儲在文件系統段中。然後,利用收集的用於評估系統軟體性能的數據控制執行系統軟體。評估可以作為分析的一種形式被動態指令集操作代碼進行,它也能在無線設備外部進行。在本發明的某些方面中,運行時期引擎可訪問從文件系統段收集的性能數據並通過空中鏈路接口傳輸性能數據以響應操作代碼。從無線設備現場收集性能數據允許製造商全面地分析問題(在本地分析或全球任何地方),而不用將設備回收。
在本發明的某些方面中,文件系統段110可接收包括新代碼段的管理器運行時期指令。例如圖4中所示的新代碼段474。可選擇地,新代碼段可以是與PMRTI無關的,如新代碼段n(450)。例如,新代碼段n(450)可在早期的空中鏈路通信中被接收或在工廠校準期間被安裝。運行時期引擎可根據操作代碼將代碼段474(450)加到代碼存儲段中。在本發明的某些方面中,新代碼段代碼被加到存儲段112中的未用塊中。可選擇地,壓縮操作是需要的。然後,使用新代碼段474(450)控制執行系統軟體。在本發明的其它方面中,PMRTI 454包括更新的代碼段474。可選擇地,新代碼段450是與PMRTI無關的更新的代碼段。運行時期引擎可用更新的代碼段474(450)代替代碼存儲段中的代碼段,例如代碼段二(304)以響應操作代碼。使用更新的代碼段474(450)控制執行系統軟體。在本發明的某些方面中,需要壓縮操作以容納更新的代碼段。可選擇地,已更新的代碼段被加到代碼存儲段的未用段或空白段中。
如上所述,因為這些操作通常包括新的和/或變化的代碼段起始地址,新代碼段的加入或代碼段的更新通常需要產生新代碼段地址表。此外,壓縮操作也需要新代碼段地址表。如上所述,壓縮操作也可以是壓縮器342操作的結果,或者是可提供怎樣壓縮的細節的PMRTI指令的結果。當PMRTI包括下載和壓縮指令時,PMRTI通常也包括在下載和壓縮操作完成後有效的新的代碼段地址表。
圖9是本發明系統的用於現場診斷無線通信設備中的系統軟體的系統的示意方框圖。系統900包含與圖1中的空中鏈路接口150相等同的空中鏈路接口902,以及與圖1中的存儲器108等同、分入到存儲在非易失性存儲器永久存儲器904的代碼段中的可執行的系統軟體和系統數據,系統900實質上與上述的系統100一樣,為使文章簡短,相似的特性將不再重複。非易失性永久存儲器904包括文件系統段906和代碼存儲段908。
用於現場診斷系統軟體的動態指令集910已經通過空中鏈路接口902接收。動態指令集910以及新代碼段912是補丁管理器運行時期指令914的一部分。通常,動態指令集910存儲在文件系統段906中。運行時期引擎,或運行-時期庫916處理動態指令集910。如上所述,運行-時期庫916通常是補丁管理器代碼段918的一部分。
可執行的系統軟體和系統數據(永久存儲器904中的代碼段)由動態指令集910操作。在動態指令集910對系統軟體和系統數據操作之後,系統軟體被執行。
如上面所詳細說明的,系統軟體被設置進符號庫。每個符號庫包含具有相關功能的符號,這些符號排列在非易失性存儲器908的代碼存儲段的代碼段中。非易失性存儲器的文件系統段906接收補丁管理器運行時期指令(PMRTI)914,包括動態指令集910和新代碼段(新代碼段912被示出)。
在本發明的一些方面,動態指令集910是診斷指令集,新代碼段912是診斷代碼段。在被文件系統段906接收之後,診斷代碼段912被存儲在非易失性存儲器904中,通常是在代碼存儲段908(見點劃線標示的″1″)中。診斷指令集910執行帶有系統軟體的診斷代碼段912。
圖10是圖9所示系統的更詳細的示意方框圖。診斷指令集910的一個功能是在執行帶有系統軟體的診斷代碼段912時,收集響應的系統數據。在本發明的一個方面,重要的系統軟體符號和符號數據被收集在被收集數據代碼段1000,被收集數據代碼段1000通常是在文件系統段906中(如圖所示),但是也能在代碼存儲段(未示出)或可讀寫易失性存儲器1002上。
在本發明的另一方面,系統軟體存儲符號和數據項,並更新所存儲的符號和數據項以提供系統軟體操作記錄。這種臨時的狀態信息能被保持在易失性存儲器1002中。這樣,診斷指令集910可以更簡單地收集存儲在可讀寫易失性存儲器中符號的地址和符號值,以存儲在被收集數據代碼段1000中。
隨後被收集數據代碼段1000上的被收集數據被現場診斷系統900分析,以進行臨時的修正(如下面的圖13和圖14所示),或被傳輸到無線設備廠商進行分析。診斷指令集910導致被收集系統數據1000被空中鏈路接口902(見點劃線標示的″1″)傳輸。然後,新的補丁管理器運行時期指令1004經空中鏈路接口902被接收,見點劃線標示的″2″。新的PMRTI 1004包括帶有更新數據的新代碼段。診斷指令集910用新代碼段取代永久存儲器中的初始代碼段(見圖9),系統軟體執行新的代碼段。
圖11是圖10所示的診斷指令集912的條件邏輯或數學方面的示意圖。在本發明的這個方面,診斷指令集912使用條件診斷指令集分析所收集的數據。條件操作可能是簡單的數學操作,例如數據項加″3″,操作也可能複雜得多,如圖所示,操作為如果X<3,則使X=5,否則X值不變。由於條件操作是基於標準的軟體功能,因而條件邏輯操作總數、類型、和變量太多而不能全部提及。依據對被收集數據的分析,系統數據被更新,系統軟體用更新的系統數據執行,如圖所示,系統軟體操作X,X的值為5。
圖12是本發明的現場診斷系統900的簡單更新的示意方框圖。診斷代碼段914包括預定的更新系統數據集,在圖中示為Z_1(1200)、Z_2(1202)、和Z_3(1204)。診斷動態指令集912選擇更新系統數據集,例如,Z_1(1200)。然後,系統軟體(例如代碼段1206)用所選擇的更新系統數據集Z_1(1200)執行。應注意Z_1數據集1200取代了R_1數據集1208。診斷指令集912已經確定,使用R_1數據集的系統軟體是低效的。
圖13是本發明的現場診斷系統900的重複代碼補丁的示意方框圖。診斷代碼段914包括多個臨時代碼符號庫,在圖中示為Y_(1300)、Y_2(1302)和Y_3(1304)以及相應約束YC_1(1306),YC_2(1308),和YC_3(1310)。該診斷代碼段914也被稱作測試代碼段。雖然所示的庫和約束段是分開的,但約束段1306-1310可選地可以是臨時庫1300-1304的一部分,或位於其他診斷代碼段內(未示出)。
診斷指令集912執行第一臨時代碼,例如Y_1(1300)。也就是說,診斷指令集912使系統軟體,例如代碼段1312,利用第一臨時代碼Y_1(1300)執行。系統數據因第一臨時代碼Y_1(1200)的執行而在諸如被收集數據代碼段1000中(見點劃線標示的″1″)被收集。診斷指令集912將所收集的系統數據與相應的約束YC_1(1306)相比較。如上所述,分析可基於由診斷指令集生成的簡單的或複雜的條件邏輯或數學運算。簡單地說,診斷代碼段914包括作為系統數據觸發值的約束,通過將根據第一臨時代碼Y_1(1300)的執行而收集的系統數據1000與YC_1(1306)中的系統數據觸發值相比較,診斷指令集912分析所收集的數據。
如果被收集的系統數據1000通過了分析(分析合格),那麼第一臨時代碼Y_1(1200)被假定為是可操作的,並且系統數據是按照第一臨時代碼約束YC_1(1306)臨時更新的。既然代碼段1312將使用臨時代碼段代替已安裝代碼-例如R_1(1314)-工作,那麼,系統軟體暫時將所選擇的系統軟體符號重定向(redirect)到診斷代碼段914的第一臨時代碼符號庫Y_1(1300)中的相對應符號(見點劃線標籤″2″)。如上面所詳細解釋的,代碼段地址表和符號偏移地址表用於定位代碼段和代碼段內的符號。在臨時代碼段被修補到系統軟體內時,診斷指令集912也用診斷代碼段的地址更新符號偏移地址表和代碼段地址表。如圖所示,將用臨時代碼段Y_1(1300)取代代碼段R_1(1314)中的相對應符號,以更新代碼段1312。
然而,與約束相比較,所收集的數據1000可能是不對的。這種不對的比較結果表明臨時代碼不是對系統軟體問題的成功修正。然後,如果被收集的系統數據不能通過分析,診斷指令集912執行其它臨時代碼符號庫。反覆測試臨時代碼段直到發現″好″代碼段。如果沒發現″好″代碼,系統軟體繼續用最初安裝的代碼操作。應注意到,上述的臨時修正是被設計為診斷工具的,但是,臨時修正能無限期地被修補到系統中。
圖14是圖13的現場診斷系統900所建立的臨時修正的永久解決方案的示意方框圖。為永久解決所診斷到的問題,診斷指令集912使臨時軟體數據資料和臨時重定向的系統軟體符號經空中鏈路接口902傳輸(見標為「1」的點劃線箭頭)。如圖所示,臨時更新信息被存儲在代碼段1400。臨時修正的傳送使廠商可以完成對信息的分析,因而可以產生全面而有效的解決辦法。然後,永久更新代碼段1402以及更新的代碼段地址表和更新的符號偏移地址表作為新PMRTI經空中鏈路接口902,在文件系統段906被接收(見標為「2」的點劃線箭頭)。診斷指令集912在永久存儲器中存儲更新代碼段1402以及更新代碼段地址表和符號偏移表。如圖所示,更新代碼段存儲在代碼存儲段908中(見標為「3」的點劃線箭頭)。
圖15a和15b是本發明的用於在無線通信設備中執行動態指令集的方法流程圖。雖然為清楚起見,用連續編號的步驟進行描述,但除非明確指出,不應從這些編號(下面示出的本方法的編號)中得出先後順序。該方法在步驟1500開始。步驟1501a將系統軟體設置為符號庫,每個符號庫包含具有相關功能的符號。步驟1501b將符號庫排列到代碼段。步驟1502執行系統軟體。步驟1503啟動運行-時期引擎。通常,所啟動的運行-時期引擎包括調用來自第一代碼段的運行-時期庫。運行-時期引擎能從易失性或非易失性存儲器中啟動。在步驟1503之後的步驟1504中,接收動態指令集。在步驟1504中接收動態指令集包括通過從一個組中所選的接口接受動態指令集,該組包括空中鏈路、射頻(RF)硬線(hardline)、可安裝存儲器模塊、紅外的以及邏輯埠界面。在本發明的一些方面,在步驟1504中接收動態指令集包括接收非易失性存儲器的文件系統段內的補丁管理器運行時期指令(PMRTI)。
步驟1506處理動態指令集。處理動態指令集包括根據數學和邏輯操作處理指令。在本發明的某些方面中,在處理動態指令集之後,步驟1507(圖未示)刪除動態指令集。步驟1508作業系統數據和系統軟體。步驟1510根據對系統軟體和系統數據的操作,控制系統軟體執行。
在步驟1504中接收補丁管理器運行時期指令通常包括接收條件操作代碼和數據項。然後,在步驟1506中處理動態指令集包括子步驟。步驟1506al使用運行時期引擎讀取補丁管理器運行時期指令操作代碼。步驟1506b根據操作代碼進行一系列操作。
在某些方面,在步驟1501b中將符號庫排列進代碼段的操作包括在代碼段的開始處開始符號庫並從各自的代碼段起始地址排列需偏移的符號。本發明還包括如下步驟。步驟1501c在相應的起始地址存儲起始代碼段。步驟1501d維護代碼段地址表(CSAT),代碼段地址表用相應的起始地址交叉引用代碼段標識符。步驟1501e維護符號偏移地址表(SOAT),該符號偏移地址表用相應的偏移地址和相應的代碼段標識符交叉引用符號標識符。
在本發明的某些方面中,在步驟1504中接收補丁管理器運行時期指令包括接收符號標識符。本方法還包括如下步驟。步驟1506a2通過使用代碼段地址表和偏移地址表定位與接收的符號標識符相應的符號。根據操作代碼在步驟1506b中進行的一系列操作包括一些子步驟。當定位的符號是數據項時,步驟1506b1提取數據。當定位的符號是指令時,步驟1506b2執行符號。
在本發明的某些方面中,在步驟1506b1中處理動態指令集的步驟包括其它子步驟。步驟1506b1a利用運行時期引擎捕獲管理器運行時期指令長度。步驟1506b1b根據操作代碼從管理器運行時期指令中提取數據項。步驟1506b1c根據操作代碼使用提取的數據進行一系列操作。
圖16是動態指令集的一個例子的操作流程圖。圖16中的幾個步驟和圖15中的相同,為了簡潔起見這裡不再重複。在步驟1606中處理動態指令集包括一些子步驟。步驟1606a訪問存儲在文件系統段中第二代碼段中的系統數據。步驟1606b分析此系統數據。步驟1606c創建更新的系統數據。在步驟1608中作業系統數據和系統軟體包括用更新的系統數據代替第二段中的系統數據,在步驟1610中控制執行系統軟體包括在系統軟體的執行中使用更新的系統數據。
圖17是動態指令集另一示例的操作流程圖。圖17中的幾個步驟和圖15中的相同,為了簡潔起見這裡就不再重複。步驟1701c在非易失性存儲器的代碼存儲段存儲多個代碼段。在步驟1706中處理動態指令集包括一些子步驟。步驟1706a訪問存儲在代碼存儲段(CSS)中第三代碼段中的系統數據。步驟1706b分析此系統數據。步驟1706c創建更新的系統數據。在步驟1708中作業系統數據和系統軟體包括用更新的系統數據代替第三代碼段中的系統數據。在步驟1710中控制系統軟體執行包括在系統軟體的執行中使用更新的系統數據。
圖18是動態指令集第三示例的操作流程圖。圖18中的幾個步驟和圖15中的相同,為了簡潔起見這裡不再重複。步驟1801c在非易失性存儲器的代碼存儲段存儲多個代碼段。步驟1801d將讀寫數據加載入易失性存儲器。在步驟1806中處理動態指令集包括子步驟。步驟1806a訪問易失性儲存器中的讀寫數據。步驟1806b分析此讀寫數據。步驟1806c創建更新的讀寫數據。在步驟1808中作業系統數據和系統軟體包括用更新的讀寫數據代替易失性存儲器中的讀寫數據。在步驟1810中控制系統軟體執行包括在系統軟體的執行中使用更新的讀寫數據。
圖19是動態指令集操作的第四示例的流程圖。圖19中的幾個步驟和圖15中的相同,為了簡潔起見這裡就不再重複。處理動態指令集包括子步驟。步驟1906a監測系統軟體的執行以響應操作代碼。步驟1906b收集性能數據。步驟1906c存儲此性能數據。步驟1906d通過空中鏈路接口傳輸存儲的數據。在步驟1908中作業系統數據和系統軟體包括在系統軟體的評估中使用此性能數據。步驟1910控制系統軟體的執行。
圖20是動態指令集操作的第五示例的流程圖。圖20中的幾個步驟和圖15中的相同,為了簡潔起見這裡就不再重複。步驟2001c在非易失性存儲器的代碼存儲段存儲多個代碼段。在步驟2003中接收補丁管理器運行時期指令包括接收新代碼段。在步驟2008中作業系統數據和系統軟體包括將新代碼段加入到代碼存儲段中,在步驟2010中控制執行系統軟體包括在系統軟體的執行中使用新代碼段。
可選擇地,在步驟2003中接收新代碼段包括接收更新的代碼段。在步驟2008中作業系統數據和系統軟體包括用更新的代碼段代替代碼存儲段中的第四代碼段。
圖21是本發明的用於現場診斷無線通信設備系統軟體的方法流程圖。方法在步驟2100開始。步驟2102執行系統軟體。步驟2104啟動運行-時期引擎。步驟2106在非易失性存儲器的文件系統段接收補丁管理器運行時期指令(PMRTI),包括動態指令集和新的代碼段。步驟2108處理動態指令集以現場診斷系統軟體。步驟2110依據步驟2108對系統軟體的現場診斷,對系統數據和系統軟體進行操作。在步驟2110對系統軟體和系統數據操作之後,步驟2112執行系統軟體。
如前所述,而在本圖中未特別指明的,步驟2101a將系統軟體設置為符號庫,每個符號庫包含具有相關功能的符號,步驟2101b將符號庫排列到非易失性的存儲器的代碼存儲段的代碼段中。
在本發明的一些方面,在步驟2106接收動態指令集包括接收診斷指令集。進一步,接收新的代碼段包括接收診斷代碼段。隨後,步驟2107在非易失性存儲器永久存儲區存儲診斷代碼段。在步驟2108中處理動態指令集包括對診斷指令集的處理以執行帶有系統軟體的診斷代碼段。
在本發明一些方面,在步驟2108中對診斷指令集的處理包括一些子步驟。步驟2108a收集系統數據。通常,系統數據依據帶有系統軟體的診斷代碼段的執行而收集。在一些方面,在步驟2108a中對系統數據的收集包括收集在可讀寫易失性存儲器中的符號的地址和值。步驟2108b在文件系統段的第一代碼段存儲收集的系統數據。步驟2108c使用條件操作代碼分析收集的數據。然後,在步驟2110對系統數據和系統軟體的操作包括依據對所收集數據的分析更新系統數據。在步驟2112中對系統軟體的執行包括使用更新系統數據。應該理解,在步驟2108a到步驟2108c中的收集、存儲、和分析數據是不必按所描述的次序進行的。一些過程是重複的,包括收集、存儲、和分析的循環。其他處理可能分析數據隨後存儲它。本領域的技術人員同樣應該意識到存在著其他收集、存儲、和分析的次序變化。
在本發明的一些方面,在步驟2106中對診斷代碼段的接收包括接收預定設置的更新系統數據。在步驟2108中對診斷指令集的處理包括選擇更新系統數據集,在步驟2110中對系統數據和系統軟體的操作包括使用已選擇的更新系統數據集執行系統軟體。
圖22是圖21中所示的本發明方法的其他特性的流程圖。為簡短起見,應注意到,在步驟21中描述的大多數步驟在圖22是一樣的,在這裡不對他們進行重複描述。在步驟2106中對診斷代碼段的接收包括接收帶有多個臨時代碼符號庫和相應約束的測試代碼段。在步驟2108中對診斷指令集的處理包括執行第一臨時代碼。在步驟2108c中分析所收集的數據包括對系統數據(依據第一臨時代碼的執行而收集)和相應約束的比較。在步驟2110中對系統數據和系統軟體的操作包括一些子步驟。如果被收集的系統數據通過了分析,步驟2110a按照第一臨時代碼約束暫時更新軟體數據。步驟2110b暫時將已選擇系統軟體符號重定向到在診斷代碼段的第一臨時代碼符號庫中的副本符號。如果所收集的系統數據未分析合格,步驟2108中對診斷指令集的處理包括執行備選的臨時代碼符號庫。
在步驟2101b中將符號庫排列到代碼段,包括在代碼段的開始處開始符號庫,以及排列符號使他們從各自的代碼段起始地址偏移。正如上面所詳細提及的並因此未示出的,步驟2101c在相應的開始地址存儲代碼段的開始。步驟2101d維持代碼段地址表,該代碼斷地址表用相應的開始地址前後參照代碼段標識符。步驟2101e維持符號偏移地址表,該符號偏移地址表用相應的偏移地址和相應的代碼段標識符對照符號標識符。然後,在步驟2112中,執行來自測試代碼段的臨時代碼符號庫包括用診斷代碼段中的地址更新符號偏移地址表和代碼段地址表。
在一些方面,在步驟2106中對診斷代碼段的接收包括接收測試代碼段,該測試代碼段帶有臨時代碼符號庫和作為系統數據觸發值組織的約束。然後,在步驟2108c對被收集的數據的分析包括將系統數據(依據第一臨時代碼的執行而收集)與系統數據觸發值的集合相比較。
步驟2114經空中鏈路接口傳輸臨時軟體數據資料並暫時重定向系統軟體符號的集合。步驟2116在文件系統段接收帶有更新代碼段地址表和更新符號偏移地址表更新代碼段(永久的更新)。然後,在步驟2108中對動態指令集的處理包括在永久存儲區中存儲帶有更新代碼段地址表和符號偏移地址表更新代碼段。
圖23是圖21所示的現場診斷方法的外部分析特性的流程圖。再次說明,圖23中的大多數步驟是與圖21中的步驟相同的。為簡潔起見,將不予重複。在步驟2108中,對診斷指令集的處理包括通過空中鏈路接口傳輸所收集的系統數據。在外部分析之後,步驟2108d接收新的補丁管理器運行時期指令。新的補丁管理器運行時期指令帶有新的代碼段,新的代碼段包括更新數據。在步驟2108e中,用新的代碼段取代永久存儲區內的第一代碼段。然後,在步驟2112中執行使用新的代碼段的系統軟體。在本發明的一些方面,在步驟2108的系統軟體現場診斷之後的步驟2118中,從文件系統段移去動態(診斷)指令集。
已經提供了用於在無線通信設備中執行動態指令集的系統和方法,從而有助於在診斷和/或修正(至少是暫時的)系統軟體的問題。由於代碼段中符號庫的排列,並用表訪問存儲器中代碼段的起始地址及符號庫中符號的偏移地址,因而此系統非常容易更新。動態指令集的使用可根據設備的具體特徵對其進行定製修改。舉出了幾個常用實施例用以闡明動態指令集的可能應用。然而,本發明不僅限於這些實施例。本領域所屬技術人員可以想到本發明的其它變化和實施方案。
權利要求
1.一種在無線通信設備中現場診斷系統軟體的方法,所述方法包括執行系統軟體;啟動運行-時期引擎;以及,處理動態指令集以現場診斷系統軟體。
2.根據權利要求1所述的方法,進一步包括根據對系統軟體的現場診斷,作業系統數據和系統軟體;和,在對系統軟體和系統數據操作之後,執行系統軟體。
3.根據權利要求2所述的方法,進一步包括將系統軟體設置為符號庫,每個符號庫包括具有相關功能的符號;將符號庫排列為非易失性存儲器的代碼存儲段中的代碼段;和,在非易失性存儲器的文件系統段,接收補丁管理器運行時期指令(PMRTI),包括動態指令集和新的代碼段。
4.根據權利要求3所述的方法,其特徵在於,接收動態指令集包括接收診斷指令集,接收新的代碼段包括接收診斷代碼段;所述方法進一步包括在非易失性存儲器的永久存儲區中存儲診斷代碼段;和,其中對動態指令集的處理包括對診斷指令集的處理以用系統軟體執行診斷代碼段。
5.根據權利要求4所述的方法,其特徵在於,對診斷指令集的處理包括收集系統數據。
6.根據權利要求5所述的方法,其特徵在於,對診斷指令集的處理包括根據帶有系統軟體的診斷代碼段的執行,收集系統數據。
7.根據權利要求5所述的方法,其特徵在於,收集系統數據包括在可讀寫易失性存儲器中收集符號的地址和值。
8.根據權利要求5所述的方法,其特徵在於,對診斷指令集的處理包括在文件系統段的第一代碼段存儲收集的系統數據。
9.根據權利要求5所述的方法,其特徵在於,對診斷指令集的處理包括使用條件操作代碼分析收集的數據。
10.根據權利要求9所述的方法,其特徵在於,對系統數據和系統軟體的操作包括根據對收集數據的分析更新系統數據;和,其中對系統軟體的執行包括對更新的系統數據的使用。
11.根據權利要求6所述的方法,其特徵在於,接收診斷代碼段包括接收預定的更新的系統數據集;對診斷指令集的處理包括選擇更新的系統數據集;和,對系統數據和系統軟體的操作包括使用已選擇的更新的系統數據集執行所述系統軟體。
12.根據權利要求11所述的方法,其特徵在於,對診斷代碼段的接收包括接收測試代碼段,所述測試代碼段帶有多個臨時代碼符號庫和相應的約束;對診斷指令集的處理包括執行第一臨時代碼;分析所收集的數據包括比較根據第一臨時代碼的執行而收集的系統數據與相應的約束;對系統數據和系統軟體的操作包括如果收集的系統數據分析合格,依據第一臨時代碼約束暫時更新軟體數據;和,暫時將選擇的系統軟體符號重定向到診斷代碼段的第一臨時代碼符號庫的對應符號;和,對診斷指令集的處理包括如果收集的系統數據分析不合格,執行可選的臨時代碼符號庫。
13.根據權利要求12所述的方法,其特徵在於,將符號庫排列為代碼段包括在代碼段的開始處排列符號庫的開始以及將各符號從各自的代碼段起始地址起偏移;該方法進一步包括在相應的開始地址存儲代碼段的開始;維護代碼段地址表,該表以相應的開始地址相互參照代碼段標識符;維護符號偏移地址表,該表以相應的偏移地址和相應的代碼段標識符參照符號標識符;和,其中執行來自測試代碼段的臨時代碼符號庫包括用診斷代碼段的地址更新符號偏移地址表和代碼段地址表。
14.根據權利要求13所述的方法,其特徵在於,接收診斷代碼段包括接收帶有臨時代碼符號庫和組織為系統數據觸發值的約束;和,分析收集的數據包括將根據執行第一臨時代碼而收集的系統數據與系統數據觸發值的集合比較。
15.根據權利要求13所述的方法,進一步包括經空中鏈路接口傳輸臨時軟體數據更新資料的集合以及暫時重定位的系統軟體符號;在文件系統段接收更新代碼段及更新代碼段地址表和更新符號偏移地址表;和,對診斷指令集的處理包括在永久存儲區存儲更新代碼段以及更新代碼段地址表和符號偏移地址表。
16.根據權利要求8所述的方法,其特徵在於,對診斷指令集的處理包括經空中鏈路接口傳輸收集的系統數據;所述方法進一步包括接收新的補丁管理器運行時期指令,所述新的補丁管理器運行時期指令帶有包括更新數據的新的代碼段;用新的代碼段取代在永久存儲區的第一代碼段;和,用新的代碼段執行所述系統軟體。
17.根據權利要求3所述的方法,其特徵在於,在系統軟體的現場診斷之後,從文件系統段移去動態指令集。
18.在無線通信設備中,一種用於現場診斷系統軟體的方法,所述方法包括執行系統軟體;啟動運行-時期引擎;在非易失性存儲器的文件系統段,接收補丁管理器運行時期指令(PMRTI),包括動態指令集和新的代碼段;按如下的步驟處理動態指令集以現場診斷系統軟體執行診斷指令集及系統軟體以收集數據;分析收集的數據;根據對收集的數據的分析,作業系統數據和系統軟體;以及,在對系統軟體和系統數據操作之後,執行系統軟體。
19.在無線通信設備中用於現場診斷系統軟體的系統,所述系統包括可執行的系統軟體和系統數據,被分入存儲在非易失性存儲器永久存儲區中的代碼段內;動態指令集,用於現場診斷系統軟體;和,運行-時期引擎,用於處理動態指令集。
20.根據權利要求19所述的系統,其特徵在於,現場診斷動態指令集對系統數據和系統軟體進行操作;以及,在動態指令集作業系統軟體和系統數據之後,系統軟體被執行。
21.根據權利要求20所述的系統,其特徵在於,系統軟體被設置進符號庫,每個符號庫包括具有相關功能的符號,在非易失性存儲器代碼存儲段中排列為代碼段;以及,系統進一步包括非易失性存儲器的文件系統段,用來接收包括動態指令集和新的代碼段的補丁管理器運行時期指令(PMRTI)。
22.根據權利要求21所述的系統,其特徵在於,文件系統段接收診斷指令集和診斷代碼段;所述診斷代碼段存儲在非易失性的存儲器中;以及,所述診斷指令集執行所述診斷代碼段及所述系統軟體。
23.根據權利要求22所述的系統,其特徵在於,診斷指令集收集系統數據。
24.根據權利要求23所述的系統,其特徵在於,診斷指令集根據帶有系統軟體的診斷代碼段的執行收集系統數據。
25.根據權利要求23所述的系統,其特徵在於,進一步包括可讀寫易失性存儲器;以及,其中診斷指令集收集存儲在可讀寫易失性存儲器中的符號的地址和值。
26.根據權利要求23所述的系統,其特徵在於,診斷指令集在文件系統段的第一代碼段存儲收集的系統數據。
27.根據權利要求23所述的系統,其特徵在於,診斷指令集使用條件診斷指令集分析收集的數據。
28.根據權利要求27所述的系統,其特徵在於,系統數據依據對所收集的數據的分析更新,系統軟體用更新系統數據執行。
29.根據權利要求24所述的系統,其特徵在於,診斷代碼段包括預定的更新系統數據集;其中診斷動態指令集選擇更新系統數據集;以及,系統軟體用所選擇的更新系統數據集執行。
30.根據權利要求29所述的系統,其特徵在於,所述診斷代碼段包括多個臨時代碼符號庫和相應的約束;診斷指令集執行第一臨時代碼並將根據第一臨時代碼的執行而收集系統數據與相應的約束相比較;如果收集的系統數據分析合格,系統數據根據第一臨時代碼約束暫時更新,並且系統軟體暫時將所選擇的系統軟體符號重定向到診斷代碼段的第一臨時代碼符號庫中的相對應符號;以及,如果收集的系統數據分析不合格,診斷指令集依次執行臨時代碼符號庫。
31.根據權利要求30所述的系統,其特徵在於,所述系統軟體包括起始於代碼段的開始處的符號庫,所排列的符號從各自的代碼起始地址處偏移,代碼段的開始被存儲在相應的開始地址;該系統進一步包括代碼段地址表,用相應的開始地址參照代碼段標識符;符號偏移地址表,它將代碼段標識符與相應的偏移地址交叉引用和將偏移地址和相應的代碼段標識符交叉引用;以及,其中診斷指令集用診斷代碼段中的地址更新符號偏移地址表和代碼段地址表。
32.根據權利要求31所述的系統,其特徵在於,所述診斷代碼段包括組織為系統數據觸發值的約束;診斷指令集通過比較根據執行第一臨時代碼而收集的系統數據和系統數據的觸發值來分析收集的數據。
33.根據權利要求31所述的系統,其特徵在於,進一步包括空中鏈路接口;其中診斷指令集經空中鏈路接口傳輸臨時軟體數據材料和和暫時重定向系統軟體符號的集合,並經空中鏈路接口在文件系統段接收更新代碼段、更新代碼段地址表和更新符號偏移地址表;以及,診斷指令集在永久存儲區存儲更新的代碼段及更新代碼段地址表和符號偏移表。
34.根據權利要求26所述的系統,其特徵在於,進一步包括空中鏈路接口,用於傳輸診斷指令集收集的系統數據;以及,新的補丁管理器運行時期指令,帶有經過所述空中鏈路接口接收的新的代碼段,所述代碼段包括更新的數據;其中診斷指令集用新的代碼段取代永久存儲區中的首次代碼段;以及,其中系統軟體用新的代碼段執行。
35.在無線通信設備中,一種用於現場診斷系統軟體的系統,所述系統包括執行系統軟體和系統數據,所述系統軟體和系統數據被分入非易失性存儲器永久存儲區中的代碼段;非易失性的存儲器的文件系統段,接收包括動態指令集和新的代碼段的補丁管理器運行時期指令(PMRTI);運行-時期引擎,用於處理動態指令集;以及,其中動態指令集通過收集和分析數據來現場診斷系統軟體,並根據對所收集數據的分析來作業系統數據和系統軟體。
全文摘要
一種用於現場診斷無線通信設備中的系統軟體的系統和方法,所述方法包括執行系統軟體;啟動運行-時期引擎;在非易失性存儲器的文件系統段,接收包括動態指令集和新的代碼段的補丁管理器運行時期指令(PMRTI);以及處理動態指令集以現場診斷系統軟體。對動態指令集的處理包括執行帶有系統軟體的診斷指令集以收集數據;分析收集的數據;作業系統數據和系統軟體。所述方法進一步包括在對系統軟體和系統數據操作之後,執行系統軟體。
文檔編號G06F9/445GK1537276SQ02814837
公開日2004年10月13日 申請日期2002年7月23日 優先權日2001年7月26日
發明者高裡·拉賈拉姆, 保羅·澤肯多夫, 迭戈·卡普蘭, 卡普蘭, 澤肯多夫, 高裡 拉賈拉姆 申請人:基奧賽拉無線公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀