專利名稱:微處理器中固件更新的方法及固件更新系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種具內(nèi)控程序的微處理器,且特別是有關(guān)于一種具加載或啟動(dòng)
程序的微處理器。
背景技術(shù):
在一般低階的系統(tǒng)(如嵌入式系統(tǒng))中,通常會(huì)使用功能較簡(jiǎn)單且成本較低的產(chǎn) 品,且此類產(chǎn)品一般不需要具有在線更新的功能。例如,系統(tǒng)中用來(lái)控制顯示燈號(hào)或表示其 它狀態(tài)的微處理器,因?yàn)槠涔δ茌^簡(jiǎn)單,所以其中的固件(firmware)大多都已在生產(chǎn)時(shí)便 確定,而不具有在線更新的功能。 然而,如果當(dāng)微處理器中的固件產(chǎn)生錯(cuò)誤或要更新固件時(shí),則需要將微處理器送 回原廠重新燒錄,因而造成使用者的不便和負(fù)擔(dān)。 由上可知,需要一種微處理器中固件更新的方法及其應(yīng)用,借以利用原有的硬件 架構(gòu)對(duì)微處理器的固件進(jìn)行更新。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種微處理器中固件更新的方法及固件更 新系統(tǒng),用以利用儲(chǔ)存在微處理器的閃存的一內(nèi)存區(qū)塊(memory block)的更新程序,對(duì)儲(chǔ) 存在閃存的另一區(qū)塊的固件做更新。其中,更新程序用來(lái)更新固件的更新圖像文件是通過(guò) 現(xiàn)存的總線獲得。 根據(jù)本發(fā)明一實(shí)施例,本發(fā)明提供一種微處理器中固件更新的方法,包含以下步 驟 (1)將微處理器的一閃存分配為一第一內(nèi)存區(qū)塊和一第二內(nèi)存區(qū)塊,其中第一內(nèi)
存區(qū)塊是用以儲(chǔ)存一固件,且第二內(nèi)存區(qū)塊是用以儲(chǔ)存一更新程序。
(2)當(dāng)微處理器根據(jù)第一內(nèi)存區(qū)塊運(yùn)作時(shí),偵測(cè)是否欲更新固件。
(3)當(dāng)更新固件時(shí),執(zhí)行第二內(nèi)存區(qū)塊中的更新程序,并通過(guò)一總線從一服務(wù)器接
收一更新圖像文件(update image)。 (4)根據(jù)更新程序,用更新圖像文件更新第一內(nèi)存區(qū)塊中的固件。 根據(jù)本發(fā)明另一實(shí)施例,本發(fā)明另提供一種固件更新系統(tǒng),包含一總線裝置和至
少一微處理器??偩€裝置電性連接一服務(wù)器。微處理器電性連接總線裝置。微處理器包含
一閃存、一偵測(cè)模塊和一更新模塊。閃存包含一運(yùn)作模塊和一啟動(dòng)模塊。運(yùn)作模塊用以儲(chǔ)
存一固件。啟動(dòng)模塊用以儲(chǔ)存一更新程序。偵測(cè)模塊用以偵測(cè)固件是否欲更新,并在固件
欲更新時(shí)停止固件的執(zhí)行動(dòng)作。更新模塊用以執(zhí)行啟動(dòng)模塊中的更新程序,并通過(guò)總線從
服務(wù)器接收一更新圖像文件用于對(duì)固件進(jìn)行更新。 通過(guò)本發(fā)明的固件更新方法和系統(tǒng)可以利用原有的硬件架構(gòu)對(duì)微處理器的固件 進(jìn)行更新,從而方便使用者。
為讓本發(fā)明的上述和其它目的、特征、優(yōu)點(diǎn)與實(shí)施例能更明顯易懂,所附附圖的詳
細(xì)說(shuō)明如下圖1是依照本發(fā)明一實(shí)施例的微處理器中固件更新方法的流程2是依照本發(fā)明另一實(shí)施例的固件更新系統(tǒng)的功能方塊圖;圖3是圖2中微處理器400的一實(shí)施例。
主要組件符號(hào)說(shuō)明100 :固件更新方法430 :更新模塊102 114 :步驟432 :接收器300 :總線裝置440 :地址管腳400 :微處理器450 :更新管腳410 :閃存460 :寫入保護(hù)模塊412 :運(yùn)作模塊470 :重新啟動(dòng)模塊414 :啟動(dòng)模塊500 :服務(wù)器420 :偵測(cè)模塊
具體實(shí)施例方式
參照?qǐng)Dl,其是依照本發(fā)明一實(shí)施例的微處理器中固件更新方法的流程圖。固件更 新方法100將微處理器的固件和更新程序分別儲(chǔ)存在微處理器的閃存的兩個(gè)內(nèi)存區(qū)塊,并 在欲更新固件時(shí),用儲(chǔ)存在其中一個(gè)區(qū)塊的更新程序?qū)?chǔ)存在另一區(qū)塊的固件做更新。固 件更新方法100包含以下步驟(應(yīng)了解到,在本實(shí)施例中所提及的步驟,除特別說(shuō)明其順序 的外,均可依實(shí)際需要調(diào)整其前后順序,甚至可能同時(shí)或部分同時(shí)執(zhí)行)
(1)將微處理器的一閃存分配為一第一內(nèi)存區(qū)塊一第二內(nèi)存區(qū)塊,其中第一內(nèi)存 區(qū)塊是用以儲(chǔ)存一固件,第二內(nèi)存區(qū)塊是用以儲(chǔ)存一更新程序(步驟102)。
(2)當(dāng)微處理器根據(jù)第一內(nèi)存區(qū)塊運(yùn)作時(shí),偵測(cè)是否欲更新固件(步驟104)。其 中,還可根據(jù)微處理器的一更新管腳取得一更新信號(hào),以偵測(cè)是否欲更新固件。進(jìn)一步來(lái) 說(shuō),此更新管腳可通過(guò)上述的總線從服務(wù)器取得更新信號(hào),或是可由是否短路或其它電路 上的設(shè)計(jì),用來(lái)作為其更新信號(hào)從而偵測(cè)是否欲更新固件。在實(shí)際操作上,可將微處理器現(xiàn) 有的管腳定義為更新管腳,以取得更新信號(hào)。 (3)當(dāng)欲更新固件時(shí),執(zhí)行第二內(nèi)存區(qū)塊中的更新程序,并通過(guò)一總線從一服務(wù)器 接收一更新圖像文件(步驟106)。然而當(dāng)不欲更新固件時(shí),則繼續(xù)執(zhí)行第一內(nèi)存區(qū)塊的固 件(步驟107)。 在步驟106中,從服務(wù)器接收更新圖像文件所經(jīng)的總線可為一內(nèi)置集成電路 (Inter-Integrated Circuit, I2C)總線、一智能型平臺(tái)管理總線(IntelligentPlatform Management Bus, IPMB)或其它總線。實(shí)際操作上,可利用微處理器現(xiàn)有的管腳連接總線, 以透過(guò)總線從服務(wù)器接收一更新圖像文件。在步驟106中所接收的更新圖像文件可儲(chǔ)存于 第二內(nèi)存區(qū)塊。這樣,由于更新程序和更新圖像文件與固件儲(chǔ)存在閃存的不同區(qū)塊,使得在 更新固件時(shí),不會(huì)更動(dòng)到儲(chǔ)存于另一區(qū)塊的更新程序和更新圖像文件。此外,也不需更動(dòng)硬 件架構(gòu),即可用服務(wù)器現(xiàn)有的總線和微處理器本身的管腳來(lái)更新微處理器的固件。
此外,微處理器還可根據(jù)本身地址透過(guò)總線從服務(wù)器接收更新圖像文件。因此,步 驟106中還可包含根據(jù)微處理器的一地址管腳,設(shè)定微處理器的一地址;以及根據(jù)微處理 器的地址,透過(guò)總線從服務(wù)器接收更新圖像文件。 在實(shí)際操作上,可將微處理器現(xiàn)有的管腳定義為地址管腳。這樣,微處理器即可根
據(jù)地址從服務(wù)器接收更新圖像文件。此外,當(dāng)固件更新方法ioo應(yīng)用于對(duì)多個(gè)微處理器做
更新時(shí),服務(wù)器可根據(jù)各微處理器的地址,而將更新程序傳送至要更新的微處理器。
接著,為了進(jìn)一步避免儲(chǔ)存更新程序和更新圖像文件的第二內(nèi)存區(qū)塊損毀,在更 新第一內(nèi)存區(qū)塊的固件前,可將第二內(nèi)存區(qū)塊設(shè)定為寫入保護(hù)(步驟108)。這樣,由于在更 新固件前,第二內(nèi)存區(qū)塊便被設(shè)定為寫入保護(hù),使得第二內(nèi)存區(qū)塊免于在更新過(guò)程中被存 取,而避免更新程序和更新圖像文件損毀。 此外,在更新固件時(shí),將只讀取第二內(nèi)存區(qū)塊,而暫時(shí)停止存取第一內(nèi)存區(qū)塊上的 固件。因此,當(dāng)欲更新固件時(shí),暫時(shí)停止執(zhí)行第一內(nèi)存區(qū)塊的固件(步驟110)。這樣,在更 新固件時(shí),將不會(huì)執(zhí)行第一內(nèi)存區(qū)塊上的固件,可避免固件損毀。 (4)接著,再根據(jù)更新程序,以更新圖像文件更新第一內(nèi)存區(qū)塊中的固件(步驟 112)。 然后,在更新第一內(nèi)存區(qū)塊的固件后,重新啟動(dòng)微處理器(步驟114),完成更新的 動(dòng)作。這樣,微處理器即可依據(jù)更新后的固件運(yùn)作。 參照?qǐng)D2,其是依照本發(fā)明另一實(shí)施例的固件更新系統(tǒng)的功能方塊圖。此固件更新 系統(tǒng)包含一總線裝置300、一微處理器400和一服務(wù)器500??偩€裝置300電性連接服務(wù)器 500。進(jìn)一步來(lái)說(shuō),總線裝置300可以內(nèi)置集成電路總線、智能型平臺(tái)管理總線或其它總線 的形式與服務(wù)器500電性連接。微處理器400電性連接總線裝置300。這樣,微處理器400 即可透過(guò)現(xiàn)有的總線與服務(wù)器500連結(jié)。 參照?qǐng)D3,其是圖2中微處理器400的一實(shí)施例。進(jìn)一步來(lái)說(shuō),微處理器400包含 一閃存410、一偵測(cè)模塊420和一更新模塊430。閃存410包含一運(yùn)作模塊412和一啟動(dòng)模 塊414,其中運(yùn)作模塊412用以儲(chǔ)存一固件,而啟動(dòng)模塊414則用以儲(chǔ)存一更新程序。偵測(cè)模 塊420用以偵測(cè)是否欲更新固件,并在欲更新固件時(shí),停止固件的執(zhí)行動(dòng)作。更新模塊430 用以執(zhí)行啟動(dòng)模塊414中的更新程序,并通過(guò)總線從服務(wù)器500接收一更新圖像文件以對(duì) 固件進(jìn)行更新。也就是說(shuō),更新模塊430所執(zhí)行的更新程序根據(jù)更新圖像文件對(duì)固件更新。 這樣,即不需更動(dòng)微處理器400的硬件結(jié)構(gòu),便可利用服務(wù)器現(xiàn)有的總線更新微處理器400 的固件。 實(shí)際操作上,微處理器400可依據(jù)其地址來(lái)接收更新圖像文件。因此,更新模塊 430可包含一接收器432。接收器432用以根據(jù)微處理器400的地址,通過(guò)總線從服務(wù)器500 接收更新圖像文件。其中,此接收器432可通過(guò)微處理器400的一管腳與總線電性連接。
此外,微處理器400可以先行設(shè)定其地址。因此,微處理器400可包含一地址管腳 440。其中,地址管腳440可用微處理器400現(xiàn)有的管腳實(shí)際操作,并表示微處理器400的 地址。實(shí)際操作上,可對(duì)地址管腳440輸入不同的數(shù)字信號(hào)或不同的電壓來(lái)設(shè)定微處理器 400的地址。這樣,當(dāng)有多個(gè)微處理器連接于服務(wù)器上時(shí),服務(wù)器可依據(jù)各微處理器的地址 對(duì)所欲更新的微處理器進(jìn)行更新。 實(shí)際操作上,微處理器400可依據(jù)一更新信號(hào)來(lái)偵測(cè)是否欲更新固件。因此,微處理器400可包含一更新管腳450,并根據(jù)更新管腳450取得一更新信號(hào),以偵測(cè)是否欲更新
固件,其中更新管腳450可利用微處理器400現(xiàn)有的管腳實(shí)作,并表示是否欲更新固件。進(jìn)
一步來(lái)說(shuō),更新管腳450可通過(guò)上述的總線從服務(wù)器500取得更新信號(hào),或是可根據(jù)是否短
路或其它電路上的設(shè)計(jì),用來(lái)作為其更新信號(hào)從而偵測(cè)是否欲更新固件。 此外,微處理器400還可包含一寫入保護(hù)模塊460,用于在對(duì)運(yùn)作模塊412上的固
件更新前,將啟動(dòng)模塊414設(shè)定為寫入保護(hù)。這樣,可避免啟動(dòng)模塊414在更新過(guò)程中被寫
入,從而避免更新程序或更新圖像文件損毀。 微處理器400還可包含一重新啟動(dòng)模塊470,用于在運(yùn)作模塊412的固件更新后,
重新啟動(dòng)微處理器400。這樣,微處理器400就可以更新后的固件運(yùn)作。 雖然本發(fā)明已以一較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何熟悉此
技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保
護(hù)范圍當(dāng)視后附的權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
一種微處理器中固件更新的方法,其特征在于,包含將該微處理器的一閃存分配為一第一內(nèi)存區(qū)塊和一第二內(nèi)存區(qū)塊,其中該第一內(nèi)存區(qū)塊是用以儲(chǔ)存一固件,且該第二內(nèi)存區(qū)塊是用以儲(chǔ)存一更新程序;當(dāng)該微處理器根據(jù)該第一內(nèi)存區(qū)塊運(yùn)作時(shí),偵測(cè)是否欲更新該固件;當(dāng)欲更新該固件時(shí),執(zhí)行該第二內(nèi)存區(qū)塊中的更新程序,并通過(guò)一總線自一服務(wù)器接收一更新圖像文件;以及根據(jù)該更新程序,用該更新圖像文件更新該第一內(nèi)存區(qū)塊中的該固件。
2. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,還包含 根據(jù)該微處理器的一地址管腳,設(shè)定該微處理器的一地址;以及 根據(jù)該微處理器的地址,通過(guò)該總線從該服務(wù)器接收該更新圖像文件。
3. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,該總線是一內(nèi)置集 成電路總線。
4. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,該總線是一智能型 平臺(tái)管理總線。
5. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,偵測(cè)是否欲更新該 固件的步驟包含根據(jù)該微處理器的一更新管腳取得一更新信號(hào),以偵測(cè)是否要更新該固件。
6. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,還包含 在更新該第一內(nèi)存區(qū)塊的該固件前,將該第二內(nèi)存區(qū)塊設(shè)定為寫入保護(hù)。
7. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,還包含 當(dāng)要更新該固件時(shí),暫時(shí)停止執(zhí)行該第一內(nèi)存區(qū)塊的該固件。
8. 根據(jù)權(quán)利要求1所述的微處理器中固件更新方法,其特征在于,還包含 在更新該第一內(nèi)存區(qū)塊的該固件后,重新啟動(dòng)該微處理器。
9. 一種固件更新系統(tǒng),其特征在于,包含 一總線裝置,電性連接一服務(wù)器;以及 至少一微處理器,電性連接該總線裝置,包含 一閃存,包含一運(yùn)作模塊,用以儲(chǔ)存一固件;以及 一啟動(dòng)模塊,用以儲(chǔ)存一更新程序;一偵測(cè)模塊,用以偵測(cè)是否欲更新該固件,并在欲更新該固件時(shí),停止該固件的執(zhí)行動(dòng) 作;以及一更新模塊,用以在欲更新該固件時(shí),執(zhí)行該啟動(dòng)模塊中的該更新程序,并通過(guò)該總線 從該服務(wù)器接收一更新圖像文件以對(duì)該固件進(jìn)行更新。
10. 根據(jù)權(quán)利要求9所述的固件更新系統(tǒng),其特征在于,該更新模塊包含 一接收器,用以根據(jù)該微處理器的地址,透過(guò)該總線從該服務(wù)器接收該更新圖像文件。
全文摘要
本發(fā)明涉及一種微處理器中固件更新的方法,包含以下步驟將微處理器的一閃存分配為一第一內(nèi)存區(qū)塊和一第二內(nèi)存區(qū)塊,其中第一內(nèi)存區(qū)塊是用以儲(chǔ)存一固件,第二內(nèi)存區(qū)塊是用以儲(chǔ)存一更新程序。當(dāng)微處理器根據(jù)第一內(nèi)存區(qū)塊運(yùn)作時(shí),偵測(cè)是否欲更新固件。當(dāng)欲更新固件時(shí),執(zhí)行第二內(nèi)存區(qū)塊中的更新程序,并通過(guò)一總線從一服務(wù)器接收一更新圖像文件。根據(jù)更新程序,利用更新圖像文件更新第一內(nèi)存區(qū)塊中的固件。本發(fā)明還揭露了一種固件更新系統(tǒng)。
文檔編號(hào)G06F9/445GK101727333SQ20081017233
公開(kāi)日2010年6月9日 申請(qǐng)日期2008年10月31日 優(yōu)先權(quán)日2008年10月31日
發(fā)明者鄭仰民 申請(qǐng)人:英業(yè)達(dá)股份有限公司