TW201610679A - 用於安裝軟體於一小型記憶體裝置之系統 - Google Patents

用於安裝軟體於一小型記憶體裝置之系統 Download PDF

Info

Publication number
TW201610679A
TW201610679A TW104118950A TW104118950A TW201610679A TW 201610679 A TW201610679 A TW 201610679A TW 104118950 A TW104118950 A TW 104118950A TW 104118950 A TW104118950 A TW 104118950A TW 201610679 A TW201610679 A TW 201610679A
Authority
TW
Taiwan
Prior art keywords
memory
computer program
program
data packet
data
Prior art date
Application number
TW104118950A
Other languages
English (en)
Other versions
TWI560546B (en
Inventor
宗標 歐
清源 鄭
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 TW201610679A publication Critical patent/TW201610679A/zh
Application granted granted Critical
Publication of TWI560546B publication Critical patent/TWI560546B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/4406Loading of operating system
    • G06F9/4408Boot device selection
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Small-Scale Networks (AREA)

Abstract

一種系統(100)實現電腦程式在(小型記憶體)裝置(110)上之安裝。系統包括裝置及主機裝置(180)。主機裝置經配置以用於發送資料封包。至少一些資料封包包括電腦程式之各自部分。裝置具有用於容納電腦程式之程式記憶體(130)、具有啟動載入器之啟動記憶體(120)及處理器(150)。啟動載入器亦經配置以用於安裝電腦程式。啟動載入器包括:偵測資料封包,提取(a)電腦程式之部分及部分後設資料及/或(b)程式後設資料,基於部分後設資料來判定程式記憶體中之記憶體位置,維持表示經儲存於程式記憶體中之所提取部分的進度資訊,且基於進度資訊及程式後設資料來判定儲存部分之集合的完成。

Description

用於安裝軟體於一小型記憶體裝置之系統
本發明係關於無線下載及安裝一電腦程式於一小型記憶體裝置上。舉例而言,小型記憶體裝置可為一電子裝置,諸如通常具有相較於其他更複雜電子裝置(諸如一智慧型電話)之一小型記憶體之一遙控裝置。
一遙控裝置可使用不同技術與一消費型裝置互動。熟知傳統紅外線技術使遙控裝置能夠控制一消費型裝置。遙控裝置具有一紅外線發射器以發送包括一命令碼之一紅外線信號,而消費型裝置具有一紅外線接收器以接收紅外線信號且提取命令碼。回應於命令碼,消費型裝置可實行一行動。舉例而言,消費型裝置可為一TV且遙控裝置被一使用者用於發送導致TV切換至下一頻道或升高音量之一命令碼。
當代遙控裝置(亦)可具有一基於無線電之能力以與家中之其他裝置互動且從一主機裝置無線下載用於遙控裝置之軟體更新。舉例而言,基於無線電之能力可基於ZigBee RF4CE技術(亦參見如在2014年5月22日咨詢之ZigBee Alliance:http://www.zigbee.org/Specifications/ZigBeeRF4CE/Overview.aspx之一網站)。軟體更新通常包含用於遙控裝置之韌體,包含命令碼之一最新資料庫以與各種裝置互動。該等無線下載及新軟體之安裝通常被稱為空中下載(OAD)。OAD可用於在遙 控裝置之生產程序期間接收及安裝軟體於遙控裝置上。一主機裝置可建立與遙控裝置之一無線連接,且接著無線發送軟體至遙控裝置。
然而,在一高容量生產程序中安裝新軟體於遙控器上仍係一生產程序中之一相對低效程序。在一高容量生產程序(諸如遙控裝置之一生產程序,其中低成本及高生產速度係重要的)中尤其係此情況。在使用OAD之新軟體之安裝期間,主機裝置及遙控裝置需與鄰近之其他(遙控)裝置屏蔽,以便防止干擾(例如,藉由使用一屏蔽盒)。其他遙控裝置之各者可實行在其自身屏蔽盒內之其自身安裝,從而與屏蔽盒內側之其自身主機裝置配對。用於實行其自身軟體安裝之各裝置之一屏蔽盒之使用係累贅且限制生產程序之速度。生產程序之低效由於下載自身可為一相對緩慢程序之事實而進一步加重。
此外,安裝程序在記憶體(及因此成本)方面係低效的,此係因為其在安裝程序期間需要額外記憶體。新軟體之安裝需要遙控裝置首先下載且儲存新軟體於額外記憶體中,接著確認所下載軟體且最後重寫遙控裝置之記憶體中之現有軟體。因此,額外記憶體主要用於下載新軟體且在其他時間很大程度上未使用,此使記憶體之使用低效。記憶體之高效使用在小型記憶體裝置(諸如遙控裝置)之一高容量生產程序中尤其重要,其中記憶體大小經保持為一最小值以減小成本及材料清單。
目標技術問題係提供具有相較於先前技術之一改良效率之用於安裝軟體於一小型記憶體裝置上之系統、方法及裝置。
本發明之一態樣係一裝置,其具有:一程式記憶體,其係用於容納一電腦程式之一記憶體;一啟動記憶體,其包括經配置以用於啟動該裝置之一啟動載入器;一處理器,其用於運行該電腦程式及該啟動載入器;一接收單元,其用於無線接收資料封包,該電腦程式之部 分係由至少一些該等各自資料封包所組成,該啟動載入器經進一步配置以用於安裝該電腦程式,其包括:偵測該等資料封包之一資料封包,該偵測係接收該資料封包之部分;從該資料封包提取以下項目之至少一者:(a)該電腦程式之一部分及關於該部分之部分後設資料及(b)關於共同形成該電腦程式之部分之一集合之程式後設資料;基於該部分後設資料判定該程式記憶體中之一記憶體位置;維持表示已儲存於該程式記憶體中之所提取部分之進度資訊;基於該進度資訊及該程式後設資料判定儲存部分之該集合之完成。
該裝置可為一小型記憶體裝置,例如,諸如一遙控器、一電子玩具、一可穿戴式裝置或一音樂播放機。本質上有效地作為一小型電腦,該裝置包括用於執行一電腦程式及一啟動載入器之該處理器。該裝置亦包括用於儲存該電腦程式之一程式記憶體。該裝置進一步包括一啟動記憶體,該啟動記憶體包括用於啟動該裝置之該啟動載入器。該裝置亦具有用於接收該等資料封包之一接收單元。
該程式記憶體可不具有較於儲存該電腦程式所需更多之可用記憶體。舉例而言,該程式記憶體足夠大以容納該電腦程式且同時可(但不需)過小以難以亦容納該電腦程式之一額外複本。在後者情況中,該程式記憶體因此無法容納該電腦程式及該電腦程式之一額外複本,使得該啟動載入器無法在重寫該程式記憶體中之一先前安裝電腦程式之前首先下載該電腦程式。舉例而言,需經安裝之該電腦程式可包括用於該裝置之新韌體且亦可包含一更新設定資料庫。
除其啟動該裝置之典型任務以外,該啟動載入器經進一步配置以安裝該電腦程式於該裝置上。在藉由該處理器執行時,該啟動載入器可運作如下。該啟動載入器使用該接收單元探測包括該資料封包之一無線信號。當偵測到該資料封包時,該啟動載入器可進一步經由該接收單元接收該資料封包。該啟動載入器可接著從該資料封包提取該 電腦程式之一部分及關於該部分之部分後設資料。接著,該啟動載入器可基於該部分後設資料判定該程式記憶體中之一記憶體位置以用於儲存該部分。舉例而言,該資料封包可具有包括關於該部分之一相對記憶體位置之一標頭。該啟動載入器可因此藉由添加該相對記憶體位置至該程式記憶體之一預定開始記憶體位置而判定該程式記憶體中之該(絕對)記憶體位置。該部分可接著儲存於該所判定記憶體位置處。
該啟動載入器可以一類似方式使用其他資料封包繼續進行直至其判定該電腦程式之該安裝已完成。在共同形成該電腦程式之部分之該集合已儲存於該程式記憶體上時已完成該電腦程式之該安裝。換言之,在共同形成該電腦程式之所有部分已儲存於該程式記憶體中時已完成該安裝。已完成該電腦程式之安裝後,該啟動載入器可接著進一步藉由執行該新安裝之電腦程式啟動該裝置。
該啟動載入器可從一資料封包提取關於共同形成該電腦程式之部分之該集合之程式後設資料。舉例而言,該程式後設資料可包括表示共同形成該電腦程式之部分總量之一數目。此外,該啟動載入器可維持表示已儲存於該程式記憶體中之所提取部分之進度資訊。舉例而言,該啟動載入器可保持計數其已在該程式記憶體中安裝之部分之數目,該進度資訊因此成為該計數。該啟動載入器可基於該進度資訊及程式資訊判定儲存部分之該集合之完成。舉例而言,當所儲存部分之該計數匹配該部分總量時,該啟動載入器判定共同形成該電腦程式之所有部分皆已儲存於該程式記憶體中。
一資料封包可包括一部分及關於該部分之部分後設資料以及程式後設資料。替代性地,一資料封包可包括(a)該部分及該部分後設資料或(b)該程式後設資料。在後者情況中,並非每一資料封包包括該電腦程式之一部分。
本發明之一效應係藉由該啟動載入器安裝該電腦程式於該小型 記憶體裝置上具有在記憶體方面之一改良效率。該程式記憶體僅需足夠大以儲存該電腦程式。該電腦程式之安裝並不需該程式記憶體中亦儲存該電腦程式之一額外複本之額外空間。因此,該安裝具有在記憶體方面之一改良效率。
視情況,該啟動載入器經配置以用於以一循環方式接收資料封包之一集合,資料封包之該集合共同包括部分之該集合,在一單一循環週期內發送資料封包之該集合。可在一單一循環週期中接收共同形成該電腦程式之所有部分,但若一些部分之接收出於某原因而失敗,則可在任何隨後循環週期期間接收該等部分。因此,該部分之接收由於失敗接收部分而變得穩健,從而防止該裝置由於一安裝期間之失敗而變為「磚」。在一失敗安裝之情況中,亦允許該裝置重新開始,使得該啟動載入器可重新開始該電腦程式之該安裝。
視情況,部分之該集合係連續形成該電腦程式之連續部分且該部分後設資料包括關於該等連續部分中之部分排序之資訊。舉例而言,該集合包括100個連續部分,其等係部分#1、部分#2、......至部分#100。接著,舉例而言,部分#60之部分後設資料可為數字60,表示該等連續部分中之部分#60之排序。因此可根據其等排序連續接收該等部分。
本發明之另一態樣係用於安裝一電腦程式於一裝置上之一系統,其包括:一主機裝置,其經配置以用於發送資料封包,至少一些該等資料封包包括該電腦程式之各自部分,該主機裝置具有用於無線發送該等資料封包之一發送單元;一裝置,其具有:一程式記憶體,其係用於容納一電腦程式之一記憶體;一啟動記憶體,其包括經配置以用於啟動該裝置之一啟動載入器;一處理器,其用於運行該電腦程式及該啟動載入器;一接收單元,其用於無線接收該等資料封包,該啟動載入器經進一步配置以用於安裝該電腦程式,其包括:偵測該等 資料封包之一資料封包,該偵測係接收該資料封包之部分;從該資料封包提取以下項目之至少一者:(a)該電腦程式之一部分及關於該部分之部分後設資料及(b)關於共同形成該電腦程式之部分之一集合之程式後設資料;基於該部分後設資料判定該程式記憶體中之一記憶體位置;維持表示已儲存於該程式記憶體中之所提取部分之進度資訊;且基於該進度資訊及該程式後設資料判定儲存部分之該集合之完成。
該系統因此包括該裝置(其包括該啟動載入器)(與成為本發明之一態樣之上文裝置一致)及一主機裝置。該主機裝置可發送可由該裝置接收之該等資料封包。舉例而言,該系統可為用於遠端裝置之一生產線之部分,且該主機裝置可發送包括新韌體之各自部分之封包至該裝置(其係一遙控裝置)。
視情況,該系統包括根據該裝置之多個裝置,該多個裝置之各者在對應於部分之該集合之一各自不同初始部分之一各自不同時間起始偵測。一效應係當該電腦程式被安裝於該多個小型記憶體裝置上時,該安裝具有在速度方面之一改良效率。該多個裝置之一者可與鄰近之該多個裝置之另一者之一安裝同時實行其安裝。各裝置並不需要與其各自自身主機裝置之一配對連接。替代性地,該多個裝置可從一相同、單一主機裝置單獨探測及接收該等相同資料封包。因此,不存在對於可同時安裝該電腦程式之多個裝置之量的限制,只要該多個裝置在該單一主機裝置之範圍內使得其等可接收該等資料封包即可。因此,相較於先前技術,安裝該電腦程式於該多個裝置上之該速度極度增大。
本發明之另一態樣係用於該系統中之一主機裝置,該主機裝置包括:一處理器,其經配置以用於以一循環方式發送資料封包之一集合,該等資料封包之各資料封包包括一電腦程式之一部分,資料封包之該集合共同包括共同形成該電腦程式之部分之一集合,在一單一循 環週期內發送資料封包之該集合;及一發送單元,用於無線發送該等資料封包。此不僅允許該多個裝置平行地安裝該電腦程式,亦允許該多個裝置之各者在一循環週期期間或下一循環週期期間的任何時間開始其安裝。此在速度以及變得更實用方面,進一步增大安裝該電腦程式於多個裝置上的效率。
本發明之另一態樣係包括指令之一電腦程式產品,該等指令用於導致該主機裝置之該處理器在由該處理器執行該等指令時實行以下步驟:判定來自該電腦程式之一部分,判定關於該部分之部分後設資料,且組成包括該部分及該部分後設資料之一資料封包。
本發明之另一態樣係用於安裝一電腦程式於一裝置上之一方法,該裝置具有:一程式記憶體,其係用於容納一電腦程式之一記憶體;一啟動記憶體,其包括經配置以用於啟動該裝置之一啟動載入器;一處理器,用於運行該電腦程式及該啟動載入器;及一接收單元,用於無線接收資料封包,該電腦程式之部分係由至少一些該等各自資料封包所組成,該方法包括:偵測該等資料封包之一資料封包,該偵測係接收該資料封包之部分;從該資料封包提取以下項目中之至少一者:(a)該電腦程式之一部分及關於該部分之部分後設資料及(b)關於共同形成該電腦程式之部分之一集合之程式後設資料;基於該部分後設資料來判定該程式記憶體中之一記憶體位置;維持表示已儲存於該程式記憶體中之所提取部分的進度資訊;且基於該進度資訊及該程式後設資料來判定儲存部分之該集合的完成。
本發明之另一態樣係包括一啟動載入器之一電腦程式產品,該啟動載入器包括導致一處理器在由該處理器執行該啟動載入器時實行技術方案14之方法的指令。
100‧‧‧系統
110‧‧‧裝置DEV
111‧‧‧裝置
112‧‧‧裝置
113‧‧‧裝置
120‧‧‧啟動記憶體MBOOT
130‧‧‧程式記憶體MPROG
140‧‧‧現用記憶體MACT
150‧‧‧處理器PROC
152‧‧‧連接
153‧‧‧連接
154‧‧‧連接
170‧‧‧接收單元RCV
171‧‧‧連接
180‧‧‧主機裝置HST
190‧‧‧發送單元SND
191‧‧‧無線信號
199‧‧‧系統
200‧‧‧主機記憶體MHST
201‧‧‧記憶體位置
202‧‧‧記憶體位置
203‧‧‧記憶體位置
204‧‧‧記憶體位置
205‧‧‧記憶體位置
206‧‧‧記憶體位置
207‧‧‧記憶體位置
208‧‧‧記憶體位置
210‧‧‧程式記憶體MPROG1
211‧‧‧記憶體位置
212‧‧‧記憶體位置
213‧‧‧記憶體位置
214‧‧‧記憶體位置
215‧‧‧記憶體位置
216‧‧‧記憶體位置
217‧‧‧記憶體位置
218‧‧‧記憶體位置
220‧‧‧程式記憶體MPROG2
221‧‧‧記憶體位置
222‧‧‧記憶體位置
223‧‧‧記憶體位置
224‧‧‧記憶體位置
225‧‧‧記憶體位置
226‧‧‧記憶體位置
227‧‧‧記憶體位置
228‧‧‧記憶體位置
260‧‧‧箭頭
261‧‧‧箭頭
262‧‧‧箭頭
300‧‧‧方法
301‧‧‧步驟/偵測
302‧‧‧步驟/提取
303‧‧‧步驟/判定
304‧‧‧步驟/維持
305‧‧‧步驟/判定
CURR0‧‧‧指標
CURR1‧‧‧指標
CURR2‧‧‧指標
START1‧‧‧指標
START2‧‧‧指標
參考下文中描述之實施例將明白且闡明本發明之此等及其他態 樣。
在圖式中,圖1a圖解說明用於安裝一電腦程式於一小型記憶體裝置上之一系統,圖1b圖解說明包括多個小型記憶體裝置之系統,圖2a圖解說明在一電腦程式之循環安裝期間之兩個小型記憶體裝置之記憶體及主機裝置之一記憶體,圖2b圖解說明在安裝電腦程式完成之後的小型記憶體裝置之記憶體,圖2c圖解說明在一電腦程式之一替代循環安裝期間之小型記憶體裝置及主機裝置之記憶體,圖2d圖解說明在重新排序部分之前儲存電腦程式之最後部分之後的小型記憶體裝置之記憶體,及圖3圖解說明用於安裝一電腦程式於小型記憶體裝置上之一方法。
應注意,在不同圖式中具有相同元件符號之術語具有相同結構特徵及相同功能。在已說明此一術語之功能及/或結構之處,不需在實施方式中重複說明。
圖1a圖解說明用於安裝一電腦程式於一小型記憶體裝置DEV 110上之一系統100。系統100包括一主機裝置HST 180(在下文中:主機HST)及一小型記憶體裝置DEV(在下文中:裝置DEV)。主機HST具有一發送單元SND 190。裝置DEV具有一接收單元RCV 170、一啟動記憶體MBOOT 120、一程式記憶體MPROG 130、一現用記憶體MACT 140及一處理器PROC 150。處理器PROC可透過連接152至153及171分別與啟動記憶體MBOOT、程式記憶體MPROG、現用記憶體MACT及 接收單元RCV交換資料。
主機HST可經由部分中之發送單元SND 190發送電腦程式,各部分被一各自資料封包包括。因此,電腦程式作為一整體被資料封包之一集合包括。主機HST發送可容納一資料封包之一無線信號191。主機HST可包括未在圖1a中展示之其他元件,諸如一處理器、一主機記憶體及連接至另一網路及/或網際網路之一網路通信單元。
主機HST可具有儲存於其主機記憶體中之一電腦程式且可如下判定來自電腦程式之資料封包。主機HST首先將電腦程式分為連續部分。該等部分之大小可不同或可具有相同大小。主機藉由一標頭至一部分而組成一資料封包。標頭可包含關於部分之部分後設資料。舉例而言,標頭可包括一封包識別符、用於儲存部分之一相對記憶體位置及被資料封包包括之部分之一大小(以位元組為單元)。該標頭可替代性地包含(或亦包含)關於共同形成電腦程式之部分之一集合之程式後設資料。舉例而言,程式後設資料可包含共同形成電腦程式之部分總數。或,作為另一實例,程式後設資料可包含以電腦程式之位元組為單元之總大小。
在一實施例中,各資料封包具有一類似格式及內容。舉例而言,各資料封包可包含關於部分後設資料及亦程式後設資料之一部分。在另一實施例中,可存在兩個類型之資料封包。一第一類型之一資料封包可容納一部分及相關部分後設資料,而一第二類型之一資料封包可容納程式後設資料。主機HST可僅偶爾發送第二類型之資料封包,此係由於處理器PROC不需接收各連續資料封包中之相同程式後設資料。
考量一資料封包之以下實例。封包識別符可為一數字。包括電腦程式之第一部分之一資料封包可具有數字1之封包識別符。包括第二部分之一資料封包可具有數字2之封包識別符,且諸如此類。電腦 程式可由500個千位元組(例如,其等各分為1024個位元組之500個部分,從而使資料封包之總數為500)構成。500個資料封包之一集合接著共同包括所有部分(其等共同包括電腦程式),且集合之各資料封包因此包括電腦程式之一各自部分。一部分之相對記憶體位置可指示其在記憶體中相對於程式記憶體MPROG中之一開始位置之位置。舉例而言,包括電腦程式之第一部分之資料封包可具有相對記憶體位置0000(零),包括電腦程式之第二部分之資料封包可具有相對記憶體位置1024,第三部分接著關於記憶體位置2048等等。此外,注意,若資料封包標頭具有(例如)固定大小之64個位元組,則資料封包之大小變為1088。
部分可具有相同大小但亦可具有不同大小。若所有部分具有相同大小,則可基於該大小及各自封包數目以一直接方式計算一部分之相對記憶體位置:相對記憶體位置接著計算為封包數目-1)x部分大小。相對記憶體位置接著不需明確包含於標頭中。替代性地,部分具有各自不同大小。在該情況中,相對記憶體位置之計算較不直接且因此在標頭中包含相對記憶體位置係有利的。
替代性地,資料封包可包括用於儲存部分於程式記憶體MPROG中之一絕對記憶體位置而非相對記憶體位置。部分接著直接儲存在程式記憶體MPROG中之絕對記憶體位置處。
裝置DEV具有啟動記憶體MBOOT,其可為包括一啟動載入器之一非揮發性記憶體。啟動載入器由用於啟動裝置DEV之軟體構成。裝置DEV之啟動實行為處理器PROC將啟動載入器載入至現用記憶體MACT中且隨後執行啟動載入器。除啟動裝置DEV以外,本發明中之啟動載入器亦包括用於實行電腦程式之一安裝之軟體。電腦程式之安裝包括儲存電腦程式於程式記憶體MPROG(其係一非揮發性記憶體)中。
當藉由處理器PROC執行啟動載入器時,裝置DEV可操作如下。
隨著處理器PROC執行啟動載入器,裝置DEV開始「探測」藉由主機HST發送之資料封包。探測資料封包暗示裝置DEV經由接收單元RCV接收無線信號191且檢查無線信號是否存在一資料封包。舉例而言,處理器可藉由偵測標記來自主機HST之任何資料封包之開始之一預定資料序列而偵測資料封包。裝置DEV可接著接收整個資料封包。舉例而言,各資料封包可限於預定數目個位元組,使得處理器DEV需接收從資料封包之該開始之該預定數目個位元組,以便接收整個資料封包。
資料封包可寫入現用記憶體MACT中。資料封包可具有一固定標頭大小且處理器PROC可從資料封包提取標頭。標頭可包含部分(例如,由1024個位元組構成之部分)之一大小,使得處理器PROC可判定容納部分之現用記憶體中之記憶體位置。處理器PROC可接著從現用記憶體MACT讀取部分。處理器PROC接著已從資料封包提取標頭及部分兩者。
上文實施例包含現用記憶體MACT(其係一揮發性記憶體),不過技術上亦可替代性地使用一非揮發性記憶體。目前,許多申請案通常較佳地使用一揮發性記憶體,此係由於從揮發性記憶體讀取或寫入至揮發性記憶體之相較於一非揮發性記憶體之一更高速度。然而,歸因於硬體革新,未來非揮發性記憶體自然期望具有相較於現在非揮發性記憶體之一更高速度。對於一些實施例,未來非揮發性記憶體之速度可變為可接受在現用記憶體MACT中使用。使用一未來非揮發性記憶體之此一實施例之一實例可為裝置DEV,其係用於控制一消費型裝置之遙控裝置。
為確認資料封包之完整性,標頭亦可包含一封包檢查總和碼。處理器PROC可確認封包檢查總和碼與所接收資料封包是否一致。若 情況並不如此,則處理器PROC可推斷接收資料封包被破壞且作為回應可中止該資料封包之進一步處理。處理器PROC可接著藉由探測另一資料封包而繼續進行。處理器PROC亦可從標頭提取一相對記憶體位置,如上文提及。處理器PROC可接著判定用於儲存部分之程式記憶體MPROG中之一絕對記憶體位置。可藉由添加相對記憶體位置至程式記憶體中之一預定開始記憶體位置而判定該絕對記憶體位置。處理器PROC可接著儲存(寫入)所提取部分於程式記憶體MPROG中之該絕對記憶體位置處。
應注意,在下文中,「儲存一部分於程式記憶體MPROG中」亦將被稱為「安裝一部分」。以一類似方式,當共同形成電腦程式之所有部分儲存於程式記憶體MPROG中時已「安裝」電腦程式,各部分儲存於其在程式記憶體MPROG中之適當記憶體位置處。
在安裝部分之後或期間,處理器PROC可藉由探測下一資料封包且針對該下一封包重複上文程序而繼續進行。處理器PROC可持續接收一資料封包且安裝一各自部分之程序直至安裝共同形成電腦程式之所有部分。接著完成安裝電腦程式於裝置DEV上。
判定儲存所有部分之完成可工作如下。處理器PROC可保持追蹤已安裝之電腦程式之所有部分。考量以下實例。處理器PROC從一資料封包之一標頭判定部分之總量係500。程式後設資料因此包括500之該總量。處理器PROC可接著藉由維持500個旗標之一清單而保持追蹤:各旗標對應於一封包數目及一對應部分是否已經安裝之狀態。舉例而言,旗標#25對應於封包數目#25及部分#25是否已經安裝之狀態。程式後設資料因此包括封包數目#25,其因此表示部分在連續部分#1至#500中之排序#25。在安裝第一部分之前,藉由將清單之所有旗標設定為0(零)而起始清單。接著,每當處理器PROC安裝一部分時,其將該部分之一對應旗標設定為1(一)。處理器PROC在判定該清 單之所有旗標經設定為1之後判定所有500個部分已經安裝。
替代性地,程式後設資料包括被電腦程式包括之位元組的總數。處理器PROC可保持計數已經儲存於程式記憶體MPROG中之部分之位元組的累計數目。在安裝最後部分以使位元組之累計數目匹配位元組之該總數之後,處理器PROC可判定共同形成電腦程式之所有部分已經儲存於程式記憶體MPROG中。
主機HST可以一所謂循環方式來發送部分。此暗示主機HST以一週期性方式發送所有部分。考量以下實例,再次涉及500之一部分總量。500個部分對應於500個各自資料封包之一總量。以一循環方式發送500個資料封包暗示主機HST在一單一循環週期中連續發送所有500個資料封包,且接著在其中主機HST再次連續發送所有資料封包之下一循環週期中繼續進行。在一循環週期中,主機HST首先發送資料封包#1,接著發送資料封包#2,接著發送資料封包#3,且諸如此類。在發送資料封包#500之後,主機HST藉由再次發送資料封包#1,接著資料封包#2等等來開始下一週期。
因此,裝置DEV亦可以一循環方式接收部分,且因此亦可以一循環方式安裝各自部分。裝置DEV可在循環週期中之任何階段開始探測及接收。舉例而言,裝置DEV接收其第一資料封包(其係包括部分#100之資料封包#100)。因此,若裝置DEV連續接收及安裝由主機HST發送之部分,則裝置DEV首先在第一循環週期期間安裝部分#100至#500,且接著在第二循環週期期間安裝部分#1至#99。
若裝置DEV出於某原因未能在第一循環週期期間接收及/或安裝一資料封包,則其可僅在下一循環週期期間接收及安裝該資料封包。繼續先前實例,若裝置DEV未能在第一循環週期期間接收資料封包#200,則下一循環後期將繼續進行為:裝置DEV安裝部分#1至#99(如上文),接著跳過部分#100至#199,且最後接收及安裝部分#200。
圖1b圖解說明包括多個小型記憶體裝置110至113之一系統199。系統199由系統100及三個額外(小型記憶體)裝置111至113有效地構成。以一循環方式安裝部分於具有多個裝置110至113之系統199中尤其有用。多個裝置110至113之各者可在循環週期(或就此而言之下一循環週期)之一不同階段開始接收資料封包。然而,多個裝置110至113之各者可同時從相同單一主機HST接收相同資料封包且隨後安裝各自相同部分。不存在對於可添加至系統100或系統199之(小型記憶體)裝置之量的限制,此係由於裝置之各者平行地從主機HST接收及安裝一部分。唯一要求係多個裝置之各者在主機HST之範圍內,以便接收藉由主機HST發送之資料封包。此呈現一極大益處,其加速安裝電腦程式於多個裝置(其等係裝置之一大群組)上。
圖2a圖解說明在電腦程式之一循環安裝期間之一主機記憶體MHST 200及兩個程式記憶體MPROG1 210及MPROG2 220。程式記憶體MPROG1及MPROG2分別係兩個小型記憶體裝置DEV1及DEV2之記憶體。主機記憶體MHST係主機HST之一記憶體。主機記憶體MHST容納呈在各自記憶體位置201至208處之(八個)部分A至H之形式的電腦程式。部分A至H共同形成電腦程式。主機HST可以一循環方式發送部分A至H。裝置DEV1及DEV2可接著從主機HST接收部分且安裝部分於其等各自程式記憶體MPROG1及MPROG2中。
主機HST具有在其主機記憶體MHST之記憶體位置203處之一當前讀取位置。當前讀取位置係由指標CURR0指示。主機HST讀取部分C,組成容納部分C及一相對記憶體位置(具有其之一標頭)之一資料封包,且經由發送單元SND發送資料封包。
裝置DEV1接收資料封包且提取(a)部分及(b)相對記憶體位置。裝置DEV1藉由添加相對記憶體位置至其開始記憶體位置211而判定一絕對記憶體位置213。舉例而言,開始記憶體位置具有一值128且相對記 憶體位置具有一值2048,使得絕對記憶體位置之值變為2176。因此,裝置DEV1將其當前寫入位置設定為絕對記憶體位置(由一指標CURR1指示),且接著儲存(寫入)部分C於其程式記憶體MPROG1之記憶體位置213處。裝置DEV2實行一類似程序:裝置DEV2接收資料封包,判定一(絕對)記憶體位置223,且儲存部分C於記憶體位置223處。指標CURR2指示裝置DEV2之當前寫入位置。
主機HST以一循環方式發送部分,由箭頭260指示。在本實例中,主機HST剛發送部分C。因此藉由主機HST發送之下一部分將係部分D,且隨後係部分E,且諸如此類。在發送部分H之後,主機HST將接著藉由再次發送部分A而繼續進行。
在DEV1首先開始探測之後,主機HST恰好在在相同循環週期內發送當前部分C之前發送部分B。裝置DEV1因此已首先偵測包括部分B之一資料封包,且因此部分B係藉由DEV1安裝之第一部分。在此實例中,裝置DEV1現已安裝部分B及C。指標START1指示第一部分藉由裝置DEV1儲存於其記憶體位置212處。程式記憶體MPROG1中之圖案填充區域指示部分B及C已分別儲存於記憶體位置212及213處。箭頭261指示DEV1按B、C順序安裝部分。
DEV2已在先前循環週期期間恰在主機HST發送部分G之前首先開始探測。裝置DEV2因此已首先偵測包括部分G之一資料封包,且因此部分G係藉由DEV2安裝之第一部分。在此實例中,裝置DEV2現已安裝部分G、H、A、B及C。指標START2指示裝置DEV2儲存其第一部分於記憶體位置227處。程式記憶體MPROG2中之圖案填充區域指示部分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發送之隨後部分,則DEV2將在DEV1完成之前完成所有部分之安裝。圖2b圖解說明在安裝電腦程式完成之後的程式記憶體MPROG1及MPROG2。記憶體MPROG1及MPROG2兩者分別包括在其等各自記憶體位置211至218及221至228中之所有部分A至H。
圖2c圖解說明在電腦程式之一替代循環安裝期間的兩個程式記憶體MPROG1 210、MPROG2 220及一主機記憶體MHST 200。在圖2c中,主機HST及其主機記憶體MHST係相同於圖2a之主機及其主機記憶體。與圖2a之狀況之一不同之處在於裝置DEV1及DEV2已分別在其等開始記憶體位置211及221處開始儲存部分。裝置DEV1及DEV2根據接收部分之順序而儲存連續部分於其等各自程式記憶體MPROG1及MPROG2中之連續記憶體位置處。裝置DEV1因此儲存隨後部分D至H及A於各自連續記憶體位置213至218處。同樣地,裝置DEV2因此儲存連續部分D至F於各自連續記憶體位置225至228處。在已儲存所有部分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中之順序之各自記憶體位置之一清單。在此情況中,該清單指示按B、C、D、E、F、G、H、A順序儲存部分(如在圖2d中展示)。基於該清單中之資訊,裝置DEV1可接著:將部分A從記憶體位置218移動至記憶體位置211,將部分B從記憶體位置211移動至記憶體位置212,將部分C從記憶體位置212移動至記憶體位置213等等。
主機HST以一循環方式發送部分之順序通常如上文描述。在一循環週期內發送部分之一典型順序係A、B、C、D、E、F、G、H。替代性地,發送部分之順序可不同於該典型順序。舉例而言,順序可顛倒或隨機化。舉例而言,作為隨機化順序之一結果,主機可在一個循環週期中以E、D、A、C、G、B、H、F順序發送部分,然而主機可在另一循環週期中以B、F、G、E、D、H、C、A之另一順序發送部分。
可以各種方式起始電腦程式之安裝。舉例而言,啟動載入器可導致裝置DEV在啟動載入器經執行時開始探測一資料封包。啟動載入器可具有一預定逾時週期,使得當在開始探測之後未在該逾時週期內偵測到資料封包時,裝置DEV中止探測且繼續進行啟動裝置DEV。相反地,若在該逾時週期內偵測到一資料封包,則裝置DEV安裝被資料封包包括之一部分,且開始探測下一資料封包。
作為另一實例,啟動載入器可導致裝置DEV確認一有效電腦程式是否儲存於程式記憶體MPROG中,且可在判定未安裝有效電腦程式之後開始探測。作為另一實例,啟動載入器可導致裝置DEV確認操作 裝置之任何電腦程式是否儲存於程式記憶體MPROG中。裝置DEV可在判定未安裝電腦程式之後,在判定程式記憶體係「空」(例如,僅填充有零)之後開始探測。
作為另一實例,啟動載入器導致裝置DEV在偵測到一安裝旗標經設定為一安裝狀態之後起始探測。當安裝旗標經設定為一安裝狀態時,其表示要求電腦程式之安裝。當安裝旗標經設定為一非安裝狀態時,其表示不要求電腦程式之安裝。安裝旗標可為裝置DEV之部分。安裝旗標可回應於一外部輸入而設定為安裝狀態。舉例而言,若裝置DEV係一遙控裝置,則可由一使用者提供外部輸入,使用者在遙控裝置上鍵入一預定碼,從而導致遙控裝置(a)將安裝旗標設定為安裝狀態且(b)實行一再啟動。如上文提及,裝置DEV接著在(再)啟動期間偵測到安裝旗標經設定為安裝狀態且作為回應開始探測一資料封包。在完成電腦程式之安裝之後,裝置DEV可將安裝旗標設定為非安裝狀態。替代性地,可經由裝置DEV上之表示安裝旗標之一手動開關提供外部輸入。一使用者可手動設定手動開關至一第一位置或一第二位置中。第一位置可對應於安裝狀態且第二位置可對應於非安裝狀態。
應注意,在本發明之背景內容中,當裝置DEV「開始探測一資料封包」時,其暗示裝置DEV已開始安裝電腦程式,且已安裝電腦程式暗示電腦程式儲存於程式記憶體MPROG中。
出於安全目的,資料封包可包括加密。舉例而言,主機HST可加密電腦程式之一部分且使用標頭及經加密部分組成一資料封包。裝置DEV可接收資料封包,從資料封包提取經加密部分,且藉由解密經加密部分而獲得部分。加密可確保僅裝置DEV或類似裝置可接收及安裝部分。
在一實施例中,裝置DEV係生產遙控裝置之一生產設施中之一遙控裝置。生產設施可包括具有在各種生產狀態中之遙控裝置之一生產 線。在生產線末端處,各遙控裝置需要最新韌體之一安裝。在類似於藉由圖1b示意性地圖解說明之一設定中,一主機HST鄰近於生產線,使得多個遙控裝置可接收藉由主機HST發送之資料封包。舉例而言,主機HST可為一個人電腦或用於發送資料封包之一些專用裝置。為最小化與生產設施中之其他設備之干擾風險,主機HST及遙控裝置可使用未被其他設備使用之通信或頻帶。然而,多個遙控裝置之間的相互干擾不成問題,此係由於多個遙控裝置僅接收且從相同主機HST平行地接收資料封包。
在一實施例中,裝置DEV具有用於在安裝電腦程式之完成之後提供回饋之一指示器。舉例而言,裝置DEV具有在該完成之後閃爍之一LED。作為一變體,該LED在該完成之後將其顏色從紅色改變為綠色。作為另一實例,裝置DEV具有一揚聲器以在該完成之後產生一通知或警示。作為另一實例,裝置DEV可具有用於在該完成之後振動之一構件。
在一實施例中,裝置DEV係可經無線控制之一燈,諸如藉由Philips生產之「色調個人無線照明」產品。燈之照明性質可由一中央控制盒控制或燈可由一智慧型電話直接控制。中央控制盒可包括如上文描述之主機HST。一使用者可期望分開控制各燈或共同控制所有燈之亮度、色調及/或飽和度。通常,一起居室將具有多個此等可無線控制之燈。當中央控制盒可偵測到新韌體可用於多個燈時,其可如下起始一韌體更新。中央控制盒發送新韌體之一版本號至各燈,且作為回應,各燈檢查新韌體之版本號是否匹配其安裝韌體之一版本號。在多個燈之一燈偵測到其韌體並不係最新之情況中,該燈可將其將起始新韌體之安裝通信回至中央控制盒:該燈將其安裝旗標設定為「安裝狀態」且實行一再啟動。在再重啟之後,該燈接著開始探測來自中央控制盒之資料封包。類似地,亦具有過時韌體之其他燈可進行相同處 理且亦平行再啟動及起始新韌體之安裝。隨著中央控制盒已從至少一個燈接收其起始新軟體之安裝,中央控制盒(例如)從製造商之網站下載新韌體。中央控制盒接著開始發送包括新韌體之資料封包。該燈接著偵測及接收藉由中央控制盒發送之資料封包且根據本發明開始安裝韌體。
作為先前實施例之一變體,一新燈可添加至起居室中之該多個燈且可檢查其韌體是否係最新。新燈安裝於一電樞中且因此經由該電樞充電。在充電之後,新燈可無線接觸中央控制盒。以類似於先前實施例中之一方式,中央控制盒與已安裝於多個燈之其他燈上之最新韌體通信且在新燈之韌體並不係最新之情況中,中央控制盒及新燈根據本發明開始安裝新韌體。
在一實施例中,一零售店具有多個小型記憶體裝置(其等係媒體播放機)。零售商可期望安裝最新韌體於現場之所有媒體播放機上。零售商具有經配置以用作主機HST之一智慧型電話。最新韌體可下載至智慧型電話上,且智慧型電話可以一循環方式開始發送電腦程式之部分。藉由充電一媒體播放機,媒體播放機可再啟動(因此執行啟動載入器),接著起始探測作為啟動載入器之一部分,且隨後接收及安裝部分。隨著智慧型電話以一循環方式保持發送部分,媒體播放機可逐一充電,且各媒體播放機可在一循環週期之一不同階段及/或甚至在一不同循環週期中起始安裝韌體。各自媒體播放機之安裝因此無需同步,此使整個程序變得實際。用於更新韌體之此一程序較為方便,此係由於其無線及自動性質。此外,程序亦係快速的,此係因為平行進行更新媒體播放機上之韌體。
裝置DEV可為根據本發明之任何小型記憶體裝置。現在之許多此等裝置具有一無線電能力以連接至(例如)在一家庭環境、一醫療環境中或一汽車內之其他裝置。舉例而言,裝置可因此變得互連且可與彼 此及/或與裝置之一局部網路中之一使用者及/或與網際網路互動。小型記憶體裝置DEV之實例係一遙控裝置、一可無線控制之燈( )、一媒體播放機、一可攜式媒體播放機、一電子玩具、一數位手錶、一廚房用具、一廚房設備(諸如一冰箱或一微波爐)及一可佩戴電子器件。裝置DEV可為用於醫療目的之一裝置,諸如一血液飽和計、一可穿戴式心跳監測器或監測一病人之一生理或物理參數之另一小型記憶體裝置。作為又另一實例,裝置DEV可為一可無線控制之數位標籤,諸如充當用於個人識別之一名字標籤或用於展示一零售店處之價格之一價格標籤。
由主機HST及裝置DEV使用之無線技術可為任何適當無線技術,諸如RF4CE、Zigbee、WiFi或不需配對之藍芽之一變體。應注意,本發明之一益處係啟動載入器可十分簡單,藉由啟動載入器安裝電腦程式可在所謂MAC級別上工作,因此不需啟動載入器中之一RF4CE軟體堆疊。
不過已在上文提及程式記憶體MPROG可為小的,其大小不足以同時容納電腦程式及亦電腦程式之一複本兩者。然而,本發明亦將明顯地可在程式記憶體MPROG較大時工作,使得其大小足以容納電腦程式及該複本兩者。在一實施例中,程式記憶體MPROG確實較大,然而僅程式記憶體MPROG之一小部分可用,此係因為其餘用於其他目的。
主機HST可運行包括用於組成一資料封包之指令之軟體。軟體可體現於一電腦程式產品上,諸如一CD-ROM或一固態記憶體。電腦程式產品可包括指令以用於導致主機HST之處理器在藉由處理器執行指令時實行以下步驟:判定來自電腦程式之一部分,判定關於部分之部分後設資料,且組成包括部分及部分後設資料之一資料封包。
圖3圖解說明用於安裝一電腦程式於小型記憶體裝置DEV上之一 方法300。方法300包括步驟301至305。步驟301包括偵測資料封包之一資料封包,偵測係接收該資料封包之部分。步驟302包括從該資料封包提取以下項目之至少一者:(a)電腦程式之一部分及關於該部分之部分後設資料及(b)關於共同形成電腦程式之部分之一集合之程式後設資料。步驟303包括基於該部分後設資料判定程式記憶體中之一記憶體位置。步驟304包括維持表示已儲存於程式記憶體中之所提取部分之進度資訊。步驟305包括基於進度資訊及程式後設資料判定儲存部分之集合之完成。方法300與可在系統100中且藉由裝置100實行之步驟一致。
方法300可體現於一電腦程式產品上。該電腦程式產品包括啟動載入器,啟動載入器包括導致處理器PROC在藉由處理器PROC執行啟動載入器時實行方法300之指令。舉例而言,電腦程式產品可為一CD-ROM或一固態記憶體。應注意,上述實施例圖解說明而非限制本發明,且熟習此項技術者將能夠在不脫離隨附申請專利範圍之範疇之情況下設計許多替代實施例。熟習此項技術者將暸解,本發明之上述實施例、實施方案及/或態樣之兩者或兩者以上可以被認為有用之任何方式組合。
可藉由熟習此項技術者以本發明為基礎進行系統、裝置、主機裝置、方法或電腦程式產品之修改及變動(其等對應於監測子系統之所描述修改及變動)。
在申請專利範圍中,放置於括號之間的任何參考符號不應被解釋為限制申請專利範圍。動詞「包括」及其變化形式之使用並不排除除在一申請專利範圍中陳述以外之元件或步驟之存在。在一元件之前的冠詞「一」或「一個」並不排除複數個此等元件之存在。可藉由包括若干不同元件之硬體及藉由一經合適程式化之電腦實施本發明。在枚舉若干構件之裝置(或系統)請求項中,若干此等構件可體現為一個 且相同硬體項目。在互異之附屬請求項中列舉特定措施之純粹事實並不指示此等措施之一組合無法優化使用。
在獨立請求項中定義本發明。在附屬請求項中定義有利但可選實施例。
100‧‧‧系統
110‧‧‧裝置DEV
120‧‧‧啟動記憶體MBOOT
130‧‧‧程式記憶體MPROG
140‧‧‧現用記憶體MACT
150‧‧‧處理器PROC
152‧‧‧連接
153‧‧‧連接
154‧‧‧連接
170‧‧‧接收單元RCV
171‧‧‧連接
180‧‧‧主機裝置HST
190‧‧‧發送單元SND
191‧‧‧無線信號

Claims (15)

  1. 一種裝置(110),其具有:一程式記憶體(130),其係用於容納一電腦程式之一記憶體,一啟動記憶體(120),其包括經配置以用於啟動該裝置之一啟動載入器,一處理器(150),用於運行該電腦程式及該啟動載入器,一接收單元(170),用於無線接收資料封包,該電腦程式之部分係由至少一些該等各自資料封包所組成,該啟動載入器經進一步配置以用於安裝該電腦程式,其包括:偵測該等資料封包之一資料封包,該偵測係接收該資料封包之部分;從該資料封包提取以下項目中之至少一者:(a)該電腦程式之一部分及關於該部分之部分後設資料,及(b)關於共同形成該電腦程式之部分(A至H)之一集合之程式後設資料;基於該部分後設資料來判定該程式記憶體中之一記憶體位置(211至218);維持表示已儲存於該程式記憶體中之所提取部分的進度資訊;且基於該進度資訊及該程式後設資料來判定儲存部分之該集合的完成。
  2. 如請求項1之裝置,其中該啟動載入器經配置以用於以一循環方式(260至262)接收資料封包之一集合,資料封包之該集合共同包括部分(A至H)之該集合,資料封包之該集合係在一單一循環週 期內發送。
  3. 如請求項1或2之裝置,其中部分(A至H)之該集合係連續形成該電腦程式的連續部分(A至H),且該部分後設資料包括關於該等連續部分中之該部分之排序的資訊。
  4. 如請求項1或2之裝置,其中該啟動載入器經配置以回應於以下項目之一者而起始該偵測:接收一外部輸入信號,該裝置經配置以接收該外部輸入信號;偵測該程式記憶體中之一先前安裝電腦程式之一缺失,該裝置經配置以偵測該缺失;且偵測一安裝旗標指示一安裝狀態,該裝置包括該安裝旗標且經配置以偵測該安裝旗標指示該安裝狀態。
  5. 如請求項4之裝置,其中該啟動載入器經配置以回應於基於一使用者輸入接收一外部輸入信號而起始該偵測,該裝置包括允許一使用者提供該使用者輸入之一使用者輸入構件。
  6. 如請求項1或2之裝置,其中該啟動載入器經配置以在起始該偵測之後未在一預定逾時週期內偵測到該資料封包之後中止該安裝。
  7. 如請求項1或2之裝置,其中該啟動載入器經配置以解密成為一經加密部分之該部分。
  8. 如請求項1或2之裝置,其中該程式記憶體之大小足以容納該電腦程式且其之大小不足以容納該電腦程式及該電腦程式之一額 外複本兩者。
  9. 如請求項1或2之裝置,該裝置係體現為一遙控裝置、一可無線控制之燈、一媒體播放機、一電子玩具、一廚房用具、一可穿戴式電子裝置及一醫療裝置之一者。
  10. 一種用於安裝一電腦程式於一裝置(110)上之系統(100),其包括:一主機裝置(180),其經配置以用於發送資料封包,至少一些該等資料封包包括該電腦程式之各自部分,該主機裝置具有用於無線發送該等資料封包之一發送單元(190),該裝置具有一程式記憶體(130),其係用於容納一電腦程式之一記憶體,一啟動記憶體(120),其包括經配置以用於啟動該裝置之一啟動載入器,一處理器(150),用於運行該電腦程式及該啟動載入器,一接收單元(170),用於無線接收該等資料封包,該啟動載入器經進一步配置以用於安裝該電腦程式,其包括:偵測該等資料封包之一資料封包,該偵測係接收該資料封包之部分;從該資料封包提取以下項目中之至少一者:(a)該電腦程式之一部分及關於該部分之部分後設資料,及(b)關於共同形成該電腦程式之部分之一集合之程式後設資料;基於該部分後設資料來判定該程式記憶體中之一記憶體位置(211至218);維持表示已儲存於該程式記憶體中之所提取部分的進度資 訊;且基於該進度資訊及該程式後設資料來判定儲存部分之該集合的完成。
  11. 如請求項10之系統,其包括根據該裝置(110)之多個裝置(110至113),該多個裝置之各者在對應於部分(A至H)之該集合之一各自不同初始部分之一各自不同時間起始偵測。
  12. 一種用於如請求項10之系統(100)中之主機裝置(180),其包括一發送單元(190),用於無線發送該等資料封包,一處理器(170),其經配置以用於以一循環方式(260至262)經由該發送單元(190)發送資料封包之一集合,該等資料封包之各資料封包包括一電腦程式之一部分,資料封包之該集合共同包括共同形成該電腦程式之部分之一集合,資料封包之該集合係在一單一循環週期內發送。
  13. 一種包括指令之電腦程式產品,該等指令用於導致如請求項12之主機裝置(180)之處理器在由該處理器執行該等指令時可實行以下步驟:判定來自電腦程式之一部分,判定關於該部分之部分後設資料,且組成包括該部分及該部分後設資料之一資料封包。
  14. 一種用於安裝一電腦程式於一裝置(110)上之方法(300),該裝置具有一程式記憶體(130),其係用於容納一電腦程式之一記憶體;一啟動記憶體(120),其包括經配置以用於啟動該裝置之一啟動載入器;一處理器(150),用於運行該電腦程式及該啟動載入器;及一接收單元(170),用於無線接收資料封包,該電腦程式之部分係由至少一些該等各自資料封包所組成,該方法包括: 偵測(301)該等資料封包之一資料封包,該偵測係接收該資料封包之部分;從該資料封包提取(302)以下項目中之至少一者:(a)該電腦程式之一部分及關於該部分之部分後設資料,及(b)關於共同形成該電腦程式之部分之一集合之程式後設資料;基於該部分後設資料來判定(303)該程式記憶體中之一記憶體位置(211至218);維持(304)表示已儲存於該程式記憶體中之所提取部分的進度資訊;且基於該進度資訊及該程式後設資料來判定(305)儲存部分之該集合的完成。
  15. 一種包括一啟動載入器之電腦程式產品,該啟動載入器包括導致一處理器(150)在由該處理器執行該啟動載入器時實行如請求項14之方法(300)的指令。
TW104118950A 2014-06-11 2015-06-11 System for installing software on a small-memory device TWI560546B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP14171873.4A EP2955629B1 (en) 2014-06-11 2014-06-11 System for installing new firmware on a small-memory device

Publications (2)

Publication Number Publication Date
TW201610679A true TW201610679A (zh) 2016-03-16
TWI560546B TWI560546B (en) 2016-12-01

Family

ID=50972467

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104118950A TWI560546B (en) 2014-06-11 2015-06-11 System for installing software on a small-memory device

Country Status (7)

Country Link
US (1) US10642591B2 (zh)
EP (1) EP2955629B1 (zh)
JP (1) JP6660311B2 (zh)
KR (1) KR102400681B1 (zh)
CN (1) CN106462416B (zh)
TW (1) TWI560546B (zh)
WO (1) WO2015190998A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100340A1 (en) * 2013-12-26 2015-07-02 Tandem Diabetes Care, Inc. Safety processor for wireless control of a drug delivery device
WO2015100439A1 (en) 2013-12-26 2015-07-02 Tandem Diabetes Care, Inc. Integration of infusion pump with remote electronic device
CA3069348A1 (en) * 2017-08-15 2019-02-21 General Electric Company Smart equipment, method used by smart equipment, smart lamp, and method therefore for use in a bluetooth low energy mesh network
CN110083381B (zh) * 2018-01-26 2023-04-28 启碁科技股份有限公司 增量升级的方法及装置
CN111143232B (zh) * 2018-11-02 2023-08-18 伊姆西Ip控股有限责任公司 用于存储元数据的方法、设备和计算机可读介质

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503533A (en) * 1981-08-20 1985-03-05 Stanford University Local area communication network utilizing a round robin access scheme with improved channel utilization
JPH03265953A (ja) * 1990-03-15 1991-11-27 Fujitsu Ltd 端末装置への制御プログラムのダウンロード制御方式
US6269398B1 (en) * 1993-08-20 2001-07-31 Nortel Networks Limited Method and system for monitoring remote routers in networks for available protocols and providing a graphical representation of information received from the routers
US5828887A (en) * 1996-05-23 1998-10-27 Electronic Data Systems Corporation Network based program loader system and method of operation
US6252880B1 (en) * 1997-11-10 2001-06-26 Advanced Micro Devices, Inc. Apparatus and method for selectively supplying a data packet to a selected network node in a buffered distributor
JP3813769B2 (ja) * 1998-08-03 2006-08-23 松下電器産業株式会社 制御プログラム送信方法及び制御プログラムダウンロード方法
US6698017B1 (en) * 1999-07-16 2004-02-24 Nortel Networks Limited Software migration on an active processing element
JP2001274721A (ja) * 2000-03-27 2001-10-05 Sharp Corp 無線端末のファームウェア書換え方法
US7031267B2 (en) * 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules
US20020083331A1 (en) * 2000-12-21 2002-06-27 802 Systems, Inc. Methods and systems using PLD-based network communication protocols
US7055146B1 (en) * 2001-03-08 2006-05-30 Microsoft Corporation Method and system for dynamically inserting modifications for identified programs
JP4827310B2 (ja) * 2001-03-30 2011-11-30 パナソニック株式会社 リモートプログラムダウンロードシステム
US7093244B2 (en) * 2001-04-18 2006-08-15 Domosys Corporation Method of remotely upgrading firmware in field-deployed devices
US7065347B1 (en) * 2001-06-27 2006-06-20 Peoplenet Communications Corporation System and method for over the air programming
JP2004536405A (ja) * 2001-07-16 2004-12-02 ユキング レン 組み込みソフトウェア更新システム
US20030028870A1 (en) * 2001-08-01 2003-02-06 Weisman Mitchell T. Distribution of downloadable software over a network
JP2003108398A (ja) * 2001-09-28 2003-04-11 Seiko Epson Corp プログラム書換方法およびプログラム書換装置並びに情報処理装置
KR20030032257A (ko) * 2001-10-17 2003-04-26 삼성전자주식회사 프로그램 갱신 방법 및 이에 적합한 장치
EP1456777B1 (en) * 2001-12-19 2019-11-20 Irdeto B.V. Digital content distribution system
US20040098715A1 (en) * 2002-08-30 2004-05-20 Parixit Aghera Over the air mobile device software management
US7984435B2 (en) * 2002-11-13 2011-07-19 Hewlett-Packard Development Company, L.P. Update system employing reference software to reduce number of update packages
US7287068B1 (en) * 2002-12-13 2007-10-23 Bmc Software, Inc. System and method for updating devices that execute an operating system or application program directly from nonvolatile storage
US7171606B2 (en) * 2003-03-25 2007-01-30 Wegener Communications, Inc. Software download control system, apparatus and method
JP2005050097A (ja) * 2003-07-28 2005-02-24 Sony Corp 情報処理装置、情報処理方法、プログラム、記録媒体
US7673297B1 (en) * 2003-09-03 2010-03-02 The Directv Group, Inc. Automatic software update detection and flexible installer for set-top boxes
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050102666A1 (en) * 2003-11-10 2005-05-12 International Business Machines (Ibm) Corporation Pre-deployment component hosting environment analyzer
US7926051B2 (en) * 2003-11-10 2011-04-12 International Business Machines Corporation Automatic parallel non-dependent component deployment
US20050102667A1 (en) * 2003-11-10 2005-05-12 International Business Machines (Ibm) Corporation Generating summaries for software component installation
US8713295B2 (en) * 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
TW200713037A (en) * 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
US7903267B2 (en) * 2005-11-02 2011-03-08 Kyocera Mita Corporation Automatic installation system for printer driver, and program recording medium
JP4934885B2 (ja) * 2006-03-31 2012-05-23 オンキヨー株式会社 Avシステム、ソース機器及び受信機器
US8010638B2 (en) * 2007-04-05 2011-08-30 Alpine Electronics, Inc. Method and apparatus for updating firmware for interface unit connecting portable audio/video player with another audio/video player
JP4992587B2 (ja) * 2007-07-18 2012-08-08 船井電機株式会社 電子機器
JP2009077125A (ja) * 2007-09-20 2009-04-09 Sony Corp 受信システム、受信装置、制御装置及び方法、並びにプログラム
US8359373B2 (en) * 2008-02-06 2013-01-22 Broadcom Corporation Handheld computing unit of a computing device with an extended computing unit
JP5145074B2 (ja) * 2008-02-21 2013-02-13 京セラドキュメントソリューションズ株式会社 プログラム配信システム、プログラム配信サーバ装置および情報処理装置
KR101498054B1 (ko) * 2008-09-12 2015-03-03 엘지전자 주식회사 무선 네트워크에서의 통신 수행 방법
JP2010092297A (ja) * 2008-10-08 2010-04-22 Olympus Corp 分散制御装置およびプログラム書換方法
JP5289003B2 (ja) * 2008-11-17 2013-09-11 エイチジーエスティーネザーランドビーブイ ディスク・ドライブ及びそのプログラムの変更方法
TW201027324A (en) 2009-01-14 2010-07-16 Giga Byte Tech Co Ltd Embedded electronic device free from being stuck in update failure and method of making the same
JP2010198155A (ja) * 2009-02-24 2010-09-09 Fujitsu Ten Ltd プログラム更新装置、プログラム更新方法、及び情報処理装置
TW201035870A (en) * 2009-03-20 2010-10-01 Chi Mei Comm Systems Inc System and method for dynamically loading data of a mobile phone
US20100262711A1 (en) * 2009-04-09 2010-10-14 Nokia Corporation Systems, methods, and apparatuses for media file streaming
TW201102924A (en) 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
JP5278222B2 (ja) * 2009-07-22 2013-09-04 富士通株式会社 無線通信装置、無線通信方法および無線通信プログラム
US8752039B1 (en) * 2009-08-19 2014-06-10 Juniper Networks, Inc. Dynamic upgrade of operating system in a network device
US9819498B2 (en) * 2010-02-04 2017-11-14 Gentex Corporation System and method for wireless re-programming of memory in a communication system
JP2011257954A (ja) * 2010-06-08 2011-12-22 Sony Corp 更新管理サーバ、電子機器、更新管理システム及びその方法
KR20120041384A (ko) * 2010-10-21 2012-05-02 삼성전자주식회사 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
JP2012093961A (ja) * 2010-10-27 2012-05-17 Omron Automotive Electronics Co Ltd 制御装置及び方法、並びにプログラム書込システム
JP2012230474A (ja) * 2011-04-25 2012-11-22 Japan Radio Co Ltd プログラム更新システム、及びプログラム更新方法
EP2729870A4 (en) * 2011-07-08 2014-12-17 Openpeak Inc SYSTEM AND METHOD FOR VALIDATING COMPONENTS DURING A STARTING PROCESS
US20130024850A1 (en) * 2011-07-18 2013-01-24 Honeywell International Inc. Systems, methods and apparatus for fast file transfer
US9084313B2 (en) * 2012-02-15 2015-07-14 Anycomm Corporation Smart bulb system
US8805990B2 (en) * 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
CN102946599B (zh) * 2012-11-08 2016-08-17 惠州Tcl移动通信有限公司 实现移动终端应用程序下载的方法及移动终端
US8781502B1 (en) * 2013-02-01 2014-07-15 Swirl Networks, Inc. Systems and methods for display of supplemental content responsive to location
KR101515198B1 (ko) * 2013-04-10 2015-05-11 주식회사 팬택 모바일 단말의 펌웨어 업그레이드 장치 및 방법
US9342316B1 (en) * 2013-12-12 2016-05-17 American Megatrends, Inc. Installing digital signage device operating system from flash memory and registering signage device to a global network
US20150170136A1 (en) * 2013-12-18 2015-06-18 PayRange Inc. Method and System for Performing Mobile Device-To-Machine Payments

Also Published As

Publication number Publication date
KR102400681B1 (ko) 2022-05-23
WO2015190998A3 (en) 2016-02-25
CN106462416A (zh) 2017-02-22
EP2955629A1 (en) 2015-12-16
KR20170041687A (ko) 2017-04-17
US20170083304A1 (en) 2017-03-23
EP2955629B1 (en) 2021-10-27
WO2015190998A2 (en) 2015-12-17
JP6660311B2 (ja) 2020-03-11
TWI560546B (en) 2016-12-01
JP2017518583A (ja) 2017-07-06
US10642591B2 (en) 2020-05-05
CN106462416B (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
TW201610679A (zh) 用於安裝軟體於一小型記憶體裝置之系統
US9647888B2 (en) Network addressable appliance interface device
JP5539354B2 (ja) ホームコントロールシステムのリモートコントローラにおけるシーンの更新
KR102400384B1 (ko) 외장 메모리를 구비하는 전자장치 및 그 동작 방법
CN111651180B (zh) 固件更新方法、装置、处理器及智能网关设备
EP3066564B1 (en) Software distribution architecture for hardware devices
EP2479665A1 (en) Electronic device and method for updating software thereof
US20210119858A1 (en) Network node firmware update
US9380626B2 (en) Communication apparatus, information processing apparatus, and control method for the same
US20120079074A1 (en) Network communication system
EP3329689B1 (en) A universal remote control with automatic state synchronization
WO2014180194A1 (zh) 移动终端配置方法和系统
CN103763008A (zh) 一种受控蓝牙设备、蓝牙设备之间数据传输的方法和系统
KR20110011156A (ko) 근거리 무선 통신을 이용한 콘텐츠 제공 장치 및 방법
WO2014173249A1 (zh) 终端及其升级方法
JP6889662B2 (ja) 接続型デバイスシステム
WO2021136711A1 (en) Displaying a light control ui on a device upon detecting interaction with a light control device
US20160077822A1 (en) Electronic device and information updating control module thereof
JP2016174207A (ja) デバイス管理装置、無線通信システム、デバイス管理方法及びプログラム
TWI541771B (zh) 雲端感測參數設定系統及其操作方法
CN115701580A (zh) 遥控器固件升级方法及装置、电子设备、存储介质
TWI493462B (zh) 一種嵌入式系統裝置之韌體功能擴充方法
KR20120079433A (ko) 전자장치 및 그 소프트웨어 업데이트 방법
TW201250593A (en) Method for system flexibility