專利名稱:可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種更新軟件的裝置及方法,特別是涉及一種可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法。
背景技術(shù):
請(qǐng)參閱圖1,圖1為已知嵌入式系統(tǒng)(embedded system)100的示意圖。已知嵌入式系統(tǒng)100包含有一微處理器(microcontroller)104、多個(gè)存儲(chǔ)裝置102、106以及一下載接口108。如圖1所示,微處理器104、存儲(chǔ)裝置102、106以及下載接口108均通過(guò)一總線(bus)101來(lái)互相傳遞數(shù)據(jù)。存儲(chǔ)裝置102用來(lái)存儲(chǔ)一系統(tǒng)軟件Sys_1與一開機(jī)映像文件(boot image)Boot_1,一般而言,存儲(chǔ)裝置102為一非易失性存儲(chǔ)器(例如閃存)。微處理器104用來(lái)分別將系統(tǒng)軟件Sys_1與開機(jī)映像文件Boot_1轉(zhuǎn)換為一系統(tǒng)程序代碼(system code)Sys_Code與一開機(jī)程序代碼(boot code)Boot_Code,并依序執(zhí)行開機(jī)程序代碼Boot_Code與該系統(tǒng)程序代碼Sys_Code以控制嵌入式系統(tǒng)100的開機(jī)操作。存儲(chǔ)裝置106用來(lái)暫存上述的系統(tǒng)程序代碼Sys_Code與開機(jī)程序代碼Boot_Code,一般而言,存儲(chǔ)裝置106為一易失性存儲(chǔ)器(例如隨機(jī)存取存儲(chǔ)器)。下載接口108用來(lái)經(jīng)由一數(shù)據(jù)傳輸媒介120耦接于一計(jì)算機(jī)主機(jī)(PC host)130,另外,計(jì)算機(jī)主機(jī)130中記錄有另一系統(tǒng)軟件Sys_2。對(duì)于已知嵌入式系統(tǒng)100而言,下載接口108可以是串行接口(Serial Port)、測(cè)試行動(dòng)聯(lián)合組織(Joint Test Action Group,JTAG)接口或者是網(wǎng)絡(luò)接口,然而,使用者必須手動(dòng)地操作計(jì)算機(jī)主機(jī)130,以通過(guò)數(shù)據(jù)傳輸媒介120,例如一連接線(cable)、一內(nèi)部網(wǎng)絡(luò)(LAN or WLAN)或一外部網(wǎng)絡(luò)(Internet),來(lái)將系統(tǒng)軟件Sys_2上傳嵌入式系統(tǒng)100并更新原本的系統(tǒng)軟件Sys_1。
請(qǐng)參閱圖2,圖2為已知更新嵌入式系統(tǒng)100的系統(tǒng)軟件Sys_1的操作流程圖。已知更新系統(tǒng)軟件Sys_1的流程包含下列步驟步驟200經(jīng)由下載接口108與數(shù)據(jù)傳輸媒介120將嵌入式系統(tǒng)100耦接于計(jì)算機(jī)主機(jī)130;步驟210一使用者手動(dòng)地操作計(jì)算機(jī)主機(jī)130,并通過(guò)下載接口108將計(jì)算機(jī)主機(jī)130存儲(chǔ)器的系統(tǒng)軟件Sys_2上傳至嵌入式系統(tǒng)100中的存儲(chǔ)裝置106內(nèi);以及步驟220微處理器104讀取存儲(chǔ)裝置106所紀(jì)錄的系統(tǒng)軟件Sys_2,并使用系統(tǒng)軟件Sys_2來(lái)更新存儲(chǔ)裝置104內(nèi)原本的系統(tǒng)軟件Sys_1。
由上述說(shuō)明可知,已知嵌入式系統(tǒng)100于更新其系統(tǒng)軟件(例如操作系統(tǒng))時(shí),其必須依賴一外部的計(jì)算機(jī)主機(jī)130的手動(dòng)操作,故當(dāng)欲更新的嵌入式系統(tǒng)的數(shù)量極為龐大時(shí),大量的軟件更新時(shí)間便無(wú)法避免。此外,由于已知嵌入式系統(tǒng)于更新系統(tǒng)軟件必須要使用者手動(dòng)地操作計(jì)算機(jī)主機(jī)130,故使用者不但需要自備計(jì)算機(jī)主機(jī)130,起碼還需具備操作計(jì)算機(jī)的知識(shí)與能力,因此,對(duì)于訴求應(yīng)用于消費(fèi)性電子產(chǎn)品的嵌入式系統(tǒng)來(lái)說(shuō),使用者操作上的不方便便是一個(gè)嚴(yán)重的缺點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明提供一種可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法,以解決上述的問(wèn)題。
依據(jù)本發(fā)明的一實(shí)施例,其披露了一種可自動(dòng)更新系統(tǒng)軟件的嵌入式系統(tǒng)(embedded system)。該嵌入式系統(tǒng)包含有一第一存儲(chǔ)裝置,用來(lái)存儲(chǔ)一第一系統(tǒng)軟件與一開機(jī)映像文件(boot image);一微處理器(microcontroller),耦接于該第一存儲(chǔ)裝置,用來(lái)分別將該系統(tǒng)軟件與該開機(jī)映像文件轉(zhuǎn)換為一系統(tǒng)程序代碼與一開機(jī)程序代碼(boot code),并用來(lái)依序執(zhí)行該開機(jī)程序代碼與該系統(tǒng)程序代碼以控制該嵌入式系統(tǒng)的開機(jī)操作;以及一聯(lián)機(jī)接口,耦接于該微處理器,用來(lái)經(jīng)由一數(shù)據(jù)傳輸媒介耦接于一外部數(shù)據(jù)存儲(chǔ)裝置,該外部數(shù)據(jù)存儲(chǔ)裝置記錄有一第二系統(tǒng)軟件;其中該開機(jī)程序代碼包含有一中間接口機(jī)制程序(update agent interfaceprogramming,UAIP),以及該微處理器于執(zhí)行該系統(tǒng)程序代碼前,其可執(zhí)行該中間接口機(jī)制程序,以經(jīng)由該聯(lián)機(jī)接口自該外部數(shù)據(jù)存儲(chǔ)裝置讀取該第二系統(tǒng)軟件來(lái)更新該第一系統(tǒng)軟件。
依據(jù)本發(fā)明的一實(shí)施例,其披露了一種可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的方法,該嵌入式系統(tǒng)存儲(chǔ)有一第一系統(tǒng)軟件與一開機(jī)映像文件。該方法包含有分別將該系統(tǒng)軟件與該開機(jī)映像文件轉(zhuǎn)換為一系統(tǒng)程序代碼與一開機(jī)程序代碼,其中該開機(jī)程序代碼與該系統(tǒng)程序代碼預(yù)定依序執(zhí)行以控制該嵌入式系統(tǒng)的開機(jī)操作,以及該開機(jī)程序代碼包含有一中間接口機(jī)制程序;經(jīng)由一數(shù)據(jù)傳輸媒介將該嵌入式系統(tǒng)耦接于一外部數(shù)據(jù)存儲(chǔ)裝置,該外部數(shù)據(jù)存儲(chǔ)裝置記錄有一第二系統(tǒng)軟件;以及于執(zhí)行該系統(tǒng)程序代碼前,執(zhí)行該中間接口機(jī)制程序以自該外部數(shù)據(jù)存儲(chǔ)裝置讀取該第二系統(tǒng)軟件來(lái)更新該第一系統(tǒng)軟件。
本發(fā)明可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法,是經(jīng)由一中間接口機(jī)制程序于加載開機(jī)程序代碼時(shí)即進(jìn)行判斷并依據(jù)判斷結(jié)果來(lái)決定是否自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件,其可大幅減少嵌入式系統(tǒng)本身存儲(chǔ)器的浪費(fèi),亦即,中間接口機(jī)制程序是置放于開機(jī)程序代碼中被執(zhí)行,而非置于應(yīng)用軟件中被執(zhí)行,故不會(huì)于嵌入式系統(tǒng)完成開機(jī)后占用有限的存儲(chǔ)器容量;此外,本發(fā)明可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法由于可達(dá)到自動(dòng)更新系統(tǒng)軟件的目的,所以大幅地降低了已知嵌入式系統(tǒng)軟件更新時(shí)需耗費(fèi)的人力與成本,并經(jīng)由減少使用者的操作負(fù)擔(dān)而提高嵌入式系統(tǒng)的使用便利性與市場(chǎng)競(jìng)爭(zhēng)力。
圖1為已知嵌入式系統(tǒng)的示意圖。
圖2為已知更新嵌入式系統(tǒng)的系統(tǒng)軟件的方法的操作流程圖。
圖3為本發(fā)明第一實(shí)施例的嵌入式系統(tǒng)的示意圖。
圖4為本發(fā)明第二實(shí)施例的嵌入式系統(tǒng)的示意圖。
圖5為本發(fā)明自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的方法的操作流程圖。
附圖符號(hào)說(shuō)明100、300、500嵌入式系統(tǒng)101、301、501總線104、304、504微處理器
102、106、302、 存儲(chǔ)裝置306、502、506108 下載接口120、310、512數(shù)據(jù)傳輸媒介130 計(jì)算機(jī)主機(jī)320、520 外部數(shù)據(jù)存儲(chǔ)裝置308、508 聯(lián)機(jī)接口510 人機(jī)接口裝置具體實(shí)施方式
請(qǐng)參閱圖3,圖3為本發(fā)明第一實(shí)施例的嵌入式系統(tǒng)(embeddedsystem)300的示意圖。嵌入式系統(tǒng)300包含有一微處理器304、多個(gè)存儲(chǔ)裝置302、306以及一聯(lián)機(jī)接口308。如圖3所示,微處理器304、多個(gè)存儲(chǔ)裝置302、306以及聯(lián)機(jī)接口308經(jīng)由一總線301來(lái)彼此傳送數(shù)據(jù)。在本實(shí)施例中,嵌入式系統(tǒng)300使用閃存(flash memory)來(lái)實(shí)施存儲(chǔ)裝置302以及使用動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)來(lái)實(shí)施存儲(chǔ)裝置306,然而本發(fā)明并未限定存儲(chǔ)裝置的種類,存儲(chǔ)裝置302亦可以其它種類的非易失性(non-volatile)存儲(chǔ)器來(lái)加以實(shí)施;同理,存儲(chǔ)裝置306亦可以其它種類的易失性(volatile)存儲(chǔ)器來(lái)加以實(shí)施。
存儲(chǔ)裝置302用來(lái)存儲(chǔ)一系統(tǒng)軟件Sys_1與一開機(jī)映像文件(bootimage)Boot_1,而微處理器304用來(lái)分別將系統(tǒng)軟件Sys_1與開機(jī)映像文件Boot_1轉(zhuǎn)換為一系統(tǒng)程序代碼(system code)Sys_Code與一開機(jī)程序代碼(boot code)Boot_Code,并用來(lái)依序執(zhí)行開機(jī)程序代碼Boot_Code與系統(tǒng)程序代碼Sys_Code以控制嵌入式系統(tǒng)300的開機(jī)操作,請(qǐng)注意,于本實(shí)施例中,開機(jī)程序代碼Boot_Code中包含有一中間接口機(jī)制程序(updateagent interface programming)UAIP,一燒錄程序Flashing_Code以及一網(wǎng)絡(luò)連結(jié)程序Network_Code。如圖3所示,存儲(chǔ)裝置306用來(lái)暫存系統(tǒng)程序代碼Sys_Code與開機(jī)程序代碼Boot_Code,以供微處理器304讀取開機(jī)程序代碼Boot_Code與系統(tǒng)程序代碼Sys_Code來(lái)執(zhí)行相關(guān)操作。聯(lián)機(jī)接口308用來(lái)經(jīng)由一數(shù)據(jù)傳輸媒介310耦接于一外部數(shù)據(jù)存儲(chǔ)裝置320,其中外部數(shù)據(jù)存儲(chǔ)裝置320記錄有一系統(tǒng)軟件Sys_2。請(qǐng)注意,本實(shí)施例中,聯(lián)機(jī)接口308為一網(wǎng)絡(luò)接口,用來(lái)經(jīng)由一傳輸控制協(xié)議和互連網(wǎng)協(xié)議(TransmissionControl Protocol/Internet Protocol,TCP/IP)與外部存儲(chǔ)裝置320(例如一服務(wù)器)進(jìn)行數(shù)據(jù)傳輸,此外,數(shù)據(jù)傳輸媒介310可以是一內(nèi)部網(wǎng)絡(luò)(local network or Intranet)或一外部網(wǎng)絡(luò)(Internet),然而,上述僅為本發(fā)明的較佳實(shí)施例,所以,本發(fā)明實(shí)際上并未限定聯(lián)機(jī)接口以及數(shù)據(jù)傳輸媒介的種類。
為清楚說(shuō)明本發(fā)明軟件更新流程的運(yùn)作,請(qǐng)參閱圖4,圖4為圖3所示的嵌入式系統(tǒng)300自動(dòng)更新系統(tǒng)軟件Sys_1的操作流程圖。自動(dòng)更新系統(tǒng)軟件Sys_1的流程包含有下列步驟步驟400開啟嵌入式系統(tǒng)300的電源;步驟402微處理器304分別將系統(tǒng)軟件Sys_1與開機(jī)映像文件Boot_1轉(zhuǎn)換為系統(tǒng)程序代碼Sys_Code與開機(jī)程序代碼Boot_Code,其中開機(jī)程序代碼Boot_Code與系統(tǒng)程序代碼Sys_Code系依序被微處理器304所執(zhí)行以控制嵌入式系統(tǒng)300的開機(jī)操作;步驟404于系統(tǒng)程序代碼Sys_Code執(zhí)行前,微處理器304執(zhí)行中間接口機(jī)制程序UAIP;步驟406中間接口機(jī)制程序UAIP啟動(dòng)網(wǎng)絡(luò)連結(jié)程序Network_Code來(lái)經(jīng)由數(shù)據(jù)傳輸媒介310連結(jié)嵌入式系統(tǒng)300與外部數(shù)據(jù)存儲(chǔ)裝置320;步驟408中間接口機(jī)制程序UAIP讀取系統(tǒng)軟件Sys_2的軟件版本的信息,并比較系統(tǒng)軟件Sys_1、Sys_2的軟件版本;步驟410系統(tǒng)軟件Sys_2的軟件版本比系統(tǒng)軟件Sys_1的軟件版本還新?若是,則執(zhí)行步驟412;否則,執(zhí)行步驟416;步驟412中間接口機(jī)制程序UAIP自外部數(shù)據(jù)存儲(chǔ)裝置320讀取系統(tǒng)軟件Sys_2,并啟動(dòng)燒錄程序Flashing_Code以依據(jù)系統(tǒng)軟件Sys_2來(lái)更新原本的系統(tǒng)軟件Sys_1;步驟414開機(jī)程序代碼Boot_Code驅(qū)使嵌入式系統(tǒng)300重新開機(jī),接著,回到步驟402;以及步驟416微處理器304執(zhí)行系統(tǒng)程序代碼Sys_Code。
嵌入式系統(tǒng)300更新系統(tǒng)軟件的操作詳細(xì)說(shuō)明如下。于開啟嵌入式系統(tǒng)300的電源后,首先,存儲(chǔ)裝置302內(nèi)的開機(jī)映像文件Boot_1會(huì)加載存儲(chǔ)裝置306中,接著,微處理器304便將開機(jī)映像文件Boot_1轉(zhuǎn)換為開機(jī)程序代碼Boot_Code,所以微處理器304即可執(zhí)行開機(jī)程序代碼Boot_Cod來(lái)控制嵌入式系統(tǒng)300的開機(jī)程序。開機(jī)程序代碼Boot_Cod首先初始(initialize)嵌入式系統(tǒng)300中的硬件裝置,接著,于執(zhí)行到開機(jī)程序代碼Boot_Code內(nèi)的中間接口機(jī)制程序UAIP時(shí),中間接口機(jī)制程序UAIP即啟動(dòng)開機(jī)程序代碼Boot_Code中的網(wǎng)絡(luò)連結(jié)程序Network_Code,以便經(jīng)由聯(lián)機(jī)接口308自外部數(shù)據(jù)存儲(chǔ)裝置320讀取其內(nèi)的系統(tǒng)軟件Sys_2的信息,并進(jìn)一步判斷是否需使用系統(tǒng)軟件Sys_2來(lái)更新嵌入式系統(tǒng)300內(nèi)原本的系統(tǒng)軟件Sys_1。在本實(shí)施例中,自外部數(shù)據(jù)存儲(chǔ)裝置320讀取數(shù)據(jù)的方式為加載網(wǎng)絡(luò)連結(jié)程序Network_Code,其可以動(dòng)態(tài)主機(jī)設(shè)定協(xié)議(Dynamic Host ConfigurationProtocol,DHCP)或固定網(wǎng)絡(luò)地址(Static IP)方式取得嵌入式系統(tǒng)300所需的IP地址,而網(wǎng)絡(luò)連結(jié)程序Network_Code接著便可啟動(dòng)簡(jiǎn)單文件傳輸協(xié)議(Trivial File Transfer Protocol,TFTP)或超文件傳輸協(xié)議(HyperText Transfer Protocol,HTTP)等已知網(wǎng)絡(luò)協(xié)議來(lái)和外部數(shù)據(jù)存儲(chǔ)裝置320聯(lián)機(jī),在此,假設(shè)外部數(shù)據(jù)存儲(chǔ)裝置320為一TFTP服務(wù)器(TFTP Server),所以,中間接口機(jī)制程序UAIP便可經(jīng)由網(wǎng)絡(luò)連結(jié)程序Network_Code所支持的TFTP協(xié)議來(lái)讀取位于TFTP服務(wù)器中文件庫(kù)內(nèi)的系統(tǒng)軟件Sys_2的版本信息,并將其與嵌入式系統(tǒng)300內(nèi)系統(tǒng)軟件Sys_1的版本信息進(jìn)行比較,而比較兩系統(tǒng)軟件Sys_1、Sys_2的版本的詳細(xì)操作及細(xì)節(jié)則留待后述。
若系統(tǒng)軟件Sys_2的軟件版本比系統(tǒng)軟件Sys_1的軟件版本還新,則微處理器304所執(zhí)行的中間接口機(jī)制程序UAIP便會(huì)判斷需使用系統(tǒng)軟件Sys_2來(lái)更新系統(tǒng)軟件Sys_1。將系統(tǒng)軟件Sys_1更新為系統(tǒng)軟件Sys_2的流程為首先,中間接口機(jī)制程序UAIP啟動(dòng)網(wǎng)絡(luò)連結(jié)程序Network_Code以先下載系統(tǒng)軟件Sys_2至存儲(chǔ)裝置306,然后接口機(jī)制程序UAIP再啟動(dòng)燒錄程序Flashing_Code,因此,微處理器304便可執(zhí)行燒錄程序Flashing_Code以將系統(tǒng)軟件Sys_2燒錄至存儲(chǔ)裝置302,來(lái)達(dá)到更新系統(tǒng)軟件Sys_1的目的,最后,開機(jī)程序代碼Boot_Code便驅(qū)使嵌入式系統(tǒng)300重新開機(jī)。
以下說(shuō)明系統(tǒng)軟件Sys_1與系統(tǒng)軟件Sys_2內(nèi)部的數(shù)據(jù)內(nèi)容。本實(shí)施例中,系統(tǒng)軟件Sys_1包含有一核心映像文件(kernel image)與一文件系統(tǒng)映像文件(file system image),而系統(tǒng)軟件Sys_2則有3種不同的選擇,選擇(一)為只包含有核心映像文件;選擇(二)為只包含有文件系統(tǒng)映像文件;以及選擇(三)為同時(shí)包含有核心映像文件和文件系統(tǒng)映像文件。如果系統(tǒng)軟件Sys_2只包含有核心映像文件,則系統(tǒng)軟件Sys_1更新為系統(tǒng)軟件Sys_2后,則只有原本的核心映像文件會(huì)被更新,至于原本的文件系統(tǒng)映像文件則原封不動(dòng);同理,如果系統(tǒng)軟件Sys_2只包含有文件系統(tǒng)映像文件,則系統(tǒng)軟件Sys_1更新為系統(tǒng)軟件Sys_2后,只有原本的文件系統(tǒng)映像文件會(huì)被更新,而原本的核心映像文件則未被更新。由上可知,若是系統(tǒng)軟件Sys_2同時(shí)包含有核心映像文件和文件系統(tǒng)映像文件,則當(dāng)系統(tǒng)軟件Sys_1更新為系統(tǒng)軟件Sys_2后,原本的核心映像文件和文件系統(tǒng)映像文件皆會(huì)同時(shí)被更新。
當(dāng)系統(tǒng)軟件Sys_1已更新為系統(tǒng)軟件Sys_2,并且嵌入式系統(tǒng)300重新開機(jī)之后,則上述操作會(huì)重復(fù)執(zhí)行,亦即中間接口機(jī)制程序UAIP仍會(huì)判斷是否需自動(dòng)更新嵌入式系統(tǒng)300目前所使用的系統(tǒng)軟件Sys_2(此時(shí),系統(tǒng)軟件Sys_2已取代原本的系統(tǒng)軟件Sys_1)。若是此時(shí)外部數(shù)據(jù)存儲(chǔ)裝置320內(nèi)有一新的系統(tǒng)軟件Sys_3(未顯示),且系統(tǒng)軟件Sys_3的軟件版本較嵌入式系統(tǒng)300內(nèi)的系統(tǒng)軟件Sys_2新時(shí),則會(huì)再度更新嵌入式系統(tǒng)300內(nèi)的系統(tǒng)軟件Sys_2為系統(tǒng)軟件Sys_3,否則,開機(jī)程序代碼Boot_Code于完成其本身設(shè)定的開機(jī)操作后,其便會(huì)直接執(zhí)行系統(tǒng)程序代碼Sys_Code而不更新目前的系統(tǒng)軟件Sys_2,而于系統(tǒng)程序代碼Sys_Code成功加載后,嵌入式系統(tǒng)300即完成開機(jī)流程。接下來(lái)說(shuō)明如何比較系統(tǒng)軟件Sys_1、Sys_2的版本。
本實(shí)施例中,中間接口機(jī)制程序UAIP依據(jù)時(shí)間卷標(biāo)(例如文件建立的時(shí)間)來(lái)比較系統(tǒng)軟件Sys_1、Sys_2的軟件版本,亦即,若系統(tǒng)軟件Sys_2的時(shí)間卷標(biāo)所紀(jì)錄的時(shí)間晚于系統(tǒng)軟件Sys_1的時(shí)間卷標(biāo)所紀(jì)錄的時(shí)間,則中間接口機(jī)制程序UAIP便會(huì)通過(guò)燒錄程序Flashing_Code來(lái)將系統(tǒng)軟件Sys_1更新為系統(tǒng)軟件Sys_2。請(qǐng)注意,本發(fā)明并未限定使用時(shí)間卷標(biāo)來(lái)比較軟件版本,亦即,本發(fā)明亦可使用其它方式來(lái)比較系統(tǒng)軟件Sys_1、Sys_2的軟件版本,舉例來(lái)說(shuō),中間接口機(jī)制程序亦可依據(jù)文件名來(lái)比較系統(tǒng)軟件Sys_1、Sys_2的軟件版本,均屬本發(fā)明的范疇。另外,請(qǐng)注意,上述實(shí)施例中,中間接口機(jī)制程序UAIP,燒錄程序Flashing_Code以及網(wǎng)絡(luò)連結(jié)程序Network_Code分別為單獨(dú)(standalone)的程序,然而,燒錄程序Flashing_Code以及網(wǎng)絡(luò)連結(jié)程序Network_Code亦可整合于中間接口機(jī)制程序UAIP,亦屬本發(fā)明的范疇。
請(qǐng)參閱圖5,圖5為本發(fā)明第二實(shí)施例的嵌入式系統(tǒng)500的示意圖。嵌入式系統(tǒng)500包含有一微處理器504、多個(gè)存儲(chǔ)裝置502、506、一聯(lián)機(jī)接口508以及一人機(jī)接口裝置(human interface device,HID)510。如圖5所示,微處理器504、多個(gè)存儲(chǔ)裝置502、506、聯(lián)機(jī)接口508以及一人機(jī)接口裝置510經(jīng)由一總線501來(lái)互相傳遞數(shù)據(jù)。同樣地,聯(lián)機(jī)接口508經(jīng)由一數(shù)據(jù)傳輸媒介512而耦接于一外部數(shù)據(jù)存儲(chǔ)裝置520。請(qǐng)注意,由于圖5所示的嵌入式系統(tǒng)500與圖3所示的嵌入式系統(tǒng)300中的同名組件具有相同的功能與操作,因此相關(guān)說(shuō)明于此不另重復(fù)贅述。由圖3與圖5可知,嵌入式系統(tǒng)500的架構(gòu)類似于嵌入式系統(tǒng)300的架構(gòu),而主要的不同點(diǎn)為嵌入式系統(tǒng)500還包含有人機(jī)接口裝置510,其耦接于微處理器504,用來(lái)允許嵌入式系統(tǒng)500的使用者可介入系統(tǒng)軟件Sys_1的更新程序,換句話說(shuō),嵌入式系統(tǒng)500的使用者可經(jīng)由人機(jī)接口裝置510輸入指令來(lái)控制微處理器504所執(zhí)行的中間接口機(jī)制程序UAIP,以決定是否更新系統(tǒng)軟件Sys_1。
舉例來(lái)說(shuō),當(dāng)開機(jī)程序代碼Boot_Code執(zhí)行時(shí),其可經(jīng)由人機(jī)接口裝置510將一提示訊息顯示于嵌入式系統(tǒng)500的屏幕(未顯示)上,所以,嵌入式系統(tǒng)500的使用者經(jīng)由人機(jī)接口裝置510下達(dá)一指令來(lái)決定中間接口機(jī)制程序UAIP是否要被執(zhí)行;此外,嵌入式系統(tǒng)500的使用者亦可經(jīng)由人機(jī)接口裝置510來(lái)設(shè)定中間接口機(jī)制程序UAIP的執(zhí)行模式為“手動(dòng)”,因此,當(dāng)中間接口機(jī)制程序UAIP的執(zhí)行模式為“手動(dòng)”時(shí),中間接口機(jī)制程序UAIP可經(jīng)由人機(jī)接口裝置510將文件版本的比較結(jié)果顯示于嵌入式系統(tǒng)500的屏幕(未顯示)上,最后,嵌入式系統(tǒng)500的使用者便可經(jīng)由人機(jī)接口裝置510手動(dòng)地下達(dá)一指令來(lái)決定是否進(jìn)行后續(xù)的系統(tǒng)軟件更新。綜上所述,嵌入式系統(tǒng)500可提供使用者于自動(dòng)更新機(jī)制以外另一種互動(dòng)更新機(jī)制的選擇,亦即,具有人機(jī)接口裝置510的嵌入式系統(tǒng)500可擁有較高的使用彈性。
本發(fā)明可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法,經(jīng)由一中間接口機(jī)制程序于加載開機(jī)程序代碼時(shí)即進(jìn)行判斷并依據(jù)判斷結(jié)果來(lái)決定是否自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件,其可大幅減少嵌入式系統(tǒng)本身存儲(chǔ)器的浪費(fèi),亦即,中間接口機(jī)制程序置放于開機(jī)程序代碼中被執(zhí)行,而非置于應(yīng)用軟件中被執(zhí)行,故不會(huì)于嵌入式系統(tǒng)完成開機(jī)后占用有限的存儲(chǔ)器容量;此外,本發(fā)明可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的裝置及方法由于可并達(dá)到自動(dòng)更新系統(tǒng)軟件的目的,所以便大幅地降低已知嵌入式系統(tǒng)軟件更新時(shí)需耗費(fèi)的人力與成本,并經(jīng)由減少使用者的操作負(fù)擔(dān)而提高嵌入式系統(tǒng)的使用便利性與市場(chǎng)競(jìng)爭(zhēng)力。
以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明的權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種可自動(dòng)更新系統(tǒng)軟件的嵌入式系統(tǒng),其包含有一第一存儲(chǔ)裝置,用來(lái)存儲(chǔ)一第一系統(tǒng)軟件與一開機(jī)映像文件;一微處理器,耦接于該第一存儲(chǔ)裝置,用來(lái)分別將該第一系統(tǒng)軟件與該開機(jī)映像文件轉(zhuǎn)換為一系統(tǒng)程序代碼與一開機(jī)程序代碼,并用來(lái)依序執(zhí)行該開機(jī)程序代碼與該系統(tǒng)程序代碼以控制該嵌入式系統(tǒng)的開機(jī)操作;以及一聯(lián)機(jī)接口,耦接于該微處理器,并還經(jīng)由一數(shù)據(jù)傳輸媒介耦接于一外部數(shù)據(jù)存儲(chǔ)裝置,該外部數(shù)據(jù)存儲(chǔ)裝置記錄有一第二系統(tǒng)軟件;其中該開機(jī)程序代碼包含有一中間接口機(jī)制程序,以及該微處理器于執(zhí)行該系統(tǒng)程序代碼前,其可執(zhí)行該中間接口機(jī)制程序,以經(jīng)由該聯(lián)機(jī)接口自該外部數(shù)據(jù)存儲(chǔ)裝置讀取該第二系統(tǒng)軟件來(lái)更新該第一系統(tǒng)軟件。
2.如權(quán)利要求1所述的嵌入式系統(tǒng),其中該微處理器執(zhí)行該中間接口機(jī)制程序來(lái)比較該第一、第二系統(tǒng)軟件的軟件版本,以及若該第二系統(tǒng)軟件的軟件版本比該第一系統(tǒng)軟件的軟件版本新,則該微處理器執(zhí)行該中間接口機(jī)制程序來(lái)使用該第二系統(tǒng)軟件更新該第一系統(tǒng)軟件。
3.如權(quán)利要求2所述的嵌入式系統(tǒng),其中該中間接口機(jī)制程序依據(jù)該第一、第二系統(tǒng)軟件的時(shí)間卷標(biāo)來(lái)比較該第一、第二系統(tǒng)軟件的軟件版本。
4.如權(quán)利要求3所述的嵌入式系統(tǒng),其中若該第一系統(tǒng)軟件的該時(shí)間卷標(biāo)早于該第二系統(tǒng)軟件的該時(shí)間卷標(biāo),則該微處理器會(huì)執(zhí)行該中間接口機(jī)制程序來(lái)使用該第二系統(tǒng)軟件更新該第一系統(tǒng)軟件。
5.如權(quán)利要求2所述的嵌入式系統(tǒng),其還包含有一第二存儲(chǔ)裝置,耦接于該微處理器,用來(lái)暫存該系統(tǒng)程序代碼與該開機(jī)程序代碼;其中該開機(jī)程序代碼還包含有一燒錄程序,以及若該中間接口機(jī)制程序決定使用該第二系統(tǒng)軟件來(lái)更新該第一系統(tǒng)軟件,則該中間接口機(jī)制程序先下載該第二系統(tǒng)軟件至該第二存儲(chǔ)裝置,然后該微處理器再執(zhí)行該燒錄程序?qū)⒃摰诙到y(tǒng)軟件燒錄至該第一存儲(chǔ)裝置來(lái)更新該第一系統(tǒng)軟件。
6.如權(quán)利要求5所述的嵌入式系統(tǒng),其中該第一存儲(chǔ)裝置為一非易失性存儲(chǔ)器,以及該第二存儲(chǔ)裝置為一易失性存儲(chǔ)器。
7.如權(quán)利要求6所述的嵌入式系統(tǒng),其中該非易失性存儲(chǔ)器為一閃存,以及該易失性存儲(chǔ)器為一動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
8.如權(quán)利要求2所述的嵌入式系統(tǒng),其中該中間接口機(jī)制程序依據(jù)該第一、第二系統(tǒng)軟件的文件名來(lái)比較該第一、第二系統(tǒng)軟件的軟件版本。
9.如權(quán)利要求2所述的嵌入式系統(tǒng),其中若該中間接口機(jī)制程序完成更新該第一系統(tǒng)軟件,則該嵌入式系統(tǒng)會(huì)重新開機(jī)。
10.如權(quán)利要求2所述的嵌入式系統(tǒng),其中若該第二系統(tǒng)軟件的軟件版本未比該第一系統(tǒng)軟件的軟件版本新,則該微處理器于完成執(zhí)行該開機(jī)程序代碼后直接執(zhí)行該系統(tǒng)程序代碼而不更新該第一系統(tǒng)軟件。
11.如權(quán)利要求1所述的嵌入式系統(tǒng),其中該聯(lián)機(jī)接口為一網(wǎng)絡(luò)接口,用來(lái)經(jīng)由一傳輸控制協(xié)議和互連網(wǎng)協(xié)議與該外部存儲(chǔ)裝置進(jìn)行數(shù)據(jù)傳輸。
12.如權(quán)利要求11所述的嵌入式系統(tǒng),其中該數(shù)據(jù)傳輸媒介為一內(nèi)部網(wǎng)絡(luò)或一外部網(wǎng)絡(luò)。
13.如權(quán)利要求1所述的嵌入式系統(tǒng),其中該第一系統(tǒng)軟件包含有一核心映像文件與一文件系統(tǒng)映像文件,以及該第二系統(tǒng)軟件包含有一核心映像文件或者一文件系統(tǒng)映像文件。
14.如權(quán)利要求13所述的嵌入式系統(tǒng),其中該第二系統(tǒng)軟件系同時(shí)結(jié)合一核心映像文件與一文件系統(tǒng)映像文件。
15.如權(quán)利要求1所述的嵌入式系統(tǒng),其還包含有一人機(jī)接口裝置,耦接于該微處理器,用來(lái)控制該微處理器是否執(zhí)行該中間接口機(jī)制程序來(lái)更新該第一系統(tǒng)軟件。
16.一種可自動(dòng)更新嵌入式系統(tǒng)的系統(tǒng)軟件的方法,該嵌入式系統(tǒng)存儲(chǔ)有一第一系統(tǒng)軟件與一開機(jī)映像文件,該方法包含有(a)分別將該第一系統(tǒng)軟件與該開機(jī)映像文件轉(zhuǎn)換為一系統(tǒng)程序代碼與一開機(jī)程序代碼,其中該開機(jī)程序代碼與該系統(tǒng)程序代碼是預(yù)定依序執(zhí)行以控制該嵌入式系統(tǒng)的開機(jī)操作,以及該開機(jī)程序代碼包含有一中間接口機(jī)制程序;(b)經(jīng)由一數(shù)據(jù)傳輸媒介將該嵌入式系統(tǒng)耦接于一外部數(shù)據(jù)存儲(chǔ)裝置,該外部數(shù)據(jù)存儲(chǔ)裝置記錄有一第二系統(tǒng)軟件;以及(c)于執(zhí)行該系統(tǒng)程序代碼前,執(zhí)行該中間接口機(jī)制程序以自該外部數(shù)據(jù)存儲(chǔ)裝置讀取該第二系統(tǒng)軟件來(lái)更新該第一系統(tǒng)軟件。
17.如權(quán)利要求16所述的方法,其中步驟(c)包含有(c1)執(zhí)行該中間接口機(jī)制程序來(lái)比較該第一、第二系統(tǒng)軟件的軟件版本;以及(c2)若該第二系統(tǒng)軟件的軟件版本比該第一系統(tǒng)軟件的軟件版本新,則執(zhí)行該中間接口機(jī)制程序來(lái)使用該第二系統(tǒng)軟件更新該第一系統(tǒng)軟件。
18.如權(quán)利要求17所述的方法,其中步驟(c1)包含有依據(jù)該第一、第二系統(tǒng)軟件的時(shí)間卷標(biāo)來(lái)比較該第一、第二系統(tǒng)軟件的軟件版本。
19.如權(quán)利要求18所述的方法,其中步驟(c2)包含有若該第一系統(tǒng)軟件的該時(shí)間卷標(biāo)早于該第二系統(tǒng)軟件的該時(shí)間卷標(biāo),則執(zhí)行該中間接口機(jī)制程序來(lái)使用該第二系統(tǒng)軟件更新該第一系統(tǒng)軟件。
20.如權(quán)利要求17所述的方法,其中該開機(jī)程序代碼還包含有一燒錄程序,以及步驟(c2)包含有下載該第二系統(tǒng)軟件,然后再執(zhí)行該燒錄程序以將該第二系統(tǒng)軟件燒錄至該第一存儲(chǔ)裝置來(lái)更新該第一系統(tǒng)軟件。
21.如權(quán)利要求17所述的方法,其中步驟(c1)包含有依據(jù)該第一、第二系統(tǒng)軟件的文件名來(lái)比較該第一、第二系統(tǒng)軟件的軟件版本。
22.如權(quán)利要求17所述的方法,其還包含有(c3)若該中間接口機(jī)制程序完成更新該第一系統(tǒng)軟件,則驅(qū)使該嵌入式系統(tǒng)重新開機(jī)。
23.如權(quán)利要求17所述的方法,其還包含有(c3)若該第二系統(tǒng)軟件的軟件版本未比該第一系統(tǒng)軟件的軟件版本新,則于完成執(zhí)行該開機(jī)程序代碼后,直接執(zhí)行該系統(tǒng)程序代碼而不更新該第一系統(tǒng)軟件。
24.如權(quán)利要求16所述的方法,其中步驟(b)包含有經(jīng)由一傳輸控制協(xié)議和互連網(wǎng)協(xié)議與該外部存儲(chǔ)裝置進(jìn)行數(shù)據(jù)傳輸。
25.如權(quán)利要求24所述的方法,其中該數(shù)據(jù)傳輸媒介為一內(nèi)部網(wǎng)絡(luò)或一外部網(wǎng)絡(luò)。
26.如權(quán)利要求16所述的方法,其中該第一系統(tǒng)軟件包含有一核心映像文件與一文件系統(tǒng)映像文件,以及該第二系統(tǒng)軟件包含有一核心映像文件或者一文件系統(tǒng)映像文件。
27.如權(quán)利要求26所述的方法,其中該第二系統(tǒng)軟件同時(shí)結(jié)合一核心映像文件與一文件系統(tǒng)映像文件。
28.如權(quán)利要求16所述的方法,其中步驟(c)包含有提供一人機(jī)接口裝置,并使用該人機(jī)接口裝置控制該微處理器是否執(zhí)行該中間接口機(jī)制程序來(lái)更新該第一系統(tǒng)軟件。
全文摘要
一種可自動(dòng)更新系統(tǒng)軟件的嵌入式系統(tǒng)與方法。該嵌入式系統(tǒng)包含有一第一存儲(chǔ)裝置,用來(lái)存儲(chǔ)一第一系統(tǒng)軟件與一開機(jī)映像文件;一微處理器,耦接于該第一存儲(chǔ)裝置,用來(lái)分別將該第一系統(tǒng)軟件與該開機(jī)映像文件轉(zhuǎn)換為一系統(tǒng)程序代碼與一開機(jī)程序代碼以控制該嵌入式系統(tǒng)的開機(jī)操作;以及一聯(lián)機(jī)接口,耦接于該微處理器,并還經(jīng)由一數(shù)據(jù)傳輸媒介耦接于一外部數(shù)據(jù)存儲(chǔ)裝置,該外部數(shù)據(jù)存儲(chǔ)裝置記錄有一第二系統(tǒng)軟件。該開機(jī)程序代碼包含有一中間接口機(jī)制程序,可經(jīng)由該聯(lián)機(jī)接口自該外部數(shù)據(jù)存儲(chǔ)裝置讀取該第二系統(tǒng)軟件來(lái)更新該第一系統(tǒng)軟件。
文檔編號(hào)G06F9/445GK1797336SQ200410103719
公開日2006年7月5日 申請(qǐng)日期2004年12月28日 優(yōu)先權(quán)日2004年12月28日
發(fā)明者曾瑞源 申請(qǐng)人:光寶科技股份有限公司