TWI571801B - 可分段更新程式之電子裝置 - Google Patents

可分段更新程式之電子裝置 Download PDF

Info

Publication number
TWI571801B
TWI571801B TW101142479A TW101142479A TWI571801B TW I571801 B TWI571801 B TW I571801B TW 101142479 A TW101142479 A TW 101142479A TW 101142479 A TW101142479 A TW 101142479A TW I571801 B TWI571801 B TW I571801B
Authority
TW
Taiwan
Prior art keywords
program
block
processing unit
sub
update
Prior art date
Application number
TW101142479A
Other languages
English (en)
Other versions
TW201419152A (zh
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 中興保全股份有限公司
Priority to TW101142479A priority Critical patent/TWI571801B/zh
Publication of TW201419152A publication Critical patent/TW201419152A/zh
Application granted granted Critical
Publication of TWI571801B publication Critical patent/TWI571801B/zh

Links

Description

可分段更新程式之電子裝置
本發明是係有關於一種電子裝置,特別是一種可分段更新之電子裝置。
目前市面上之電子裝置,其需要作更新時,大都可透過遠端程式更新之方式為電子裝置作更新。在一般之遠端程式更新時,為求安全考量以避免更新失敗,其電子裝置之記憶體容量大小,至少須於記憶體端末保留與主機程式相同大小的記憶體容量,使其執行遠端程式更新失敗時,尚可以舊有之程式執行。
惟上述之習知遠端程式更新之作法,要保留一定之記憶體容量,用以儲存主機上之舊有程式,則主機得另外加大記憶體之容量,其對於成本上來說相對浪費。再者,如果僅是透過主機之CPU其已內附快閃記憶體(Flash Memory),其容量有限,無法用以容置主機之舊程式。因此,通常需要再外掛記憶體裝置,然也因此造成成本過高,體積過大以及維修困難之問題。
因此,在考量遠端程式更新上之便利性與安全性,以及能夠有效率地加以運用,降低成本並縮小整體體積,以及使得維修能更方便進行,係為本案之發明人以及從事此相關行業之技術領域者亟欲改善的課題。
有鑑於此,本發明一實施例提出一種可分段更新程式之電子 裝置,適用於遠端更新電子裝置的內部程式。電子裝置包含中央處理器。中央處理器包含處理單元及快閃記憶體。快閃記憶體電性連接於處理單元。快閃記憶體包含主程式區塊、複數個獨立程式區塊及暫存區塊。
主程式區塊包含主程式及副程式區塊,副程式區塊包含第一跳躍表及第一副程式區。主程式區塊用以供處理單元執行主程式,並呼叫第一跳躍表而連結至第一副程式區。
每一獨立程式區塊包含第二跳躍表及第二副程式區。獨立程式區塊用以供處理單元呼叫第二跳躍表而連結至第二副程式區。
暫存區塊用以存放自遠端下載之程式碼,並供處理單元將程式碼更新至獨立程式區塊中之至少一者或主程式區塊。
在一實施例中,主程式區塊及獨立程式區塊分別更包含不同之識別碼,處理單元根據識別碼對欲更新的獨立程式區塊中之至少一者或主程式區塊執行更新。
在一實施例中,主程式區塊、獨立程式區塊及暫存區塊更分別包含一不可更新區域,用以供存放固定程式。
在一實施例中,快閃記憶體更包含一更新程式,更新程式可儲存於前述主程式區塊、獨立程式區塊及暫存區塊的其中之一的不可更新區域。
在一實施例中,第一副程式區包含複數個第一副程式,處理單元呼叫第一跳躍表而執行對應的第一副程式中之至少一者。第二副程式區亦包含複數個第二副程式,處理單元呼叫第二跳躍表 而執行對應的第二副程式中之至少一者。
在一實施例中,主程式區塊、獨立程式區塊及暫存區塊之中,暫存區塊係排列於最後。
在一實施例中,暫存區塊所存放的程式碼包含檢查碼(checksum),用以供處理單元根據檢查碼檢查程式碼是否正確。
在一實施例中,電子裝置更包含網路連接單元。網路連接單元電連接處理單元並訊號連接一遠端伺服器。處理單元係經由網路連接單元向伺服器下載並存放程式碼於暫存區塊。
在一些實施例中,於分別對應主程式區塊及獨立程式區塊之程式碼均更新完畢後,處理單元經由網路連接單元傳送一確認信號至遠端伺服器。
在一些實施例中,經處理單元更新的獨立程式區塊中之至少一者或主程式區塊,可與其餘之主程式區塊或獨立程式區塊中之程式共同運行。
綜上所述,根據本發明實施例之可分段更新程式之電子裝置,係可透過區分為多個區塊的快閃記憶體,將處理單元所需執行的程式碼對應區分為多個區段,以利於分批次對各區塊中的程式碼更新。如此,可解決習知遠端程式更新通常需要再外掛記憶體裝置及成本過高、體積過大與維修困難之問題。並且在通訊過程中,電子裝置仍可正常運作。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者瞭解本發明之技術內容並據以實 施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。
請參閱第1圖所示,第1圖為本發明一實施例之可分段更新程式之電子裝置1之示意圖。電子裝置1係包含中央處理器10。中央處理器10包含處理單元11及快閃記憶體20。於此,電子裝置1實質可為保全主機、營業點(Point of sale,POS)裝置、環境監測器、監視攝影機或數位視訊錄影機(Digital video recorder,DVR)等具程式執行能力的裝置。
請參閱第2圖所示,第2圖為本發明一實施例之快閃記憶體20之示意圖。快閃記憶體20係設置於中央處理器10內,且電性連接於處理單元11,快閃記憶體20可為反或閘快閃記憶體(NOR Type Flash Memory)、反及閘快閃記憶體(NAND Type Flash Memory)、電子抹除式可複寫唯讀記憶體(EEPROM)或其他不因電力消失而喪失儲存資料的非揮發式記憶體等,快閃記憶體20包含主程式區塊30、第一獨立程式區塊40、第二獨立程式區塊50及暫存區塊60。
如第2圖所示,在主程式區塊30、各獨立程式區塊(如第一獨立程式區塊40及第二獨立程式區塊50)及暫存區塊60之中,暫存區塊60可排列於最後,但本發明非以此為限。
在一些實施例中,快閃記憶體20可具有四個區塊(Bank),但本發明非以此為限。舉例而言,快閃記憶體20的容量可為128K bytes,而每個區塊之容量大小係為32 K bytes。上述主程式區塊30、第一獨立程式區塊40、第二獨立程式區塊50及暫存區塊的容量可相同,但本發明非以此為限。
再請參閱第3圖,係為本發明一實施例的主程式區塊30之示意圖。
主程式區塊30係具有開機區域31、主程式32及副程式區塊33。副程式區塊33包含第一跳躍表331及第一副程式區332。開機區域31較佳地係為4 K bytes,用以儲存開機程式或是系統I/O設定。此外,開機區域31更可用以儲存其他參數設定或是通訊程式,惟開機區域31所儲存之內容僅為舉例,本發明並非以此為限。
第一副程式區332可儲存複數個第一副程式333。當處理單元11執行主程式區塊30中的主程式32且要呼叫第一副程式區332內特定的第一副程式333時,係先呼叫第一跳躍表331,再由第一跳躍表331連結至第一副程式區332,進而指到第一副程式區332之特定的第一副程式333的儲存位址。藉此,處理單元11可執行主程式32並正確呼叫且正確執行第一副程式333。
如第3圖所示,快閃記憶體20可儲存更新程式70。更新程式70係可位於主程式區塊30的開機區域31。處理單元11執行更行程式70,以將位於暫存區塊60內的程式碼寫入主程式區塊30或任一獨立程式區塊(如第一獨立程式區塊40及第二獨立程式區塊50之其中之一)。
於此,當處理單元11執行更行程式70而將所下載的程式碼 寫入主程式區塊30、第一獨立程式區塊40或第二獨立程式區塊50時,處理單元11須抑制所有的中斷程序,且等待程式碼寫入完成後,處理單元11的執行程序才可跳出,以避免執行程序發生錯誤。
第4圖為本發明一實施例的第一獨立程式區塊40之示意圖。如第4圖所示,第一獨立程式區塊40與主程式區塊30相似,亦具有第二跳躍表41及第二副程式區42,第二副程式區42可儲存複數第二副程式421。當處理單元11要呼叫對應的第二副程式421時,係先呼叫第二跳躍表41,再由第二跳躍表41連結至第二副程式區42,進而指到第二副程式區42中對應的第二副程式421的儲存位址,藉此,處理單元11得以由主程式32正確呼叫並正確執行第二副程式421。
第5圖為本發明一實施例的第二獨立程式區塊50之示意圖。如第5圖所示,第二獨立程式區塊50具有第二跳躍表51及第二副程式區52。第二副程式區52可儲存複數第二副程式521。處理單元11呼叫對應的第二副程式521之原理與處理單元11呼叫對應的第二副程式421雷同,在此不再贅述。
第6圖為本發明一實施例之電子裝置1及遠端伺服器9之示意圖。請參閱第6圖,電子裝置1更包含與處理單元11電連接的網路連接單元2。網路連接單元2訊號連接至遠端伺服器9。藉此,處理單元11可經由網路連接單元2下載程式碼並存放於暫存區塊60。於此,暫存區塊60可為空白區塊,以儲存處理單元11自遠 端伺服器9所下載之程式碼。網路連接單元2可經由如乙太網路、GPRS網路、RS-485網路、WI-MAX或3G網路等之網路與遠端伺服器9連接。
在一些實施例中,處理單元11自遠端伺服器9下載之程式碼具有檢查碼(checksum),以供處理單元11於執行此程式碼前可先檢查所下載之程式碼是否可正確執行。
在一些實施例中,主程式區塊30、第一獨立程式區塊40及第二獨立程式區塊50,更分別具有不同的一識別碼。處理單元11自遠端伺服器下載程式碼後,處理單元11根據識別碼對欲更新的區塊(即主程式區塊30、第一獨立程式區塊40或第二獨立程式區塊50)執行更新。藉此,可避免因通訊誤傳而將程式碼誤寫入其他區塊。
當所有程式碼下載完畢後,處理單元11的執行程序將跳到程序之起始位置,使得所下載之程式重新執行。程式重新執行之後,處理單元11產生一確認訊號,並將確認信號傳送至遠端伺服器9,以通知遠端伺服器9程式碼已更新完畢。
處理單元11將程式碼更新至主程式區塊30、第一獨立程式區塊40或第二獨立程式區塊50後,此經更新的區塊可與其餘之主程式區塊30、第一獨立程式區塊40或第二獨立程式區塊50之程式共同運行。例如,當處理單元11將下載之程式碼寫入主程式區塊30後,可配合第一獨立程式區塊40及第二獨立程式區塊50中的程式碼正常運行。當處理單元11再將另一下載之程式碼寫入 第一獨立程式區塊40後,可配合主程式區塊30及第二獨立程式區塊50中的程式碼正常運行。當處理單元11再將又一下載之程式碼寫入第二獨立程式區塊50後,可配合主程式區塊30及第一獨立程式區塊40中的程式碼正常運行。也就是說,在更新程式的過程中,電子裝置1仍可藉由混合於主程式區塊30或各獨立程式區塊(如第一獨立程式區塊40或第二獨立程式區塊50)中的新舊程式而正常運作。
第7圖為本發明一實施例之暫存區塊60之示意圖。
在一些實施例中,如第3、4、5及7圖所示,主程式區塊30、第一獨立程式區塊40、第二獨立程式區塊50及暫存區塊60更可分別具有不可更新區域80。不可更新區域80可用以存放一固定程式。例如,每一區塊中通常會有些許空間(如1至2bytes)無法完整利用,因此可以利用剩餘空間作為不可更新區域80。固定程式係可為需要避免被更新的程式。例如,前述更新程式70可位於不可更新區域80內,處理單元11執行遠端更新時,不可更新區域80將不會發生任何變更。
綜上所述,根據本發明實施例之可分段更新之電子裝置1,係可透過區分為多個區塊的快閃記憶體20將處理單元11所需執行的程式碼對應區分為多個區段,以利於分批次對各區塊中的程式碼更新。如此,可解決習知遠端程式更新通常需要再外掛記憶體裝置及成本過高、體積過大與維修困難之問題。並且,在通訊過程中,電子裝置1仍可正常運作。若電子裝置1為保全主機, 則在通訊與更新過程中仍可持續提供守護任務,提高保全系統的安全性。
雖然本發明的技術內容已經以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神所作些許之更動與潤飾,皆應涵蓋於本發明的範疇內,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1‧‧‧電子裝置
2‧‧‧網路連接單元
10‧‧‧中央處理器
11‧‧‧處理單元
20‧‧‧快閃記憶體
30‧‧‧主程式區塊
31‧‧‧開機區域
32‧‧‧主程式
33‧‧‧副程式區塊
331‧‧‧第一跳躍表
332‧‧‧第一副程式區
333‧‧‧第一副程式
40‧‧‧第一獨立程式區塊
41‧‧‧第二跳躍表
42‧‧‧第二副程式區
421‧‧‧第二副程式
50‧‧‧第二獨立程式區塊
51‧‧‧第二跳躍表
52‧‧‧第二副程式區
521‧‧‧第二副程式
60‧‧‧暫存區塊
70‧‧‧更新程式
80‧‧‧不可更新區域
9‧‧‧遠端伺服器
第1圖為本發明一實施例之可分段更新程式的電子裝置之示意圖。
第2圖為本發明一實施例之快閃記憶體之示意圖。
第3圖為本發明一實施例之主程式區塊之示意圖。
第4圖為本發明一實施例之第一獨立程式區塊之外觀圖。
第5圖為本發明一實施例之第二獨立程式區塊之示意圖。
第6圖為本發明一實施例之電子裝置及遠端伺服器之示意圖。
第7圖為本發明一實施例之暫存區塊之示意圖。
20‧‧‧快閃記憶體
30‧‧‧主程式區塊
40‧‧‧第一獨立程式區塊
50‧‧‧第二獨立程式區塊
60‧‧‧暫存區塊

Claims (10)

  1. 一種可分段更新程式之電子裝置,包含:一中央處理器,包含:一處理單元;及一快閃記憶體,電連接該處理單元,包含:一主程式區塊,包含一主程式及一副程式區塊,該副程式區塊包含一第一跳躍表及一第一副程式區,供該處理單元執行該主程式,並呼叫該第一跳躍表而連結至該第一副程式區;複數個獨立程式區塊,各該獨立程式區塊包含一第二跳躍表及一第二副程式區,供該處理單元呼叫該第二跳躍表而連結至對應的該第二副程式區;及一暫存區塊,存放自遠端下載之一程式碼,供該處理單元將該程式碼更新至該些獨立程式區塊中之至少一者或該主程式區塊。
  2. 如請求項1所述之可分段更新程式之電子裝置,其中該主程式區塊及各該獨立程式區塊更分別包含不同之一識別碼,該處理單元根據該些識別碼對欲更新的該些獨立程式區塊中之至少一者或該主程式區塊執行更新。
  3. 如請求項1所述之可分段更新程式之電子裝置,其中該主程式區塊、各該獨立程式區塊及該暫存區塊分別更包含一不可更新區域,用以存放一固定程式。
  4. 如請求項3所述之可分段更新程式之電子裝置,其中該快閃記憶體更包含一更新程式,儲存於該主程式區塊、各該獨立程式區塊及該暫存區塊的其中之一的該不可更新區域。
  5. 如請求項1所述之可分段更新程式之電子裝置,其中該第一副程式區包含複數個第一副程式,該處理單元呼叫該第一跳躍表而執行對應的該些第一副程式中之至少一者,該第二副程式區包含複數個第二副程式,該處理單元呼叫該第二跳躍表而執行對應的該些第二副程式中之至少一者。
  6. 如請求項1所述之可分段更新程式之電子裝置,其中該主程式區塊、該些獨立程式區塊及該暫存區塊之中,該暫存區塊係排列於最後。
  7. 如請求項1所述之可分段更新程式之電子裝置,其中該暫存區塊所存放的該程式碼包含一檢查碼,該處理單元根據該檢查碼檢查該程式碼是否正確。
  8. 如請求項1所述之可分段更新程式之電子裝置,更包含一網路連接單元,該網路連接單元電連接該處理單元並訊號連接一遠端伺服器,該處理單元係經由該網路連接單元向該遠端伺服器下載並存放該程式碼於該暫存區塊。
  9. 如請求項8所述之可分段更新程式之電子裝置,其中於分別對應該主程式區塊及該些獨立程式區塊之該些程式碼均更新完畢後,該處理單元經由該網路連接單元傳送一確認信號至該遠端伺服器。
  10. 如請求項1所述之可分段更新程式之電子裝置,其中經該處理單元更新的該些獨立程式區塊中之至少一者或該主程式區塊,可與其餘之主程式區塊或該些獨立程式區塊中之程式共同運行。
TW101142479A 2012-11-14 2012-11-14 可分段更新程式之電子裝置 TWI571801B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101142479A TWI571801B (zh) 2012-11-14 2012-11-14 可分段更新程式之電子裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101142479A TWI571801B (zh) 2012-11-14 2012-11-14 可分段更新程式之電子裝置

Publications (2)

Publication Number Publication Date
TW201419152A TW201419152A (zh) 2014-05-16
TWI571801B true TWI571801B (zh) 2017-02-21

Family

ID=51294373

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101142479A TWI571801B (zh) 2012-11-14 2012-11-14 可分段更新程式之電子裝置

Country Status (1)

Country Link
TW (1) TWI571801B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI263908B (en) * 2005-07-12 2006-10-11 Inventec Corp Update system and method
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
TWI306193B (en) * 2004-09-30 2009-02-11 Intel Corp Self-monitoring and updating of firmware over a network
TW200941217A (en) * 2008-03-21 2009-10-01 Toshiba Kk Data updating method, memory system and memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI306193B (en) * 2004-09-30 2009-02-11 Intel Corp Self-monitoring and updating of firmware over a network
TWI263908B (en) * 2005-07-12 2006-10-11 Inventec Corp Update system and method
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
TW200941217A (en) * 2008-03-21 2009-10-01 Toshiba Kk Data updating method, memory system and memory device

Also Published As

Publication number Publication date
TW201419152A (zh) 2014-05-16

Similar Documents

Publication Publication Date Title
TWI515660B (zh) 韌體變量更新方法
US9354987B2 (en) Systems and methods for out-of-band backup and restore of hardware profile information
CN101815988A (zh) 固件映像更新和管理
US8423991B2 (en) Embedded network device and firmware upgrading method
ES2824830T3 (es) Procedimiento de actualización de software para un dispositivo integrado
US8601255B2 (en) Approaches for updating bios
US20070055969A1 (en) System and method for updating firmware
TWI722269B (zh) 韌體更新方法及使用此方法的電子裝置
WO2013103023A1 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US7908417B2 (en) Motherboard system, storage device for booting up thereof and connector
US8060794B2 (en) NAND flash memory and method for managing data thereof
CN103106092A (zh) 终端设备中系统软件升级方法和装置
CN103365696A (zh) Bios镜像文件获取方法及装置
US20140258699A1 (en) Boot fault tolerant device and method thereof
TWI571801B (zh) 可分段更新程式之電子裝置
CN101976577B (zh) 显示设备软件的布置方法及控制参数写入flash的方法
CN112988465A (zh) 一种单片机升级失败自动恢复运行的方法
US20070169086A1 (en) System and method for updating in-system program
CN109558274A (zh) 一种信息处理方法、装置及计算机可读存储介质
JP5341947B2 (ja) Icカード、icカードの制御方法、および携帯可能電子装置の制御方法
TWI480799B (zh) 嵌入式系統之韌體更新方法及設備
JP2011054017A (ja) 自動販売機の制御装置
US20160103670A1 (en) Firmware updating method and electronic apparatus using the same
JP2010157026A (ja) プログラムエリア切替方法
CN114371960A (zh) 嵌入式设备的参数管理方法以及系统