国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在小存儲器設備上安裝軟件的系統(tǒng)的制作方法

      文檔序號:12287763閱讀:404來源:國知局
      用于在小存儲器設備上安裝軟件的系統(tǒng)的制作方法與工藝

      本發(fā)明涉及在小存儲器設備上無線下載和安裝計算機程序。例如,小存儲器設備可以是電子設備諸如遙控設備,其典型地具有與其他較復雜電子設備諸如智能電話相比的小存儲器。



      背景技術:

      遙控設備可以使用不同的技術與消費者設備交互。眾所周知的傳統(tǒng)紅外技術使遙控設備能夠控制消費者設備。遙控設備具有用以發(fā)送包括命令代碼的紅外信號的紅外發(fā)射機,而消費者設備具有用以接收紅外信號并且提取命令代碼的紅外接收機。響應于命令代碼,消費者設備可以執(zhí)行動作。例如,消費者設備可以是TV并且遙控設備正被用戶用來發(fā)送使TV切換到下一個頻道或提高音量的命令代碼。

      當代遙控設備(還)可以具有用來與家中的其他設備交互并從主機設備無線地下載用于遙控設備的軟件更新的基于無線電的能力。例如,基于無線電的能力可以基于ZigBee RF4CE技術(還參見:http://www.zigbee.org/Specifications/ZigBeeRF4CE/Overview.aspx(ZigBee聯(lián)盟的網(wǎng)站),如在2014年5月22日被商議的)。軟件更新典型地包括用于遙控設備的固件,包括用來與各種設備交互的命令代碼的最新數(shù)據(jù)庫。新軟件的所述無線下載和安裝常見地被稱為通過無線下載(OAD)。OAD可以被用來在遙控設備的生產(chǎn)過程期間在遙控設備上接收和安裝軟件。主機設備可以建立與遙控設備的無線連接,然后向遙控設備無線地發(fā)送軟件。

      然而,在高容量生產(chǎn)過程中在遙控上安裝新軟件仍是在生產(chǎn)過程中的相對低效率的過程。在其中生產(chǎn)的低成本和高速度是重要的高容量生產(chǎn)過程(諸如遙控設備的生產(chǎn)過程)中情況特別是這樣。在使用OAD的新軟件的安裝期間,需要例如通過使用屏蔽箱來保護主機設備和遙控設備不受附近的其他(遙控)設備的影響以便防止干擾。被與屏蔽箱內部的它自己的主機設備配對的其他遙控設備中的每個可以在它自己的屏蔽箱之內執(zhí)行它自己的安裝。以用于每個設備執(zhí)行其自己的軟件安裝的屏蔽箱的使用是麻煩的并且限制生產(chǎn)過程的速度。由于本身下載可能是相對慢的過程的事實,生產(chǎn)過程的低效率被進一步加重。

      此外,在存儲器(并且因此成本)方面,安裝過程是低效率的,因為其在安裝過程期間要求附加存儲器。新軟件的安裝要求遙控設備以首先下載并存儲新軟件在附加存儲器中,然后驗證下載的軟件并且最后蓋寫(overwrite)在遙控設備的存儲器中的現(xiàn)存軟件。附加存儲器因此被主要用于下載新軟件并且在其他時間大部分未使用,這使存儲器的使用低效率。存儲器的高效使用在諸如遙控設備的小存儲器設備的高容量生產(chǎn)過程中具有特別的重要性,其中存儲器大小被保持到最小以減小成本和材料清單。



      技術實現(xiàn)要素:

      目標技術問題是提供與現(xiàn)有技術相比具有提高的效率的用于在小存儲器設備上安裝軟件的系統(tǒng)、方法和設備。

      本發(fā)明的方面是一種設備,其具有:程序存儲器,其是用于包含計算機程序的存儲器;啟動存儲器,其包括被布置用于啟動所述設備的啟動加載器;處理器,其用于運行計算機程序和啟動加載器;接收單元,其用于無線地接收數(shù)據(jù)分組,計算機程序的部分由相應的數(shù)據(jù)分組中的至少一些組成,啟動加載器被進一步布置用于安裝計算機程序,包括:檢測數(shù)據(jù)分組中的一個數(shù)據(jù)分組,檢測是接收所述數(shù)據(jù)分組的部分;從所述數(shù)據(jù)分組提取如下中的至少一個(a)計算機程序的部分和與所述部分相關的部分元數(shù)據(jù)以及(b)與共同形成計算機程序的部分的集合相關的程序元數(shù)據(jù);基于所述部分元數(shù)據(jù)確定程序存儲器中的存儲器位置;維持表示已被存儲在程序存儲器中的所提取部分的進度信息;基于進度信息和程序元數(shù)據(jù)來確定存儲所述部分的集合的完成。

      例如,設備可以是小存儲器設備諸如遙控、電子玩具、可穿戴設備或音樂播放器。本身實際上作為小計算機,設備包括用于執(zhí)行計算機程序和啟動加載器的處理器。設備還包括用于存儲計算機程序的程序存儲器。設備進一步包括啟動存儲器,其包括用于啟動設備的啟動加載器。設備還具有用于接收數(shù)據(jù)分組的接收單元。

      程序存儲器可能不具有比存儲計算機程序所需要的多得多的可用存儲器。例如,程序存儲器大到足以包含計算機程序并且同時可能(但不需要)太小而不能還包含計算機程序的附加副本。在后者的情況下,程序存儲器因此不能包含計算機程序和計算機程序的附加副本,使得啟動加載器不能在蓋寫程序存儲器中的先前安裝的計算機程序之前首先下載計算機程序。例如,需要被安裝的計算機程序可以包括針對該設備的新固件并且還可以包括更新的設置數(shù)據(jù)庫。

      除了其啟動設備的典型任務之外,啟動加載器被進一步布置成在設備上安裝計算機程序。當被處理器執(zhí)行時,啟動加載器可以如下那樣起作用。啟動加載器使用接收單元來覺察出(sniff for)包括數(shù)據(jù)分組的無線信號。當數(shù)據(jù)分組被檢測到時,啟動加載器可以進一步經(jīng)由接收單元接收數(shù)據(jù)分組。啟動加載器然后可以從數(shù)據(jù)分組提取計算機程序的部分和與部分相關的部分元數(shù)據(jù)。然后,啟動加載器可以基于部分元數(shù)據(jù)來確定程序存儲器中用于存儲部分的存儲器位置。例如,數(shù)據(jù)分組可以具有包括與部分相關的相對存儲器位置的報頭。啟動加載器因此可以通過相對存儲器位置加上程序存儲器的預定開始存儲器位置而確定程序存儲器中的(絕對)存儲器位置。部分然后可以被存儲在所確定的存儲器位置處。

      啟動加載器可以以與其他數(shù)據(jù)分組類似的方式繼續(xù)直到其確定計算機程序的安裝已被完成為止。計算機程序的安裝在共同形成計算機程序的部分的集合已被存儲在程序存儲器上時已被完成。換言之,安裝在共同形成計算機程序的所有部分已被存儲在程序存儲器中時已被完成。已完成計算機程序的安裝之后,啟動加載器然后可以進一步通過執(zhí)行新安裝的計算機程序來啟動設備。

      啟動加載器可以從數(shù)據(jù)分組提取與共同形成計算機程序的部分的集合相關的程序元數(shù)據(jù)。例如,程序元數(shù)據(jù)可以包括表示共同形成計算機程序的部分的總量的數(shù)量。此外,啟動加載器可以維持表示已被存儲在程序存儲器中的所提取部分的進度信息。例如,啟動加載器可以保持其已安裝在程序存儲器中的部分的數(shù)量的計數(shù),進度信息因此是所述計數(shù)。啟動加載器可以基于進度信息和程序信息來確定存儲部分的集合的完成。例如,當被存儲部分的所述計數(shù)匹配部分的總量時,啟動加載器確定共同形成計算機程序的所有部分已被存儲在程序存儲器中。

      數(shù)據(jù)分組可以包括部分和與該部分相關的部分元數(shù)據(jù)以及程序元數(shù)據(jù)。替選地,數(shù)據(jù)分組可以包括(a)部分和部分元數(shù)據(jù)或者(b)程序元數(shù)據(jù)。在后者的情況下,不是每個數(shù)據(jù)分組都包括計算機程序的部分。

      本發(fā)明的效果在于:計算機程序由啟動加載器在小存儲器設備上的安裝在存儲器方面具有提高的效率。程序存儲器要求僅大到足以存儲計算機程序。程序存儲器中的還用以存儲計算機程序的附加副本的附加空間對于計算機程序的安裝而言不需要。安裝因此在存儲器方面具有提高的效率。

      可選地,啟動加載器被布置用于以輪詢形式接收數(shù)據(jù)分組的集合,數(shù)據(jù)分組的集合共同包括部分的集合,數(shù)據(jù)分組的集合在單個輪詢周期之內被發(fā)送??梢栽趩蝹€輪詢周期中接收共同形成計算機程序的所有部分,但如果某些部分的接收由于某些原因而失敗,則可以在任何緊接的輪詢周期期間接收那些部分。因此,部分的接收針對失敗的接收部分而言變得穩(wěn)健,從而防止設備由于安裝期間的失敗而變成“磚砌的(bricked )”。其還允許在失敗的安裝的情況下,重啟設備使得啟動加載器可以重啟計算機程序的安裝。

      可選地,部分的集合是連續(xù)形成計算機程序的連續(xù)部分,并且部分元數(shù)據(jù)包括與連續(xù)部分中的部分的排序(rank)相關的信息。例如,集合包括100個連續(xù)部分,其是部分#1、部分#2……直到部分#100。則部分#60的部分元數(shù)據(jù)例如可以是號碼60,表示部分#60在連續(xù)部分中的排序。因此可以根據(jù)部分的排序來連續(xù)的接收它們。

      本發(fā)明的另一方面是一種用于在設備上安裝計算機程序的系統(tǒng),其包括被布置用于發(fā)送數(shù)據(jù)分組的主機設備,數(shù)據(jù)分組中的至少一些包括計算機程序的相應部分,主機設備具有用于無線地發(fā)送數(shù)據(jù)分組的發(fā)送單元;設備具有:程序存儲器,其是用于包含計算機程序的存儲器;啟動存儲器,其包括被布置用于啟動所述設備的啟動加載器;處理器,其用于運行計算機程序和啟動加載器;接收單元,其用于無線地接收數(shù)據(jù)分組,啟動加載器被進一步布置用于安裝計算機程序,包括:檢測數(shù)據(jù)分組中的一個數(shù)據(jù)分組,檢測是接收所述數(shù)據(jù)分組的部分;從所述數(shù)據(jù)分組提取如下中的至少一個(a)計算機程序的部分和與所述部分相關的部分元數(shù)據(jù)以及(b)與共同形成計算機程序的部分的集合相關的程序元數(shù)據(jù);基于所述部分元數(shù)據(jù)確定程序存儲器中的存儲器位置;維持表示已被存儲在程序存儲器中的所提取部分的進度信息;以及基于進度信息和程序元數(shù)據(jù)來確定存儲所述部分的集合的完成。

      系統(tǒng)因此包括所述設備,所述設備包括啟動加載器(與上面的是本發(fā)明的方面的所述設備一致)和主機設備。主機設備可以發(fā)送可以由所述設備接收的數(shù)據(jù)分組。例如,系統(tǒng)可以是用于遠程設備的生產(chǎn)線的部分,并且主機設備可以向是遙控設備的所述設備發(fā)送包括新固件的相應部分的分組。

      可選地,系統(tǒng)包括根據(jù)設備的多個設備,多個設備中的每個在對應于部分的集合的相應不同初始部分的相應不同時刻處發(fā)起檢測。效果在于:當計算機程序正在被安裝在多個小存儲器設備上時在速度方面,安裝具有提高的效率。多個設備中的一個可以與在附近的多個設備中的另一個的安裝同時地執(zhí)行其安裝。每個設備不要求與其相應的自己的主機設備的配對連接。替代地,多個設備可以獨立地覺察出并接收來自相同的、單個主機設備的相同數(shù)據(jù)分組。因此,不存在對可以同時安裝計算機程序的多個設備的量的限制,只要多個設備在單個主機設備的范圍內使得它們可以接收數(shù)據(jù)分組。在多個設備上安裝計算機程序的速度因此與現(xiàn)有技術相比極大地增加。

      本發(fā)明的另一方面是一種供在系統(tǒng)中使用的主機設備,包括:處理器,其被布置用于以輪詢形式發(fā)送數(shù)據(jù)分組的集合,數(shù)據(jù)分組中的每個數(shù)據(jù)分組包括計算機程序的部分,數(shù)據(jù)分組的集合共同包括共同形成計算機程序的部分的集合,所述數(shù)據(jù)分組的集合在單個輪詢周期之內被發(fā)送;以及發(fā)送單元,其用于無線地發(fā)送數(shù)據(jù)分組。這不僅允許多個設備并行地安裝計算機程序,而且允許多個設備中的每個在一輪周期期間或在下一輪詢周期期間的任何時間處開始其安裝。這在速度以及更實用兩方面進一步增加用于計算機程序在多個設備上的安裝的效率。

      本發(fā)明的另一方面是一種計算機程序產(chǎn)品,其包括指令,所述指令用于當其正被處理器執(zhí)行時使主機設備的處理器實行以下步驟:確定來自計算機程序的部分;確定與部分相關的部分元數(shù)據(jù);以及編寫包括部分和部分元數(shù)據(jù)的數(shù)據(jù)分組。

      本發(fā)明的另一方面是一種用于在設備上安裝計算機程序的方法,所述設備具有:是用于包含計算機程序的存儲器的程序存儲器;包括被布置用于啟動所述設備的啟動加載器的啟動存儲器;用于運行計算機程序和啟動加載器的處理器;以及用于無線地接收數(shù)據(jù)分組的接收單元,計算機程序的部分由相應的數(shù)據(jù)分組中的至少一些組成,所述方法包括:檢測數(shù)據(jù)分組中的一個數(shù)據(jù)分組,檢測是接收所述數(shù)據(jù)分組的部分;從所述數(shù)據(jù)分組提取如下中的至少一個(a)計算機程序的部分和與所述部分相關的部分元數(shù)據(jù),以及(b)與共同形成計算機程序的部分的集合相關的程序元數(shù)據(jù);基于所述部分元數(shù)據(jù)確定程序存儲器中的存儲器位置;維持表示已被存儲在程序存儲器中的所提取部分的進度信息;以及基于進度信息和程序元數(shù)據(jù)來確定存儲所述部分的集合的完成。

      本發(fā)明的另一方面是一種包括啟動加載器的計算機程序產(chǎn)品,所述啟動加載器包括指令,所述指令在啟動加載器被處理器執(zhí)行時使處理器實行權利要求14的方法。

      附圖說明

      本發(fā)明的這些和其他方面從下文描述的實施例而顯而易見,并且將參考在下文描述的實施例而被闡明。

      在繪圖中,

      圖1a圖示用于在小存儲器設備上安裝計算機程序的系統(tǒng),

      圖1b圖示包括多個小存儲器設備的系統(tǒng),

      圖2a圖示在計算機程序的輪詢安裝期間的兩個小存儲器設備的存儲器和主機設備的存儲器,

      圖2b圖示在安裝計算機程序的完成時的小存儲器設備的存儲器,

      圖2c圖示在計算機程序的替選輪詢安裝期間的小存儲器設備和主機設備的存儲器,

      圖2d圖示在存儲計算機程序的最后部分時、對部分重新排序之前的小存儲器設備的存儲器,以及

      圖3圖示用于在小存儲器設備上安裝計算機程序的方法。

      應注意到,在不同圖中具有相同參考號碼的項具有相同的結構特征和相同的功能。在這樣的項的功能和/或結構已被解釋的場合,在詳細描述中不存在對其重復解釋的必要。

      具體實施方式

      圖1a圖示用于在小存儲器設備DEV 110上安裝計算機程序的系統(tǒng)100。系統(tǒng)100包括主機設備HST 180(在下文:主機HST)和小存儲器設備DEV(在下文:設備DEV)。主機HST具有發(fā)送單元SND 190。設備DEV具有接收單元RCV 170,啟動存儲器MBOOT 120、程序存儲器MPROG 130、主動式存儲器(active memory)MACT 140以及處理器PROC 150。處理器PROC可以分別通過連接152-153和171而與啟動存儲器MBOOT、程序存儲器MPROG、主動式存儲器MACT和接收單元RCV交換數(shù)據(jù)。

      主機HST可以按部分經(jīng)由發(fā)送單元SND 190發(fā)送計算機程序,每個部分由相應的數(shù)據(jù)分組組成。計算機程序作為整體因此由數(shù)據(jù)分組的集合共同組成。主機HST發(fā)送可以包含數(shù)據(jù)分組的無線信號191。主機HST可以包括在圖1a中未示出的其他元件,諸如處理器、主機存儲器、以及用以連接到另一網(wǎng)絡和/或互聯(lián)網(wǎng)的網(wǎng)絡通信單元。

      主機HST可以具有存儲在其主機存儲器中的計算機程序并且可以如下從計算機程序來確定數(shù)據(jù)分組。主機HST首先將計算機程序劃分成連續(xù)部分。所述部分可以在大小方面不同或可以具有相等的大小。主機通過將報頭預置(pre-pend)到部分而編寫數(shù)據(jù)分組。報頭可以包括與該部分相關的部分元數(shù)據(jù)。例如,報頭可以包括分組標識符、用于存儲該部分的相對存儲器位置以及由數(shù)據(jù)分組組成的該部分的大?。ò醋止?jié)計)。報頭可以替代地包括(或還包括)與共同形成計算機程序的部分的集合相關的程序元數(shù)據(jù)。例如,程序元數(shù)據(jù)可以包括共同形成計算機程序的部分的總數(shù)?;蛘撸鳛榱硪皇纠?,程序元數(shù)據(jù)可以包括計算機程序的按字節(jié)計的總大小。

      在實施例中,每個數(shù)據(jù)分組具有類似的格式和內容。例如,每個數(shù)據(jù)分組可以包括部分、相關的部分元數(shù)據(jù)并且還可以包括程序元數(shù)據(jù)。在另一實施例種,兩種類型的數(shù)據(jù)分組可以存在。第一類型的數(shù)據(jù)分組可以包含部分和相關的部分元數(shù)據(jù),而第二類型的數(shù)據(jù)分組可以包含程序元數(shù)據(jù)。主機HST可以僅偶爾發(fā)送第二類型的數(shù)據(jù)分組,因為處理器PROC不需要在每個連續(xù)的數(shù)據(jù)分組中接收相同的程序元數(shù)據(jù)。

      考慮數(shù)據(jù)分組的以下示例。分組標識符可以是號碼。包括計算機程序的第一部分的數(shù)據(jù)分組可以具有是號碼1的分組標識符。包括第二部分的數(shù)據(jù)分組可以具有是號碼2的分組標識符,等等。計算機程序例如可以包括500千字節(jié),其被劃分成500個每個1024字節(jié)(1 kb)的部分,使數(shù)據(jù)分組的總數(shù)是500。500個數(shù)據(jù)分組的集合然后共同包括所有部分(其共同包括計算機程序),并且集合中的每個數(shù)據(jù)分組因此包括計算機程序的相應部分。部分的相對存儲器位置可以指示其在存儲器中相對于程序存儲器MPROG中的開始位置的位置。例如,包括計算機程序的第一部分的數(shù)據(jù)分組可以具有相對存儲器位置0000(零),包括計算機程序的第二部分的數(shù)據(jù)分組可以具有相對存儲器位置1024,第三部分然后與存儲器位置2048相關,等等。此外,注意到,如果數(shù)據(jù)分組報頭具有例如64字節(jié)的固定大小,則數(shù)據(jù)分組的大小變成1088。

      部分可以具有相同大小但也可以在大小方面不同。如果所有部分具有相同大小,則可以基于所述大小和相應分組號碼以簡單的方式來計算部分的相對存儲器位置:相對存儲器位置然后被計算為(分組號碼-1)x部分大小。相對存儲器位置然后不需要被明確地包括在報頭中。替選地,該部分具有相應的不同大小。在該情況下,相對存儲器位置的計算不太簡單并且將相對存儲器位置包括在報頭中可能因此是有益的。

      替代地,數(shù)據(jù)分組可以包括用于將部分存儲在程序存儲器MPROG中的絕對存儲器位置而不是相對存儲器位置。該部分然后被直接存儲在程序存儲器MPROG中的絕對存儲器位置處。

      設備DEV具有啟動存儲器MBOOT,其可以是包括啟動加載器的非易失性存儲器。啟動加載器包括用來啟動設備DEV的軟件。在處理器PROC將啟動加載器加載到主動式存儲器MACT中并且隨后執(zhí)行啟動加載器時實行設備DEV的啟動。除啟動設備DEV之外,在本發(fā)明中的啟動加載器還包括用來執(zhí)行計算機程序的安裝的軟件功能。計算機程序的安裝包括將計算機程序存儲在是非易失性存儲器的程序存儲器MPROG中。

      當由處理器PROC執(zhí)行啟動加載器時,設備DEV可以如下操作。

      在處理器PROC執(zhí)行啟動加載器時,設備DEV開始“覺察” 出正在由主機HST發(fā)送的數(shù)據(jù)分組。覺察出數(shù)據(jù)分組暗示設備DEV經(jīng)由接收單元RCV接收無線信號191并且針對數(shù)據(jù)分組的存在而檢查無線信號。例如,處理器可以通過檢測標記來自主機HST的任何數(shù)據(jù)分組的開始的預定數(shù)據(jù)序列來檢測數(shù)據(jù)分組。設備DEV然后可以接收整個數(shù)據(jù)分組。例如,每個數(shù)據(jù)分組可以被限于預定數(shù)量的字節(jié),使得處理器DEV被要求從所述數(shù)據(jù)分組的開始接收所述預定數(shù)量的字節(jié),以便接收整個數(shù)據(jù)分組。

      數(shù)據(jù)分組可以被寫入在主動式存儲器MACT中。數(shù)據(jù)分組可以具有固定的報頭大小并且處理器PROC可以從數(shù)據(jù)分組提取報頭。報頭可以包括部分的大?。ɡ?,部分包括1024字節(jié)),使得處理器PROC可以確定包含該部分的主動式存儲器中的存儲器位置。處理器PROC然后可以從主動式存儲器MACT讀取該部分。處理器PROC然后已從數(shù)據(jù)分組提取了報頭和該部分兩者。

      上面的實施例包括是易失性存儲器的主動式存儲器MACT,盡管替代地使用非易失性存儲器在技術上也可以是可能的。目前,由于與非易失性存儲器相比較的從易失性存儲器讀取或者向易失性存儲器寫入的高得多的速度,易失性存儲器典型地對于許多應用是優(yōu)選的。然而,由于硬件創(chuàng)新,將來的非易失性存儲器自然地被預期具有與目前非易失性存儲器相比的更高的速度。針對某些實施例,將來的非易失性存儲器的速度可能變得對于在主動式存儲器MACT中使用而言可接受。使用將來的非易失性存儲器的這樣的實施例的示例可能可以是設備DEV,其為用于控制消費者設備的遙控設備。

      為了驗證數(shù)據(jù)分組的完整性,報頭還可以包括分組校驗和。處理器PROC可以驗證分組校驗和以及接收到的數(shù)據(jù)分組是否一致。如果情況不是這樣,則處理器PROC可以斷定接收到的數(shù)據(jù)分組被破壞,并且在響應中,可以終止對所述數(shù)據(jù)分組的進一步處理。處理器PROC然后可以通過覺察出另一數(shù)據(jù)分組而繼續(xù)。處理器PROC還可以從報頭提取相對存儲器位置,如上面提及的那樣。處理器PROC然后可以確定程序存儲器MPROG中用于存儲部分的絕對存儲器位置。所述絕對存儲器位置可以通過相對存儲器位置加上程序存儲器中的預定開始存儲器位置而被確定。處理器PROC然后可以在程序存儲器MPROG中的所述絕對存儲器位置處存儲(寫入)提取的部分。

      應注意到,在下文中,“將部分存儲在程序存儲器MPROG中”將也被稱為“安裝部分”。以類似的方式,當共同形成計算機程序的所有部分被存儲在程序存儲器MPROG中時已“安裝”計算機程序,每個部分被存儲在程序存儲器MPROG中的其適當?shù)拇鎯ζ魑恢锰帯?/p>

      在安裝該部分之后或期間,處理器PROC可以通過覺察出下一數(shù)據(jù)分組并且針對所述下一分組重復上面的過程而繼續(xù)。處理器PROC可以繼續(xù)接收數(shù)據(jù)分組和安裝相應部分的過程直到共同形成計算機程序的所有部分被安裝為止。將計算機程序安裝在設備DEV上然后被完成。

      確定存儲所有部分的完成可能如下那樣工作。處理器PROC可以保持對已被安裝的計算機程序的所有部分的跟蹤??紤]以下示例。處理器PROC從數(shù)據(jù)分組的報頭確定部分的總量是500。程序元數(shù)據(jù)因此包括是500的所述總量。處理器PROC然后可以通過維持500個標志的列表而保持跟蹤:每個標志對應于分組號碼并且表明對應部分是否已經(jīng)被安裝。例如,標志#25對應于分組號碼#25并且表明部分#25是否已被安裝。程序元數(shù)據(jù)因此包括分組號碼#25,其因此表示連續(xù)部分#1-#500的排序#25的部分。在安裝第一部分之前,通過將列表的所有標志設置成0(零)來初始化列表。然后,每次處理器PROC安裝部分時,其將該部分的對應標志設置成1(一)。處理器PROC在確定所述列表的所有標志被設置成1時確定所有500個部分已被安裝。

      替代地,程序元數(shù)據(jù)包括由計算機程序組成的字節(jié)的總數(shù)。處理器PROC可以保持對已被存儲在程序存儲器MPROG中的部分的字節(jié)的累積數(shù)量的計數(shù)。在安裝最后部分使得字節(jié)的累積數(shù)量匹配字節(jié)的所述總數(shù)時,處理器PROC可以確定共同形成計算機程序的所有部分已被存儲在程序存儲器MPROG中。

      主機HST可以以所謂的輪詢形式來發(fā)送部分。這暗示主機HST以周期的方式來發(fā)送所有部分??紤]以下示例,再次涉及是500的部分的總量。500個部分對應于總量500的相應數(shù)據(jù)分組。以輪詢形式發(fā)送500個數(shù)據(jù)分組暗示主機HST在單個輪詢周期中連續(xù)地發(fā)送所有500個數(shù)據(jù)分組,并且然后繼續(xù)進行下一輪詢周期,其中主機HST再次連續(xù)地發(fā)送所有數(shù)據(jù)分組。在輪詢周期中,主機HST首先發(fā)送數(shù)據(jù)分組#1,然后發(fā)送數(shù)據(jù)分組#2,然后發(fā)送數(shù)據(jù)分組#3,等等。在發(fā)送數(shù)據(jù)分組#500之后,主機HST通過再次發(fā)送數(shù)據(jù)分組#1、然后#數(shù)據(jù)分組#2等等而開始下一周期。

      因此,設備DEV也可以以輪詢形式接收部分,并且因此也可以相應地以輪詢形式來安裝相應部分。設備DEV可以在輪詢周期中的任何階段處開始覺察和接收。例如,設備DEV接收包括部分#100的是數(shù)據(jù)分組#100的其第一數(shù)據(jù)分組。因此,如果設備DEV連續(xù)地接收和安裝由主機HST發(fā)送的部分,則設備DEV首先在第一輪詢周期期間安裝部分#100到#500,然后在第二輪詢周期期間安裝部分#1到#99。

      如果設備DEV出于某原因而未能在第一輪詢周期期間接收和/或安裝數(shù)據(jù)分組,則其可以在下一輪詢周期期間僅接收和安裝該數(shù)據(jù)分組。繼續(xù)利用先前的示例,如果設備DEV未能在第一輪詢周期期間接收數(shù)據(jù)分組#200,則下一輪詢周期將如下那樣繼續(xù):設備DEV安裝部分#1到#99(如上面那樣),然后跳過部分#100到#199,并且最后接收和安裝部分#200。

      圖1b圖示包括多個小存儲器設備110-113的系統(tǒng)199。系統(tǒng)199有效地包括系統(tǒng)100和三個附加(小存儲器)設備111-113。以輪詢形式安裝部分在具有多個設備110-113的系統(tǒng)199中特別有用。多個設備110-113中的每個可以在輪詢周期(或針對該事件的下一輪詢周期)的不同階段處開始接收數(shù)據(jù)分組。然而多個設備110-113中的每個可以同時地從相同的單個主機HST接收相同數(shù)據(jù)分組并且隨后安裝相應的相同部分。不存在對可以被添加到系統(tǒng)100或系統(tǒng)199的(小存儲器)設備的量的限制,因為設備中的每個并行地從主機HST接收和安裝部分。唯一的要求是多個設備中的每個在主機HST的范圍內以便接收由主機HST發(fā)送的數(shù)據(jù)分組。這在加速在多個設備(是大的設備組)上安裝計算機程序的意義上呈現(xiàn)很多益處。

      圖2a圖示在計算機程序的輪詢安裝期間的主機存儲器MHST 200和兩個程序存儲器MPROG1 210及MPROG2 220。程序存儲器MPROG1和MPROG2分別是兩個小存儲器設備DEV1和DEV2中的存儲器。主機存儲器MHST是主機HST的存儲器。主機存儲器MHST包含計算機程序,其形式為在相應存儲器位置201-208處的(八個)部分A-H。部分A-H共同形成計算機程序。主機HST可以以輪詢形式發(fā)送部分A-H。設備DEV1和DEV2然后可以在它們的相應程序存儲器MPROG1和MPROG2中從主機HST接收部分并且對其進行安裝。

      主機HST具有在其主機存儲器MHST的存儲器位置203處的當前讀取位置。當前讀取位置由指針CURR0指示。主機HST讀取部分C、編寫包含部分C和相對存儲器位置(具有相對存儲器位置的報頭)的數(shù)據(jù)分組,并且經(jīng)由發(fā)送單元SND發(fā)送數(shù)據(jù)分組。

      設備DEV1接收數(shù)據(jù)分組并且提?。╝)部分和(b)相對存儲器位置。設備DEV1通過相對存儲器位置加上其開始存儲器位置211來確定絕對存儲器位置213。例如,開始存儲器位置具有值128并且相對存儲器位置具有值2048,使得絕對存儲器位置的值變成2176。因此,設備DEV1將其當前寫入位置設置成絕對存儲器位置,其由指針CURR1來指示,然后將部分C存儲(寫入)在其程序存儲器MPROG1的存儲器位置213處。設備DEV2執(zhí)行類似的過程:設備DEV2接收數(shù)據(jù)分組、確定(絕對)存儲器位置223,以及將部分C存儲在存儲器位置223處。指針CURR2指示設備DEV2的當前寫入位置。

      主機HST以由箭頭260指示的輪詢形式發(fā)送部分。在本示例中,主機HST僅已發(fā)送了部分C。將由主機HST發(fā)送的下一部分將因此是部分D,并且在其之后是部分E,等等。在已發(fā)送了部分H之后,主機HST將然后通過再次發(fā)送部分A而繼續(xù)。在DEV1首先開始覺察之后,主機HST發(fā)送了部分B,僅僅就在相同輪詢周期內發(fā)送當前部分C之前。設備DEV1因此首先檢測到包括部分B的數(shù)據(jù)分組,并且因此部分B是被DEV1安裝的第一部分。在該示例中,設備DEV1現(xiàn)在已安裝部分B和C。指針START1指示第一部分由設備DEV1存儲在其存儲器位置212處。程序存儲器MPROG1中的圖案填充區(qū)域指示部分B和C已被分別存儲在存儲器212和213處。箭頭261指示DEV1以次序B、C安裝部分。

      就在主機HST發(fā)送部分G之前,DEV2首先已在先前輪詢周期期間開始覺察。設備DEV2因此已首先檢測到包括部分G的數(shù)據(jù)分組,并且因此部分G是由DEV2安裝的第一部分。在該示例中,設備DEV2現(xiàn)在已安裝了部分G、H、A、B和C。指針START2指示設備DEV2將其第一部分存儲在存儲器位置227處。程序存儲器MPROG2中的圖案填充區(qū)域指示部分G、H、A、B和C已被分別存儲在存儲器位置227、228、221、222和223處。箭頭262指示DEV2以次序G、H、A、B、C安裝部分。

      DEV1仍具有六個部分“未完成”,因此DEV1仍需要安裝部分D-H和A,以便完成所有部分A-H的安裝。DEV2僅具有三個部分“未完成”,因此DEV2仍需要安裝部分D-F,以便完成所有部分A-H的安裝。如果設備DEV1和DEV2兩者都以輪詢形式接收和安裝由主機HST發(fā)送的下一部分,則DEV2將在DEV1完成所有部分的安裝之前完成所有部分的安裝。圖2b圖示在完成安裝計算機程序時的程序存儲器MPROG1和MPROG2。兩個存儲器MPROG1和MPROG2分別在其相應的存儲器位置211-218和221-228中包括所有部分A-H。

      圖2c圖示在計算機程序的替選輪詢安裝期間的兩個程序存儲器MPROG1 210、MPROG2 220以及主機存儲器MHST 200。在圖2c中,主機HST和其主機存儲器MHST與圖2a的主機HST和其主機存儲器MHST是同樣的。與圖2a的情形的差別在于設備DEV1和DEV2已分別在其開始存儲器位置211和221處開始存儲部分。設備DEV1和DEV2根據(jù)接收部分的次序在其相應的程序存儲器MPROG1和MPROG2中的連續(xù)存儲器位置處存儲連續(xù)部分。設備DEV1因此在相應的連續(xù)存儲器位置213-218處存儲緊接的部分D-H和A。同樣地,設備DEV2因此在相應的連續(xù)存儲器位置225-228處存儲連續(xù)部分D-F。在已存儲所有部分A-H之后,設備DEV1和DEV2后來對在其相應的程序存儲器MPROG1和MPROG2之內的部分重新排序,使得該部分的次序變得與圖2b相應。

      圖2d圖示在存儲計算機程序的所有部分之后并且在對部分重新排序之前的兩個程序存儲器MPROG1和MPROG2。在確定所有部分A-H已被存儲在其存儲器中時,設備DEV1對部分重新排序使得部分A-H如在圖2b中描繪的那樣被存儲在其程序存儲器MPROG1中。同樣地,在確定所有部分A-H已被存儲在其存儲器中時,設備DEV2對部分重新排序使得部分A-H如在圖2b中描繪的那樣被存儲在其程序存儲器MPROG2中。

      在圖2c中,設備DEV1和DEV2確定與在圖2a中不同的用于存儲部分的絕對存儲器位置。例如,針對第一部分B,設備DEV1確定用于存儲部分B的絕對位置是開始存儲器位置211。在接收下一部分C之后,設備DEV1確定用于存儲部分C的絕對存儲器位置是下一存儲器位置,為存儲器位置212。類似地,緊接的部分D-H和A被分別存儲于緊接的存儲器位置213-218。設備DEV1可以維持分組號碼和相應存儲器位置的列表,其表示部分被存儲在程序存儲器MPROG1中所用的次序。在該情況下,所述列表指示以(如圖2d中所示出的)次序B、C、D、E、F、G、H、A來存儲部分?;谒隽斜碇械男畔ⅲO備DEV1然后可以:將部分A從存儲器位置218移動到存儲器位置211,將部分B從存儲器位置211移動到存儲器位置212、將部分C從存儲器位置212移動到存儲器位置213,等等。

      主機HST以輪詢形式發(fā)送部分所用的次序典型地如上面描述的那樣。在輪詢周期內發(fā)送部分的典型次序是A、B、C、D、E、F、G、H。替選地,發(fā)送部分的次序可以與所述典型次序不同。例如,次序可以被顛倒或隨機化。例如,作為將次序隨機化的結果,主機可以在一個輪詢周期中以次序E、D、A、C、G、B、H、F來發(fā)送部分,而主機可以在另一輪詢周期中以另一次序B、F、G、E、D、H、C、A來發(fā)送部分。

      可以以各種方式來初始化計算機程序的安裝。例如,當啟動加載器被執(zhí)行時,啟動加載器可以使設備DEV開始覺察出數(shù)據(jù)分組。啟動加載器可以具有預定超時(time-out)時段,使得當在開始覺察之后的所述超時時段之內沒有檢測到數(shù)據(jù)分組時,設備DEV終止覺察并且繼續(xù)進行啟動設備DEV。相比之下,如果在所述超時時段之內檢測到數(shù)據(jù)分組,則設備DEV安裝由數(shù)據(jù)分組組成的部分,并且開始覺察出下一數(shù)據(jù)分組。

      作為另一示例,啟動加載器可以使設備DEV驗證是否有效計算機程序被存儲在程序存儲器MPROG中,并且可以在確定沒有有效計算機程序被安裝時開始覺察。作為另一示例,啟動加載器可以使設備DEV驗證是否用來操作設備的任何計算機程序被存儲在程序存儲器MPROG中。設備DEV可以在確定沒有計算機程序被安裝時、在確定計算機程序為“空”(例如,僅填充有零)時開始覺察。

      作為另一示例,啟動加載器使設備DEV在檢測到安裝標志被設置成安裝狀態(tài)時發(fā)起覺察。當安裝標志被設置成安裝狀態(tài)時,其表示要求計算機程序的安裝。當安裝標志被設置成非安裝狀態(tài)時,其表示不要求計算機程序的安裝。安裝標志可以是設備DEV的部分??梢皂憫谕獠枯斎攵鴮惭b標志設置成安裝狀態(tài)。例如,如果設備DEV是遙控設備,則外部輸入可以由在遙控設備上輸進(punch in)預定代碼的用戶提供,使遙控設備(a)將安裝標志設置成安裝狀態(tài)以及(b)執(zhí)行重新啟動。如上面提及的那樣,設備DEV然后在(重新)啟動期間檢測到安裝標志被設置成安裝狀態(tài),并且在響應中開始覺察出數(shù)據(jù)分組。在完成計算機程序的安裝時,設備DEV可以將安裝標志設置成非安裝狀態(tài)。替選地,外部輸入可以經(jīng)由設備DEV上的表示安裝標志的手動開關來提供。用戶可以將手動開關手動地設置到第一位置或第二位置中。第一位置可以對應于安裝狀態(tài)并且第二位置可以對應于非安裝狀態(tài)。

      應注意到,在本發(fā)明的背景下,當設備DEV“開始覺察出數(shù)據(jù)分組”時,其暗示設備DEV已開始安裝計算機程序,并且已安裝計算機程序暗示計算機程序被存儲在程序存儲器MPROG中。出于安全目的,數(shù)據(jù)分組可以包括加密。例如,主機HST可以對計算機程序的部分加密并且使用報頭和經(jīng)加密部分來編寫數(shù)據(jù)分組。設備DEV可以接收數(shù)據(jù)分組、從數(shù)據(jù)分組提取經(jīng)加密部分,并且通過對經(jīng)加密部分解密來獲得部分。加密可以確保僅設備DEV或類似的設備可以接收和安裝部分。

      在實施例中,設備DEV是在生產(chǎn)遙控設備的生產(chǎn)設施中的遙控設備。生產(chǎn)設施可以包括具有各種生產(chǎn)狀態(tài)中的遙控設備的生產(chǎn)線。在線的末端,每個遙控設備要求最新固件的安裝。在與由圖1b示意性地圖示的類似的設置中,主機HST在生產(chǎn)線的附近使得多個遙控設備可以接收由主機HST發(fā)送的數(shù)據(jù)分組。例如,主機HST可以是用于發(fā)送數(shù)據(jù)分組的某種專用設備或個人計算機。為了最小化干擾生產(chǎn)設施中的其他裝備的風險,主機HST和遙控設備可以使用不被其他裝備使用的通信或頻帶。然而,在多個遙控設備之間的互相干擾不是問題,因為多個遠程設備從相同主機HST并行地僅正在接收和接收數(shù)據(jù)分組。

      在實施例中,設備DEV具有用于在安裝計算機程序的完成時提供反饋的指示器。例如,設備DEV具有在所述完成時閃爍的LED。作為變體,所述LED在所述完成時將其顏色從紅色改變成綠色。作為另一示例,設備DEV具有用以在所述完成時生成通知或警告的揚聲器。作為另一示例,設備DEV可以具有用于在所述完成時振動的部件。

      在實施例中,設備DEV是無線地可控的燈,諸如由飛利浦生產(chǎn)的“色調個人無線照明”產(chǎn)品。燈的照明屬性可以由中央控制箱控制或者燈可以直接由智能電話控制。中央控制箱可以包括如上面描述的主機HST。用戶可能希望單獨地控制每個燈的亮度、色調和/或飽和度或者聯(lián)合地控制所有燈的亮度、色調和/或飽和度。典型地,起居室將具有多個這樣的無線可控燈。當中央控制箱可以檢測到新固件可用于多個燈時,其可以如下那樣發(fā)起固件升級。中央控制箱向每個燈發(fā)送新固件的版本號碼,并且在響應中,每個燈檢查新固件的版本號碼是否匹配其已安裝固件的版本號碼。在多個燈中的燈檢測到其固件不是最新的情況下,所述燈可以向后向中央控制箱通信其將發(fā)起新固件的安裝:所述燈將其安裝標志設置成“安裝狀態(tài)”并且執(zhí)行重新啟動。在重新啟動時,所述燈然后開始從中央控制箱覺察出數(shù)據(jù)分組。類似地,也具有過時的固件的其他燈可以這樣做,并且并行地還重新啟動和發(fā)起新固件的安裝。當中央控制箱已從至少一個燈接收到其發(fā)起新軟件的安裝時,中央控制箱例如從制造商的網(wǎng)站下載新固件。中央控制箱然后開始發(fā)送包括新固件的數(shù)據(jù)分組。所述燈然后檢測和接收由中央控制箱發(fā)送的數(shù)據(jù)分組并且根據(jù)本發(fā)明開始安裝該固件。

      作為先前實施例的變體,新燈可以被添加到起居室中的所述多個燈并且可以檢查其固件是否是最新的。新燈被安裝在電樞中并且因此經(jīng)由所述電樞被以電氣方式供電。在被供電時,新燈可以無線地聯(lián)系中央控制箱。以與先前實施例中的類似的方式,中央控制箱傳送已被安裝在多個燈中的其他燈上的最新固件,并且在新燈的固件不是最新的情況下,中央控制箱和新燈開始根據(jù)本發(fā)明安裝新固件。

      在實施例中,零售商店具有是媒體播放器的多個小存儲器設備。零售商可能希望將最新固件安裝在商店地板上的所有媒體播放器上。零售商具有被布置成起主機HST的作用的智能電話。最新固件可以被下載到智能電話上,并且智能電話可以以輪詢形式開始發(fā)送計算機程序的部分。通過為媒體播放器供電,媒體播放器可以重新啟動(因此執(zhí)行啟動加載器),然后作為啟動加載器的部分發(fā)起覺察,并且隨后接收和安裝部分。當智能電話保持以輪詢形式發(fā)送部分時,媒體播放器可以被一個接一個地上電,并且每個媒體播放器可以在輪詢周期的不同階段處和/或甚至在不同的輪詢周期中發(fā)起安裝固件。相應媒體播放器的安裝因此不需要同步,其使整個過程實用。用于更新固件的這樣的過程由于其無線和自動性質而是方便的。此外,因為更新媒體播放器上的固件被并行地完成,所以過程也是快速的。

      設備DEV可以是根據(jù)本發(fā)明的任何小存儲器設備。許多這樣的設備現(xiàn)今具有用來例如在家庭環(huán)境、醫(yī)療環(huán)境中或汽車內部連接到其他設備的無線電能力。例如,設備因此可以變得互連并且可以與彼此和/或與設備的本地網(wǎng)絡中的用戶和/或與互聯(lián)網(wǎng)交互。小存儲器設備DEV的示例是遙控設備、無線可控燈(例如,如上面)、媒體播放器、便攜式媒體播放器、電子玩具、數(shù)字表、廚房器具、廚房裝置諸如冰箱或烤箱,以及可穿戴電子裝置。設備DEV可以是用于醫(yī)學目的的設備,諸如血飽和度儀表、可穿戴心搏監(jiān)視器或監(jiān)視病人的生理或身體參數(shù)的另一小存儲器設備。作為又另一示例,設備DEV可以是無線可控數(shù)字標簽,例如充當用于個人識別的姓名標簽或充當用于在零售商店處示出價格的價格標簽。

      由主機HST和設備DEV使用的無線技術可以是任何適當?shù)臒o線技術,諸如RF4CE、Zigbee、WiFi或藍牙的不要求配對的變體。應注意到,本發(fā)明的益處在于啟動加載器在如下意義上可以是非常簡單的:通過啟動加載器的計算機程序的安裝可以工作在所謂的MAC級別上,因此在啟動加載器中不要求RF4CE軟件棧。

      盡管上面已提及程序存儲器MPROG在如下意義上可能是小的:其被定尺寸成不足以不但包含計算機程序而且同時還包含計算機程序的副本。然而,當程序存儲器MPROG為大的使得其被定尺寸成足以包含計算機程序和所述副本兩者時,本發(fā)明將明顯地還工作。在實施例中,程序存儲器MPROG實際上是大的,但然而僅程序存儲器MPROG的小部分可以可用,因為其剩余部分被用于其他目的。

      主機HST可以運行包括用于編寫數(shù)據(jù)分組的指令的軟件。軟件可以被具體化在諸如CD-ROM或固態(tài)存儲器之類的計算機程序產(chǎn)品上。計算機程序產(chǎn)品可以包括指令,所述指令用于在其正由處理器執(zhí)行時使主機HST的處理器實行以下步驟:確定來自計算機程序的部分、確定與該部分相關的部分元數(shù)據(jù),以及編寫包括部分和部分元數(shù)據(jù)的數(shù)據(jù)分組。

      圖3圖示用于在小存儲器設備DEV上安裝計算機程序的方法300。方法300包括步驟301-305。步驟301包括檢測數(shù)據(jù)分組中的一個數(shù)據(jù)分組,檢測是接收所述數(shù)據(jù)分組的部分。步驟302包括從所述數(shù)據(jù)分組提取如下中的至少一個(a)計算機程序的部分和與所述部分相關的部分元數(shù)據(jù),以及(b)與共同形成計算機程序的部分的集合相關的程序元數(shù)據(jù)。步驟303包括基于所述部分元數(shù)據(jù)來確定程序存儲器中的存儲器位置。步驟304包括維持表示已被存儲在程序存儲器中的所提取部分的進度信息。步驟305包括基于進度信息和程序元數(shù)據(jù)來確定存儲所述部分的集合的完成。方法300與可以在系統(tǒng)100中執(zhí)行并且由設備100執(zhí)行的步驟一致。

      方法300可以被具體化在計算機程序產(chǎn)品上。所述計算機程序產(chǎn)品包括啟動加載器,其包括指令,所述指令在啟動加載器由處理器PROC執(zhí)行時使處理器PROC實行方法300。例如,計算機程序產(chǎn)品可以是CD-ROM或固態(tài)存儲器。應注意到,上面提及的實施例圖示而不是限制本發(fā)明,并且本領域那些技術人員將能夠設計許多替選實施例而不脫離所附權利要求的范圍。將由本領域那些技術人員領會到,可以以認為有用的任何方式來組合本發(fā)明的上面提及的實施例、實現(xiàn)和/或方面中的兩個或更多。

      與監(jiān)視子系統(tǒng)的描述的修改和變化對應的系統(tǒng)、設備、主機設備、方法或計算機程序產(chǎn)品的修改和變化可以由本領域技術人員在本描述的基礎上來實現(xiàn)。

      在權利要求中,放置在圓括號之間的任何參考符號將不被解釋為限制權利要求。動詞“包括”和動詞變化的使用不排除不同于權利要求中陳述的那些的元件或步驟的存在。在元件之前的冠詞“一”或“一個”不排除多個這樣的元件的存在。本發(fā)明可以借助于包括若干不同元件的硬件并且借助于被適當?shù)鼐幊痰挠嬎銠C來實現(xiàn)。在列舉若干部件的設備(或系統(tǒng))權利要求中,這些部件中的若干可以由同一硬件項來具體化。在互相不同的從屬權利要求中敘述了某些措施的純粹事實不指示這些措施的組合不能被用來得益。

      在獨立權利要求中限定本發(fā)明。在從屬權利要求中限定有利的又可選的實施例。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1