專利名稱:擴(kuò)展嵌入式系統(tǒng)的功能的制作方法
技術(shù)領(lǐng)域:
本申請涉及用于擴(kuò)展嵌入式系統(tǒng)的功能的計算機(jī)實現(xiàn)的方法、具有擴(kuò)展的功能的嵌入式系統(tǒng)以及存儲器。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,提供了用于擴(kuò)展嵌入式系統(tǒng)的功能的計算機(jī)實現(xiàn)的方法。嵌入式系統(tǒng)可以包括固定非易失性存儲器中的固件。該方法可以包括將可附接非易失性存儲器附接到嵌入式系統(tǒng)。擴(kuò)展部分可以存儲在可附接非易失性存儲器中。該方法還可以包括通過固件識別擴(kuò)展部分,以及通過擴(kuò)展部分執(zhí)行嵌入式系統(tǒng)上的服務(wù)。在某些情況下,可附接非易失性存儲器具有比固定非易失性存儲器更大的存儲容量。此外,可以在芯片上構(gòu)建固定非易失性存儲器并且芯片可以接線到嵌入式系統(tǒng)。同樣地,固件可以作為二值圖像存儲在固定非易失性存儲器中。再者,可附接非易失性存儲器可以是USB存儲設(shè)備。在某些情況下,該方法還包括使用安全機(jī)制加載擴(kuò)展部分;以及通過安全機(jī)制將擴(kuò)展部分從固件隔離。加載和隔離的步驟可以在通過擴(kuò)展部分執(zhí)行服務(wù)之前執(zhí)行。該方法還可以包括通過將固定非易失性存儲器的全部內(nèi)容復(fù)制到嵌入式系統(tǒng)的易失性存儲器中,從而將固件復(fù)制到嵌入式系統(tǒng)的易失性存儲器。此外,易失性存儲器可以比固定非易失性存儲器更快,和/或易失性存儲器可以比可附接的非易失性存儲器更快。再者,擴(kuò)展部分可以包括以下項中的一項或多項固件可使用的庫和/或?qū)嵱贸绦颍豢梢枣溄拥焦碳闹辽僖粋€動態(tài)可加載的模塊;以及支持執(zhí)行獨(dú)立于嵌入式系統(tǒng)架構(gòu)的服務(wù)的框架。該方法還可以包括將端口擴(kuò)展器附接到嵌入式系統(tǒng)的接口。將可附接非易失性存儲器附接到嵌入式系統(tǒng)可以包括將可附接非易失性存儲器附接到端口擴(kuò)展器的第一端口, 并且通過將設(shè)備附接到端口擴(kuò)展器的第二端口來擴(kuò)展嵌入式系統(tǒng)。在某些情況下,嵌入式系統(tǒng)是網(wǎng)絡(luò)接入網(wǎng)關(guān)。此外,固件可以包括操作系統(tǒng)和至少一個服務(wù)。根據(jù)本發(fā)明的另一方面,提供了嵌入式系統(tǒng)。該系統(tǒng)可以包括易失性存儲器,以及包括固件的固定非易失性存儲器。該系統(tǒng)還可以包括可操作用于允許可附接非易失性存儲器附接到嵌入式系統(tǒng)的接口??筛浇臃且资源鎯ζ骺刹僮饔糜诖鎯U(kuò)展部分。此外,固件可操作用于識別擴(kuò)展部分。再者,嵌入式系統(tǒng)可調(diào)整以適于通過擴(kuò)展部分執(zhí)行服務(wù)。嵌入式系統(tǒng)可以作為設(shè)備(例如,嵌入式設(shè)備)提供,或作為計算機(jī)程序產(chǎn)品提供。根據(jù)本發(fā)明的又一方面,提供了可附接到嵌入式系統(tǒng)的接口的可附接非易失性存儲器。該存儲器可以包括擴(kuò)展部分,該擴(kuò)展部分包括服務(wù),其中該擴(kuò)展部分存儲在可附接非易失性存儲器中。該擴(kuò)展部分可操作用于在由嵌入式系統(tǒng)識別之后擴(kuò)展嵌入式系統(tǒng)的固件。該服務(wù)可操作用于在對嵌入式系統(tǒng)的固件進(jìn)行擴(kuò)展之后由嵌入式系統(tǒng)執(zhí)行。在某些實施方式中,可附接的非易失性存儲器可附接到嵌入式系統(tǒng)的接口,其中嵌入式系統(tǒng)包括易失性存儲器,以及包括固件的固定非易失性存儲器。該系統(tǒng)還可以包括可操作用于允許可附接非易失性存儲器附接到嵌入式系統(tǒng)的接口。同樣地,該固件可操作用于識別擴(kuò)展部分。再者,嵌入式系統(tǒng)可調(diào)整以適于通過擴(kuò)展部分執(zhí)行服務(wù)??筛浇臃且资源鎯ζ鬟€可以作為設(shè)備或作為計算機(jī)程序產(chǎn)品提供。
圖1描繪了嵌入式系統(tǒng)的框圖。圖2示出了用于擴(kuò)展嵌入式系統(tǒng)的功能的方法。圖3描繪了嵌入式系統(tǒng)的閃存、芯片集以及RAM的功能框圖。圖4描繪了在嵌入式系統(tǒng)的固件識別了存儲在USB存儲設(shè)備中的擴(kuò)展部分之后的閃存、芯片集、RAM以及USB存儲設(shè)備的功能框圖。圖5描繪了閃存、芯片集、RAM以及USB存儲設(shè)備的功能框圖,其中擴(kuò)展部分包括兩個應(yīng)用。
具體實施例方式在下述正文中,將通過參考附圖給出對示例的詳細(xì)描述。應(yīng)當(dāng)理解的是,可以對示例進(jìn)行各種修改。具體地,可以組合一個示例中的元素并在其他示例中使用以形成新的示例。本說明書中描述的主題可以作為方法實現(xiàn)或可能采取一個或多個計算機(jī)程序產(chǎn)品的形式在設(shè)備上實現(xiàn)。本說明書中描述的主題可以在數(shù)據(jù)信號中實現(xiàn)或者在機(jī)器可讀的介質(zhì)上實現(xiàn),其中該介質(zhì)體現(xiàn)為一個或多個信息載體,諸如半導(dǎo)體存儲器或硬盤。上述計算機(jī)程序產(chǎn)品可以導(dǎo)致數(shù)據(jù)處理裝置執(zhí)行本說明書中描述的一個或多個操作。此外,本說明書中描述的主題還可以作為系統(tǒng)實現(xiàn),該系統(tǒng)包括處理器,以及耦合到處理器的存儲器。存儲器可以對一個或多個程序進(jìn)行編碼,以導(dǎo)致處理器執(zhí)行本說明書中描述的一個或多個方法。進(jìn)一步地,本說明書中描述的主題可以使用各種機(jī)器來實現(xiàn)。在下文示例性附圖和描述中闡明了一個或多個實現(xiàn)的細(xì)節(jié)。通過描述、附圖以及通過權(quán)利要求書,其他特征將會易于理解。圖1示出了嵌入式系統(tǒng)100的組件以及可附接非易失性存儲器,例如USB存儲設(shè)備111。可以將嵌入式系統(tǒng)100理解為設(shè)計用于執(zhí)行一個或數(shù)個專用功能的設(shè)備或計算機(jī)系統(tǒng)。嵌入式系統(tǒng)100可以與通用計算機(jī)系統(tǒng)(例如,臺式PC)不同。更具體地,嵌入式系統(tǒng)100可以是向用戶網(wǎng)絡(luò)(例如,包括一臺或多臺計算機(jī)的家庭網(wǎng)絡(luò))提供因特網(wǎng)連接的家用網(wǎng)關(guān)或網(wǎng)絡(luò)接入網(wǎng)關(guān)。嵌入式系統(tǒng)100還可以配置用于向除因特網(wǎng)以外的網(wǎng)絡(luò)提供訪問。在特定的示例中,嵌入式系統(tǒng)100可以是非對稱數(shù)字用戶線路(ADSL)調(diào)制解調(diào)器。也可能是支持其他形式的DSL的調(diào)制解調(diào)器。在某些情況下,嵌入式系統(tǒng)100可以執(zhí)行路由功能。嵌入式系統(tǒng)100可以包括用戶接口,例如,用于管理嵌入式系統(tǒng)100的圖形用戶接口。此外,嵌入式系統(tǒng)100可以運(yùn)行服務(wù),例如,設(shè)計用于幫助用戶執(zhí)行任務(wù)的應(yīng)用或者支持將另一個設(shè)備連接到嵌入式系統(tǒng)100的模塊。能夠在嵌入式系統(tǒng)100上運(yùn)行的服務(wù)可以與(或者不與)向連接到嵌入式系統(tǒng)100的網(wǎng)絡(luò)提供訪問有關(guān)。圖形用戶接口還可以用于管理或控制嵌入式系統(tǒng)100上的應(yīng)用。嵌入式系統(tǒng)100可以包括具有中央處理器(CPU)的芯片集102。在特定的示例中,芯片集102可以是組合了 MIPS 32位CPU、基于數(shù)字信號處理(DSP)的數(shù)字收發(fā)器、 以及ADSL模擬前端的德州儀器(Texas Instruments)AR7。其他可能的芯片集包括博通 (Broadcom) 6358。芯片集102可以是微處理器或微控制器。進(jìn)一步地,也可能是諸如高級 RISC 架構(gòu)機(jī)(Advanced RISC ArchitectureMachine, BP, ARM)或 PowerPC 的 CPU (RISC 是指精簡指令集計算機(jī))。嵌入式系統(tǒng)100的某些實現(xiàn)包括非易失性存儲器,諸如閃存104。備選地,嵌入式系統(tǒng)100可以包括另一種形式的非易失性存儲器。嵌入式系統(tǒng)100的非易失性存儲器可以是電子可尋址的。在某些情況下,嵌入式系統(tǒng)100的非易失性存儲器可以是另一種形式的固態(tài)存儲器,諸如硅-氧-氮-氧-硅(SONOS)存儲器,或非易失性隨機(jī)存取存儲器。也可能是其他類型的非易失性存儲器。閃存104可以固定到嵌入式系統(tǒng)100。特別地,可以把閃存104構(gòu)建到芯片中而該芯片可以接線到嵌入式系統(tǒng)100。閃存104的內(nèi)容可以被稱為固件302(參見圖3)。在某些情況下,由閃存104存儲的固件302可以包括用于嵌入式系統(tǒng)100的操作系統(tǒng)303 (參見圖3)。由閃存104存儲的固件302還可以包括能夠在嵌入式系統(tǒng)100上運(yùn)行的服務(wù),以及用于管理嵌入式系統(tǒng)100的圖形用戶接口。具體地,操作系統(tǒng)303可以是 Linux,例如,包括uClibc庫的Linux內(nèi)核2. 6。更具體地,操作系統(tǒng)303可以使用具有Linux 內(nèi)核2. 6. 1的針對MIPS的Debian Etch來實現(xiàn)??梢詮牟僮飨到y(tǒng)303去除不必要的組件, 并且操作系統(tǒng)303可以僅僅包括管理嵌入式系統(tǒng)100所必須的組件。應(yīng)用可以適合于執(zhí)行聯(lián)網(wǎng)任務(wù),諸如路由、防火墻維護(hù)、域名服務(wù)(DNS),以及動態(tài)主機(jī)配置協(xié)議(DHCP)。在某些實施方式中,操作系統(tǒng)303允許添加針對其他設(shè)備的支持服務(wù)(例如,驅(qū)動程序)。例如,操作系統(tǒng)303可以支持一經(jīng)請求便向操作系統(tǒng)內(nèi)核鏈接其他功能。換句話說,可以向操作系統(tǒng)303鏈接動態(tài)可加載的模塊。因此,向固件302鏈接動態(tài)可加載的模塊可以被理解為向嵌入式系統(tǒng)100的操作系統(tǒng)的內(nèi)核鏈接動態(tài)可加載的模塊。不同的內(nèi)核模塊可以用于支持不同的嵌入式系統(tǒng)架構(gòu)以及操作系統(tǒng)內(nèi)核。除了應(yīng)用之外,可以在嵌入式系統(tǒng)100上執(zhí)行的服務(wù)還可以包括內(nèi)核模塊、設(shè)備驅(qū)動程序或者擴(kuò)展嵌入式系統(tǒng)100的功能的其他軟件。嵌入式系統(tǒng)100可以包括最低限度的硬件(例如,執(zhí)行基本聯(lián)網(wǎng)任務(wù)所需的硬件而沒有其他硬件)以便降低成本。此外,閃存104的內(nèi)容(例如,操作系統(tǒng)和應(yīng)用)可以采取單片方法(monolithicapproach)(即,作為單個的封閉塊)存儲在嵌入式系統(tǒng)100上。例如,閃存104的內(nèi)容可以作為單個的封閉塊(例如,作為二值圖像或作為壓縮二值圖像)進(jìn)行存儲。換句話說,閃存104可以容納二值固件圖像或壓縮二值固件圖像。這可以減少嵌入式系統(tǒng)100上所需的閃存104的數(shù)量,從而降低生產(chǎn)嵌入式系統(tǒng)100的成本。 此外,在嵌入式系統(tǒng)100上使用二值圖像可以有利于嵌入式系統(tǒng)100的制造者或維護(hù)人員, 例如,嵌入式系統(tǒng)100的制造者可以能夠保持對嵌入式系統(tǒng)100的控制,從而使得對嵌入式系統(tǒng)100的擴(kuò)展只能由制造者實現(xiàn),并且嵌入式系統(tǒng)的購買者(例如,電信服務(wù)供應(yīng)商)不
6得不向制造者請求針對任何新的/附加的特征的支持。此外,使用二值圖像可以使用戶更新嵌入式系統(tǒng)100更加簡單。二值圖像可以被理解為容納表示存儲介質(zhì)(例如,閃存104)的完整的內(nèi)容和結(jié)構(gòu)。二值圖像可以存儲在單個文件中。然而,將閃存104的內(nèi)容作為二值圖像存儲可能具有以下效果對存儲在嵌入式系統(tǒng)100上的應(yīng)用進(jìn)行升級的唯一方法是執(zhí)行完全固件升級,如以現(xiàn)有技術(shù)的方法實現(xiàn)。 換句話說,不存在獨(dú)立對單個應(yīng)用進(jìn)行升級的方法。相反,即使針對嵌入式系統(tǒng)100上的一個應(yīng)用的較小變化,也需要完全固件升級。針對嵌入式系統(tǒng)100上軟件的任意更新而執(zhí)行完全固件升級可能會很困難或者是不期望的。完全固件升級可能導(dǎo)致使用更多帶寬,可能的誤差可能具有更多的嚴(yán)重后果, 此外完全固件升級可能干擾嵌入式系統(tǒng)100的操作。例如,為了對單個應(yīng)用進(jìn)行較小變化而下載完全固件可能需要比下載所改變的部分應(yīng)用或應(yīng)用本身更多的帶寬。此外,完全固件升級可能會失敗,從而導(dǎo)致嵌入式系統(tǒng)100變得無法使用。此外,由于通常需要重新啟動嵌入式系統(tǒng)100,因此完全固件升級經(jīng)常引起嵌入式系統(tǒng)100的操作的中斷。為了克服這個問題,本發(fā)明使嵌入式系統(tǒng)100適于在不對整個固件進(jìn)行升級或不用更有能力的設(shè)備代替嵌入式系統(tǒng)100的情況下執(zhí)行服務(wù)。嵌入式系統(tǒng)100還可以包括易失性存儲器,諸如隨機(jī)存取存儲器(RAM) 106。在某些配置中,RAM 106可以具有比閃存104更大的存儲容量。這樣設(shè)計的原因可能是嵌入式系統(tǒng)100上的程序執(zhí)行可以被理解為數(shù)據(jù)頻繁改變并且經(jīng)常不需要被存儲的過程。例如,當(dāng)嵌入式系統(tǒng)100處理因特網(wǎng)協(xié)議(IP)數(shù)據(jù)包時,它們可能會被暫時存儲在RAM106中以便被分析和闡述,但是有可能當(dāng)嵌入式系統(tǒng)100掉電時并不需要存儲IP數(shù)據(jù)包。換句話說,可能不需要將IP數(shù)據(jù)包存儲在閃存104中。還有可能RAM 106具有比閃存104更小的存儲容量。具體地,閃存104的容量可能會與存儲在嵌入式系統(tǒng)100上的程序的數(shù)量和大小成比例。此外,RAM 106的容量可能會與將同時在嵌入式系統(tǒng)100上執(zhí)行的程序的數(shù)量和大小成比例。例如,如果在閃存104中存儲了許多不同應(yīng)用并且嵌入式系統(tǒng)100并不必須能夠同時運(yùn)行許多程序,則閃存104可能具有比RAM 106更大的存儲容量。此外,可能存在以下情況與嵌入式系統(tǒng)100的閃存104相比,使用嵌入式系統(tǒng) 100的RAM 106可以更快地執(zhí)行計算機(jī)程序。此外,可以設(shè)計嵌入式系統(tǒng)100從而使得在可以執(zhí)行程序之前必須把程序復(fù)制到RAM 106。在特定的示例中,閃存104具有16MB的存儲容量,而RAM 106具有32MB的存儲容量。在某些情況下,嵌入式系統(tǒng)100不包括機(jī)械尋址的非易失性存儲器,諸如硬盤。此外,嵌入式系統(tǒng)100可以包括可連接到外部網(wǎng)絡(luò)的接入裝置,諸如電話端口 108。取決于外部網(wǎng)絡(luò)的類型,接入裝置還可以是光纖端口或以太網(wǎng)端口。外部網(wǎng)絡(luò)可以是因特網(wǎng)或另一個網(wǎng)絡(luò)。此外,嵌入式系統(tǒng)100可以包括接口,諸如通用串行總線(USD)端口 110。該接口可以是外圍接口。該接口還可以是另一種類型的串行接口,諸如FireWire,或者是可操作用于允許可附接非易失性存儲器連接到嵌入式系統(tǒng)100的并行接口類型。在該接口是USB
7端口 110的情況下,可附接的非易失性存儲器可以實現(xiàn)為USB存儲設(shè)備111。在特定的示例中,USB存儲設(shè)備111可以是USB優(yōu)盤(如圖1中所示)或可經(jīng)由USB線纜連接的外部硬盤驅(qū)動器(未示出)。因此,向嵌入式系統(tǒng)100附接可附接非易失性存儲器可以通過向USB端口 110附接USB存儲設(shè)備111實現(xiàn)。在本文上下文中,附接可以被理解為連接或插入,即, 將USB存儲設(shè)備111插入USB端口 110中。在某些實施方式中,USB存儲設(shè)備111具有至少128兆字節(jié)(MB)的存儲容量。因此,可附接非易失性存儲器(例如,USB存儲設(shè)備111)的存儲容量可以大于固定非易失性存儲器(例如,閃存104)的存儲容量。此外,RAM 106可以比閃存104和/或USB存儲設(shè)備111更快。嵌入式系統(tǒng)100還可以包括可連接到本地網(wǎng)絡(luò)的接入裝置,諸如以太網(wǎng)端口 112。 嵌入式系統(tǒng)100還可以支持無線接入,例如,通過無線保真(WiFi)。本地網(wǎng)絡(luò)可以是家庭網(wǎng)絡(luò)或內(nèi)部網(wǎng)絡(luò)或另一網(wǎng)絡(luò)。此外,嵌入式系統(tǒng)100可以包括復(fù)位按鈕114,該復(fù)位按鈕114可以用于將嵌入式系統(tǒng)100恢復(fù)到標(biāo)準(zhǔn)或缺省配置。嵌入式系統(tǒng)100還可以包括電源連接器116,該電源連接器116可以用于將嵌入式系統(tǒng)100連接至電源。圖2示出了用于擴(kuò)展嵌入式系統(tǒng)100的功能的示例性方法200。嵌入式系統(tǒng)可以包括固定非易失性存儲器,例如,閃存104。閃存104可以包括固件302。固件302可以包括用于嵌入式系統(tǒng)100的操作系統(tǒng)303以及一個或多個服務(wù)。方法200可以包括,在步驟202,將可附接非易失性存儲器(例如,USB存儲設(shè)備 111)附接到嵌入式系統(tǒng)100??梢詫U(kuò)展部分存儲在USB存儲設(shè)備111中。擴(kuò)展部分可以包括對應(yīng)于嵌入式系統(tǒng)100的操作系統(tǒng)303的完整操作系統(tǒng)環(huán)境。 具體地,嵌入式系統(tǒng)100的操作系統(tǒng)303可以包括通常在臺式PC上不存在的、運(yùn)行某些應(yīng)用所需要的軟件。因此,擴(kuò)展部分可以包括固件302可使用的庫,例如,操作系統(tǒng)303可使用的庫。擴(kuò)展部分還可以包括操作系統(tǒng)實用程序以及模塊。例如,如果固件302包括Linux操作系統(tǒng)的版本,則擴(kuò)展部分的庫可以包括用戶空間庫,諸如GNU C庫(glibc) 306 (見圖3),以及運(yùn)行Java虛擬機(jī)所需要的庫(Java是Oracle 公司的商標(biāo))。在本文上下文中,庫可以包括程序可使用的一個或多個子程序、類或數(shù)據(jù)。 庫可以是獨(dú)立可執(zhí)行的。擴(kuò)展部分的模塊可以包括用于控制和管理根據(jù)針對電子設(shè)備的XlO標(biāo)準(zhǔn)操作的設(shè)備的驅(qū)動程序。該模塊還可以包括會話發(fā)起協(xié)議(SIP)背靠背用戶代理以及實時傳輸協(xié)議(RTP)代理以管理IP語音服務(wù)。此外,實用程序可以包括通用即插即用(UPnP)視聽媒體服務(wù)器,其可以用于共享媒體內(nèi)容。該模塊還可以包括支持使用移動通信設(shè)備(例如, iPhone)控制光和電氣用品的軟件。該模塊可以被當(dāng)作內(nèi)核模塊并且可以是動態(tài)可加載的??梢栽谇度胧较到y(tǒng)100上運(yùn)行的擴(kuò)展部分的示例性應(yīng)用包括圖像搜索應(yīng)用。因此,用戶可以向嵌入式系統(tǒng)100加載多個圖像。例如,用戶可以帶著存儲在數(shù)碼相機(jī)中的許多圖像從假日返回。用戶可以將數(shù)碼相機(jī)連接到嵌入式系統(tǒng)100并且所有圖像可以自動從數(shù)碼相機(jī)上傳到嵌入式系統(tǒng)100。該圖像可以存儲在USB存儲設(shè)備111上。用戶繼而可以與圖像搜索應(yīng)用交互以便搜索圖像。此外,擴(kuò)展部分可以包括獨(dú)立于嵌入式系統(tǒng)100的架構(gòu)的,支持執(zhí)行應(yīng)用(諸如圖
8像搜索應(yīng)用)的框架。在某些實現(xiàn)中,框架可以基于OSGi以及Java程序設(shè)計語言,并且可以提供適合嵌入式系統(tǒng)100的架構(gòu)的應(yīng)用執(zhí)行環(huán)境。事具體地,可以根據(jù)可從httD://Ww. osRi. org獲得的OSGi規(guī)范,發(fā)布4,版本4. 2對框架進(jìn)行定義。因此,框架可以支持對應(yīng)用和從屬物的動態(tài)管理??蚣苓€可以提供支持具有不同能力和資源的設(shè)備以及支持應(yīng)用在不需要應(yīng)用開發(fā)者知道每個設(shè)備的架構(gòu)細(xì)節(jié)的情況下與上述設(shè)備進(jìn)行交互的一組程序設(shè)計接口(API)。此外,框架可以提供動態(tài)加載器以安裝新應(yīng)用??蚣苓€可以被當(dāng)作中間件。閃存104可以通過線接到嵌入式系統(tǒng)100的電路板進(jìn)行固定。操作系統(tǒng)303可以包括針對USB存儲設(shè)備111的支持和針對動態(tài)可加載的模塊的支持。操作系統(tǒng)303還可以支持能夠向USB端口 110附接的端口擴(kuò)展器。如果USB端口 110是嵌入式系統(tǒng)100上的唯一 USB端口,并且期望向嵌入式系統(tǒng)100附接附加的設(shè)備,則可以支持端口擴(kuò)展器。在RAM 106沒有提供足夠的存儲容量以執(zhí)行特定應(yīng)用的情況下,操作系統(tǒng)303可以支持虛擬存儲
ο在固件302包括Linux操作系統(tǒng)的特定示例中,固件302可以包括用于配置Linux 內(nèi)核的支持,以及Linux內(nèi)核頭文件和交叉編譯工具。在某些情況下,該方法還包括通過將閃存104的全部內(nèi)容復(fù)制到RAM 106中,從而將固件302復(fù)制到RAM 106。將閃存104的全部內(nèi)容復(fù)制到RAM 106中的操作可以被稱為大量讀取(bulk read)。通過大量讀取的方法將閃存104的全部內(nèi)容復(fù)制到RAM 106中可以支持嵌入式系統(tǒng)100的更簡單以及更有效率的操作。方法200還可以包括,在步驟204,通過固件302識別擴(kuò)展部分,例如,通過數(shù)字證書的方法。在某些實現(xiàn)中,數(shù)字證書可以存儲在USB存儲設(shè)備111上并且可以由操作系統(tǒng) 303進(jìn)行驗證。還可以使用其他方法來識別擴(kuò)展部分,包括代碼簽名、硬件鎖(USB存儲設(shè)備 111必須包括待識別的特定硬件特征)或加密。通過固件302識別擴(kuò)展部分可以具有以下技術(shù)效果使嵌入式系統(tǒng)100適于執(zhí)行服務(wù),例如上述圖像搜索應(yīng)用。在不對全部固件302進(jìn)行升級或不用更有能力的設(shè)備代替嵌入式系統(tǒng)100的情況下執(zhí)行沒有擴(kuò)展部分的應(yīng)用是不可能的。嵌入式系統(tǒng)100的用戶接口可以允許對擴(kuò)展部分進(jìn)行配置。在這種情況下,可以自動加載框架。備選地,可以自動識別和配置擴(kuò)展部分;因此,擴(kuò)展部分可以在后臺運(yùn)行并且自動加載應(yīng)用或識別新設(shè)備。一旦擴(kuò)展部分被識別和配置,框架便可以配置用于手動或自動加載包括圖像搜索應(yīng)用的服務(wù)。擴(kuò)展部分可以配置用于經(jīng)由USB存儲設(shè)備111向嵌入式系統(tǒng)100提供虛擬存儲器,或配置用于經(jīng)由USB存儲設(shè)備111擴(kuò)展嵌入式系統(tǒng)100的現(xiàn)有虛擬存儲器。在某些實施方式中,可以使用安全機(jī)制加載擴(kuò)展部分。加載擴(kuò)展部分可能發(fā)生在識別擴(kuò)展部分之后和配置擴(kuò)展部分之前。安全機(jī)制可以是沙盒(sandbox)。換句話說,安全機(jī)制可以是用于分離運(yùn)行的程序的軟件。也就是說,擴(kuò)展部分是在虛擬環(huán)境中加載,從嵌入式系統(tǒng)100的固件302分離。因此,安全機(jī)制可以用于將擴(kuò)展部分從固件302隔離。更具體地,當(dāng)擴(kuò)展部分和固件302都被加載到RAM 106中并且都在運(yùn)行時,安全機(jī)制可以用于將固件302從擴(kuò)展部分隔離。在特定的示例中,安全機(jī)制可以是chroot (假根)環(huán)境304 (見圖3)。可以通過改變針對擴(kuò)展部分和由擴(kuò)展部分執(zhí)行的任何過程的表面根目錄實現(xiàn)chroot環(huán)境304。換句
9話說,擴(kuò)展部分以及擴(kuò)展部分的子進(jìn)程不能夠訪問固件302的文件。更具體地,使用安全機(jī)制加載擴(kuò)展部分可以通過將與擴(kuò)展部分相關(guān)聯(lián)的文件加載到沙盒(例如,chroot環(huán)境304) 中來實現(xiàn),從而確保在框架中執(zhí)行的應(yīng)用、庫和實用程序不能訪問固件302。安全機(jī)制還可以經(jīng)由程序隔離的其他方法實現(xiàn)。有利地,安全機(jī)制可以用于保證嵌入式系統(tǒng)100提供至少與加載擴(kuò)展部分之前所提供的功能水平相同的功能。使用擴(kuò)展部分執(zhí)行的圖像搜索應(yīng)用(或其他應(yīng)用)可以在允許低級系統(tǒng)保護(hù)的受保護(hù)的環(huán)境中執(zhí)行。方法200還可以包括在步驟206,在加載擴(kuò)展部分之后執(zhí)行服務(wù)。通過擴(kuò)展部分在嵌入式系統(tǒng)100上執(zhí)行服務(wù)可以被理解為包括執(zhí)行固件302可用的庫、模塊或應(yīng)用。服務(wù)還可以包括附加的操作系統(tǒng)實用程序,諸如外殼命令。通過擴(kuò)展部分執(zhí)行服務(wù)可以支持將附加設(shè)備附接到嵌入式系統(tǒng)100。例如,可以將附加設(shè)備附接到嵌入式系統(tǒng)100上的另一 USB端口(未示出)。在另一示例中,附接附加設(shè)備可以包括將端口擴(kuò)展器(諸如USB集線器)附加到USB端口 110。具體地,如果USB 端口 110是嵌入式系統(tǒng)100上的唯一 USB端口,則可以使用端口擴(kuò)展器。根據(jù)該示例,當(dāng)在步驟202中附接了 USB存儲設(shè)備111時,將USB存儲設(shè)備111附接到端口擴(kuò)展器的第一端口并且將端口擴(kuò)展器附接到USB端口 110。繼而可以把附加設(shè)備附接到端口擴(kuò)展器的第二端□。其他應(yīng)用還可以通過擴(kuò)展添加到嵌入式系統(tǒng)100,該其他應(yīng)用包括因特網(wǎng)協(xié)議-用戶交換機(jī)(IP-PBX)系統(tǒng),數(shù)字生活網(wǎng)絡(luò)聯(lián)盟(DLNA)媒體服務(wù)器,用于經(jīng)由家庭自動化網(wǎng)關(guān)控制家用電器的家庭自動化應(yīng)用,視頻監(jiān)視系統(tǒng)以及智能能源監(jiān)控系統(tǒng)。如關(guān)于圖1所述,附加的應(yīng)用、其他類型的非易失性存儲器或其他接口也是可能的。此外,擴(kuò)展部分可以使得操作系統(tǒng)303能夠支持其他功能。例如,擴(kuò)展部分可以包括能夠由操作系統(tǒng)內(nèi)核為了支持附加文件系統(tǒng)(例如,Linux ext2文件系統(tǒng))而自動加載的模塊。擴(kuò)展部分還可以包括使得操作系統(tǒng)303能夠支持附加附接的設(shè)備308 (諸如、家庭自動化網(wǎng)關(guān)、ZigBee接口或數(shù)碼相機(jī)控制模塊)的模塊(見圖3)。智能能源表還可以使用擴(kuò)展部分連接到嵌入式系統(tǒng)100。方法200可以在不替換嵌入式系統(tǒng)的情況下支持對嵌入式系統(tǒng)100的功能進(jìn)行擴(kuò)展。此外,方法200可以使得能夠在不進(jìn)行完全固件升級的情況下安裝更新個別應(yīng)用的新服務(wù)。再者,擴(kuò)展部分中包括的框架可以支持針對各種設(shè)備架構(gòu)的高度便攜式服務(wù)的開發(fā)。圖3描繪了嵌入式系統(tǒng)100的閃存104、芯片集102以及RAM106的功能框圖。圖3中的示例表示了附接USB存儲設(shè)備111之前嵌入式系統(tǒng)100的狀態(tài)。在圖3的示例性描繪中,存儲在閃存104中的固件包括打印服務(wù)器和文件服務(wù)器。存儲在閃存104中的固件還包括例如由電信服務(wù)供應(yīng)商使用的對嵌入式系統(tǒng)100的定制。該定制可以包括會話發(fā)起協(xié)議(SIP)用戶代理,用以管理移動電話協(xié)議的高速分組接入(HSPA)備份實用程序,針對嵌入式系統(tǒng)100的遠(yuǎn)程管理的技術(shù)報告069(TR-069)實用程序,以及圖形用戶接口(⑶I)。根據(jù)該示例,存儲在閃存104中的固件還包括用戶空間庫 (例如,uClibc),操作系統(tǒng)(例如,Linux),以及設(shè)備驅(qū)動程序。在該特定例子中,閃存104 具有16MB的存儲容量。
繼續(xù)圖3中的示例,芯片集102是具有片上系統(tǒng)(SoC) 32位MIPS處理器的 Broadcom芯片集6358,其支持非對稱數(shù)字用戶環(huán)路(ADSL) 2/2+,以及以太網(wǎng)和無線保真 (WiFi)。圖3中的RAM 106包括操作系統(tǒng)的內(nèi)核以及一個或多個應(yīng)用(Apps)。RAM 106中的應(yīng)用對應(yīng)于閃存104中的定制。在該特定例子中,RAM具有64MB的存儲容量。圖4描繪了存儲在USB存儲設(shè)備111上的擴(kuò)展部分被固件識別之后的閃存104、 USB存儲設(shè)備111、芯片集102以及RAM 106的功能框圖。因此,圖4與圖3的區(qū)別在于USB 存儲設(shè)備111已經(jīng)附接到嵌入式系統(tǒng)100并且存儲在USB存儲設(shè)備111中的擴(kuò)展部分已經(jīng)由固件識別。根據(jù)圖4中描繪的示例,存儲在USB存儲設(shè)備111上的擴(kuò)展部分包括框架(在該例子中是Equinox OSGi框架)、Java虛擬機(jī)(JVM)、glibc用戶空間庫以及至少一個Linux 內(nèi)核模塊。除了圖3中描繪的操作系統(tǒng)的內(nèi)核以及應(yīng)用之外,圖4中的RAM106還包括來自 USB存儲設(shè)備111的JVM和Equinox OSGi框架。安全機(jī)制(未示出)可以用于將JVM和 OSGi框架從操作系統(tǒng)的內(nèi)核和應(yīng)用隔離。圖5描繪了閃存104、USB存儲設(shè)備111、芯片集102以及RAM106的功能框圖,其中USB存儲設(shè)備111包括兩個服務(wù),即,媒體服務(wù)器應(yīng)用和家庭自動化應(yīng)用。圖5中的RAM 106包括束(bundle) 1至束η。從1至η的每個束可以被理解為表示具有明確聲明的外部從屬物(如果有的話)的一個或多個類、Java歸檔文件(JAR)以及配置文件的動態(tài)可加載的集合。束可以根據(jù)OSGi標(biāo)準(zhǔn)實現(xiàn)。在該特定示例中,η為2并且束1至束η對應(yīng)于媒體服務(wù)器應(yīng)用和家庭自動化應(yīng)用。在某些實施方式中,安全機(jī)制(未示出)可以用于將JVM、0SGi框架以及媒體服務(wù)器應(yīng)用束從操作系統(tǒng)的內(nèi)核以及應(yīng)用隔離。因此,圖5與圖4的區(qū)別在于USB存儲設(shè)備111包括兩個應(yīng)用并且這些應(yīng)用已經(jīng)作為束加載到RAM 106中。
權(quán)利要求
1.一種用于擴(kuò)展嵌入式系統(tǒng)(100)的功能的計算機(jī)實現(xiàn)的方法(200),其中所述嵌入式系統(tǒng)(100)包括固定的非易失性存儲器(104)中的固件,所述方法包括將可附接非易失性存儲器(111)附接(202)到所述嵌入式系統(tǒng)(100),其中擴(kuò)展部分存儲在所述可附接非易失性存儲器(111)中;通過所述固件識別(204)所述擴(kuò)展部分;以及通過所述擴(kuò)展部分執(zhí)行(206)所述嵌入式系統(tǒng)(100)上的服務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述固件作為二值圖像存儲在所述固定的非易失性存儲器(104)中。
3.根據(jù)權(quán)利要求1或2所述的方法,其中在芯片中構(gòu)建所述固定的非易失性存儲器 (104)并且其中所述芯片線接至所述嵌入式系統(tǒng)(100)。
4.根據(jù)前述權(quán)利要求中的任意一項所述的方法,其中所述可附接非易失性存儲器 (111)是USB存儲設(shè)備。
5.根據(jù)前述權(quán)利要求中的任意一項所述的方法,其中所述可附接非易失性存儲器 (111)具有比所述固定非易失性存儲器(104)更大的存儲容量。
6.根據(jù)前述權(quán)利要求中的任意一項所述的方法,還包括使用安全機(jī)制加載所述擴(kuò)展部分;以及通過所述安全機(jī)制將所述擴(kuò)展部分從所述固件隔離。
7.根據(jù)前述權(quán)利要求中的任意一項所述的方法,還包括通過將所述固定的非易失性存儲器(104)的全部內(nèi)容復(fù)制到所述嵌入式系統(tǒng)的易失性存儲器(106)中,而將所述固件復(fù)制到所述嵌入式系統(tǒng)(100)的易失性存儲器(106)。
8.根據(jù)權(quán)利要求7所述的方法,其中所述易失性存儲器(106)比所述固定的非易失性存儲器(104)更快,和/或其中所述易失性存儲器(106)比所述可附接非易失性存儲器 (111)更快。
9.根據(jù)前述權(quán)利要求中的任意一項所述的方法,其中所述擴(kuò)展部分包括以下中的一項或多項所述固件可用的庫;可鏈接到所述固件的至少一個動態(tài)可加載的模塊;以及支持執(zhí)行獨(dú)立于所述嵌入式系統(tǒng)(100)的架構(gòu)的所述服務(wù)的框架。
10.根據(jù)前述權(quán)利要求中的任意一項所述的方法,還包括將端口擴(kuò)展器附接到所述嵌入式系統(tǒng)(100)的接口(110),其中將所述可附接非易失性存儲器(111)附接到所述嵌入式系統(tǒng)(100)包括將所述可附接非易失性存儲器(111)附接到所述端口擴(kuò)展器的第一端口;通過將設(shè)備附接到所述端口擴(kuò)展器的第二端口來擴(kuò)展所述嵌入式系統(tǒng)(100);以及通過所述擴(kuò)展部分來操作所述設(shè)備。
11.根據(jù)前述權(quán)利要求中的任意一項所述的方法,其中所述嵌入式系統(tǒng)(100)是網(wǎng)絡(luò)接入網(wǎng)關(guān)。
12.根據(jù)前述權(quán)利要求中的任意一項所述的方法,其中所述固件包括操作系統(tǒng)和至少一個應(yīng)用。
13.一種嵌入式系統(tǒng)(100),包括易失性存儲器(106);固定的非易失性存儲器(104),所述固定的非易失性存儲器(104)包括固件; 接口(110),所述接口(110)可操作用于允許可附接非易失性存儲器(111)附接到所述嵌入式系統(tǒng)(100);其中所述可附接非易失性存儲器(111)可操作用于存儲擴(kuò)展部分;其中所述固件可操作用于識別所述擴(kuò)展部分;以及其中所述嵌入式系統(tǒng)(100)可調(diào)整以適于通過所述擴(kuò)展部分來執(zhí)行服務(wù)。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),可根據(jù)權(quán)利要求2至12中的任意一項進(jìn)行操作。
15.一種可附接非易失性存儲器(111),所述可附接非易失性存儲器(111)可附接到嵌入式系統(tǒng)(100)的接口(110),所述存儲器(111)包括擴(kuò)展部分,所述擴(kuò)展部分包括服務(wù),其中所述擴(kuò)展部分存儲在所述可附接非易失性存儲器(111)中;其中所述擴(kuò)展部分可操作用于在由所述嵌入式系統(tǒng)(100)識別之后擴(kuò)展所述嵌入式系統(tǒng)(100)的固件;以及其中所述服務(wù)可操作用于在所述嵌入式系統(tǒng)的所述固件被擴(kuò)展之后由所述嵌入式系統(tǒng)(100)執(zhí)行。
全文摘要
本描述涉及擴(kuò)展嵌入式系統(tǒng)的功能。具體地,本描述涉及計算機(jī)實現(xiàn)的方法、嵌入式系統(tǒng)以及存儲器。該方法涉及擴(kuò)展嵌入式系統(tǒng)的功能,其中嵌入式系統(tǒng)包括固定的非易失性存儲器中的固件。該方法包括將可附接非易失性存儲器附接到嵌入式系統(tǒng),其中擴(kuò)展部分存儲在可附接非易失性存儲器中;通過固件識別擴(kuò)展部分;以及通過擴(kuò)展部分執(zhí)行嵌入式系統(tǒng)上的服務(wù)。
文檔編號G06F13/10GK102222052SQ201110097139
公開日2011年10月19日 申請日期2011年4月15日 優(yōu)先權(quán)日2010年4月16日
發(fā)明者G·卡普奧佐, M·伯格希尼 申請人:埃森哲環(huán)球服務(wù)有限公司