專利名稱:程序啟動方法及使用上述方法的嵌入式系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于嵌入式技術(shù),且特別有關(guān)于應用程序啟動方法。
背景技術(shù):
由于嵌入式系統(tǒng)的計算處理能力、儲存介質(zhì)及主存儲器的容量有限,因此需要妥善配置嵌入式系統(tǒng)的系統(tǒng)資源。一般而言,大多數(shù)的嵌入式系統(tǒng)在執(zhí)行應用程序時,會將儲存介質(zhì)中的應用程序映像文件解壓縮至主存儲器中以執(zhí)行,但由于主存儲器的成本高,因此多會通過一些壓縮方法來節(jié)省主存儲器的容量使用,而可大致分為動態(tài)解壓縮及靜態(tài)解壓縮技術(shù)。
靜態(tài)解壓縮技術(shù)是通過修改開機程序,在計算機系統(tǒng)開機時將操作系統(tǒng)、應用程序及相關(guān)函數(shù)庫整個解壓縮并加載主存儲器。此技術(shù)可以使應用程序的執(zhí)行效率高,且節(jié)省儲存介質(zhì)的容量需求。然而,這方法會消耗大量的主存儲器空間。
舉例來說,一嵌入式系統(tǒng)的文件系統(tǒng)解壓縮后的大小是32MB(megabyte)。若以10%~25%的壓縮比而言,此嵌入式系統(tǒng)所需的儲存介質(zhì)容量約3.2MB~8MB之間。由于程序執(zhí)行中也需要其它額外的主存儲器空間,此嵌入式系統(tǒng)大概需要64MB的主存儲器,甚至更多。
動態(tài)解壓縮技術(shù)則通過修改文件系統(tǒng),在應用程序執(zhí)行時僅解壓縮、加載所需的一段程序代碼。此方法在應用程序執(zhí)行后,會于需要用到函數(shù)庫時再分別加載。因此,這將會大量消耗處理器的資源來解壓縮,使得應用程序執(zhí)行緩慢(約降低30%的執(zhí)行效能)。
以上述32MB的文件系統(tǒng)實例說明,使用動態(tài)解壓縮技術(shù)的嵌入式系統(tǒng),約需要16MB的儲存介質(zhì)容量及2MB~32MB的主存儲器容量。然而,應用程序的執(zhí)行速度會非常緩慢。
美國專利號6298422揭示一種在多工操作系統(tǒng)環(huán)境中,同時降低中央處理器(central processing unit,簡稱CPU)負載及主存儲器使用量的方法。然而,一般嵌入式系統(tǒng)通常是單工而且不使用虛擬存儲器(virtual memory),因此不適用該方法。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在提供兼顧降低中央處理器負載、儲存介質(zhì)容量及主存儲器使用量的方法。
本發(fā)明提供一種嵌入式系統(tǒng),包含儲存裝置、主存儲器、及操作系統(tǒng)。上述儲存裝置儲存已安裝在上述嵌入式系統(tǒng)上的應用程序的可執(zhí)行文件、多個數(shù)據(jù)文件、以及至少一相依性標簽。上述相依性標識記錄上述應用程序與上述應用程序在不同執(zhí)行狀態(tài)下需使用的對應數(shù)據(jù)文件的對應關(guān)系。上述操作系統(tǒng)包含一模塊。當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述相依性標簽搜尋上述多個數(shù)據(jù)文件中上述應用程序所需的上述對應數(shù)據(jù)文件,并將上述可執(zhí)行文件與上述對應數(shù)據(jù)文件加載上述主存儲器,接著執(zhí)行上述可執(zhí)行文件。
本發(fā)明所述的嵌入式系統(tǒng),儲存于上述儲存裝置內(nèi)的上述可執(zhí)行文件及上述多個數(shù)據(jù)文件為已壓縮,并且在執(zhí)行上述可執(zhí)行文件之前被上述模塊解壓縮。
本發(fā)明所述的嵌入式系統(tǒng),上述模塊為一程序執(zhí)行模塊,用以經(jīng)由上述操作系統(tǒng)的一文件系統(tǒng)取得上述可執(zhí)行文件與上述對應數(shù)據(jù)文件。
本發(fā)明所述的嵌入式系統(tǒng),上述主存儲器包含上述應用程序的狀態(tài)標識,當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
本發(fā)明所述的嵌入式系統(tǒng),上述模塊在執(zhí)行上述可執(zhí)行文件后,相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已在執(zhí)行。
本發(fā)明所述的嵌入式系統(tǒng),當上述模塊被請求終止上述應用程序時,從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件,并相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已終止執(zhí)行。
本發(fā)明所述的嵌入式系統(tǒng),在從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件之前,上述模塊根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
本發(fā)明所述的嵌入式系統(tǒng),當上述模塊被請求終止上述應用程序時,根據(jù)上述相依性標識清除上述應用程序的上述對應數(shù)據(jù)文件。
本發(fā)明還提供一種程序啟動方法,執(zhí)行于一嵌入式系統(tǒng)。上述嵌入式系統(tǒng)包含一主存儲器及一模塊。儲存至少一相依性標簽于上述嵌入式系統(tǒng),其中上述相依性標識記錄已安裝在上述嵌入式系統(tǒng)上的應用程序與上述應用程序在不同執(zhí)行狀態(tài)下需使用的對應數(shù)據(jù)文件的對應關(guān)系。當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述相依性標簽搜尋上述多個數(shù)據(jù)文件中上述應用程序所需的上述對應數(shù)據(jù)文件。并將上述可執(zhí)行文件與上述對應數(shù)據(jù)文件加載上述主存儲器。執(zhí)行上述可執(zhí)行文件。
本發(fā)明所述的程序啟動方法,上述可執(zhí)行文件及上述多個數(shù)據(jù)文件已壓縮,而上述程序啟動方法在執(zhí)行上述可執(zhí)行文件之前,更包含利用上述模塊解壓縮上述可執(zhí)行文件及上述多個數(shù)據(jù)文件。
本發(fā)明所述的程序啟動方法,上述模塊為上述嵌入式系統(tǒng)的一操作系統(tǒng)的一程序執(zhí)行模塊,用以經(jīng)由上述操作系統(tǒng)的一文件系統(tǒng)取得上述可執(zhí)行文件與上述對應數(shù)據(jù)文件。
本發(fā)明所述的程序啟動方法,上述主存儲器包含上述應用程序的狀態(tài)標識,上述程序啟動方法更包含當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
本發(fā)明所述的程序啟動方法,更包含上述模塊在執(zhí)行上述可執(zhí)行文件后,相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已在執(zhí)行。
本發(fā)明所述的程序啟動方法,更包含當上述模塊被請求終止上述應用程序時,從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件;以及相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已終止執(zhí)行。
本發(fā)明所述的程序啟動方法,更包含在從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件之前,上述模塊根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
本發(fā)明所述的程序啟動方法,更包含當上述模塊被請求終止上述應用程序時,根據(jù)上述相依性標識清除上述應用程序的上述對應數(shù)據(jù)文件。
本發(fā)明所述程序啟動方法及使用上述方法的嵌入式系統(tǒng),并非修改文件系統(tǒng),因此可以因應用程序的不同而調(diào)整應用程序啟動時要加載的數(shù)據(jù),且可降低中央處理器負載、儲存介質(zhì)容量及主存儲器使用量。
圖1顯示一嵌入式系統(tǒng)實施例的結(jié)構(gòu)方塊圖;圖2顯示程序啟動方法實施例的流程圖;
圖3顯示相依性標識以及狀態(tài)標識實施例的示意圖;圖4顯示程序終止實施例的流程圖;圖5顯示程序啟動方法儲存介質(zhì)的結(jié)構(gòu)方塊圖。
具體實施例方式
以下揭示程序啟動方法及使用上述方法的嵌入式系統(tǒng)實施例。須要了解的是,以下各實體及步驟的配置只是用以舉例說明,而可依產(chǎn)品需求而予以進一步的調(diào)整。
參照圖1,嵌入式系統(tǒng)100包含主存儲器2、操作系統(tǒng)3及儲存裝置4。操作系統(tǒng)3可以由計算機程序?qū)崿F(xiàn),并由嵌入式系統(tǒng)100的處理器(未圖示)執(zhí)行。儲存裝置4可以包含硬盤(hard drive)、磁帶(tape)、磁盤(disk)、快閃存儲卡(flash memory card)或其它儲存介質(zhì)。
儲存裝置4儲存已安裝在上述嵌入式系統(tǒng)100上的多個應用程序、多個相依性標識以及多個狀態(tài)標識。每一應用程序包含可執(zhí)行文件及多個數(shù)據(jù)文件,并具有對應的相依性標識以及狀態(tài)標識。儲存在儲存裝置4的數(shù)據(jù)皆經(jīng)過壓縮。上述相依性標識記錄多個應用程序與該多個應用程序在不同執(zhí)行狀態(tài)下需使用的對應數(shù)據(jù)文件的對應關(guān)系。狀態(tài)標識用以指示其對應應用程序的執(zhí)行狀態(tài)。
舉例來說,上述多個應用程序包含應用程序7;應用程序包含可執(zhí)行文件8及數(shù)據(jù)文件9。儲存裝置4另外包含操作系統(tǒng)3提供的數(shù)據(jù)文件10。應用程序7對應相依性標識11以及狀態(tài)標識12。
操作系統(tǒng)3耦接于儲存裝置4及主存儲器2,且包含程序執(zhí)行模塊5以及文件系統(tǒng)6。
參照圖2以說明應用程序啟動方法。
嵌入式系統(tǒng)100開機完成、加載并開始操作系統(tǒng)3,如步驟S2所示。嵌入式系統(tǒng)100產(chǎn)生一應用程序啟動中斷,用以開始執(zhí)行應用程序7,如步驟S4所示。程序執(zhí)行模塊5接收應用程序啟動中斷。如步驟S6所示。當程序執(zhí)行模塊5接收上述應用程序啟動中斷而被請求執(zhí)行上述應用程序7時,自動執(zhí)行以下步驟當程序執(zhí)行模塊5被請求執(zhí)行上述應用程序7時,根據(jù)上述狀態(tài)標簽12判別上述應用程序7是否已在執(zhí)行,如步驟S8所示。如是,程序執(zhí)行模塊5繼續(xù)等待接收應用程序啟動中斷,如步驟S6所示。如否,程序執(zhí)行模塊5判別相依性標識11,如步驟S10所示,取得可執(zhí)行文件8,并根據(jù)上述相依性標簽11搜尋取得上述多個數(shù)據(jù)文件中上述應用程序7所需的對應數(shù)據(jù)文件,如步驟S12所示。舉例來說,應用程序7所需的對應數(shù)據(jù)文件為數(shù)據(jù)文件9和10。數(shù)據(jù)文件9和10可以包含圖文件、設定文件、函數(shù)、或其它應用程序所需數(shù)據(jù)。
程序執(zhí)行模塊5經(jīng)由文件系統(tǒng)6取得上述可執(zhí)行文件8與上述對應數(shù)據(jù)文件9和10。接著,程序執(zhí)行模塊5解壓縮可執(zhí)行文件8、數(shù)據(jù)文件9和10,如步驟S14所示。須要了解的是,解壓縮的作業(yè)也可以由一文件系統(tǒng)執(zhí)行。
程序執(zhí)行模塊5將上述可執(zhí)行文件8與對應數(shù)據(jù)文件9和10加載主存儲器2,如步驟S16所示,接著執(zhí)行可執(zhí)行文件8,如步驟S18所示。程序執(zhí)行模塊5在執(zhí)行可執(zhí)行文件8之后,相對地調(diào)整狀態(tài)標簽12,以指示應用程序7已在執(zhí)行,如步驟S20所示。相依性標識11以及狀態(tài)標識12也可以在步驟S16中加載主存儲器2。
圖3顯示相依性標識11以及狀態(tài)標識12的實例。相依性標簽11的內(nèi)容包含在<ADT>與</ADT>之間。應用程序7的識別碼在<APID>與</APID>之間。應用程序7所需的數(shù)據(jù)文件的信息在<DATA>與</DATA>之間,其中區(qū)塊111中的信息指示數(shù)據(jù)文件9,而區(qū)塊112中的信息指示數(shù)據(jù)文件10。狀態(tài)標簽12的內(nèi)容包含在<AST>與</AST>之間。應用程序7的識別碼在<APID>與</APID>之間。應用程序7所需的執(zhí)行狀態(tài)對應信息在<STATUS>與</STATUS>之間。舉例來說,“1”表示應用程序7正在執(zhí)行;而“0”表示應用程序7已終止。在步驟S20中,程序執(zhí)行模塊5將“1”寫入<STATUS>與</STATUS>之間。
同理,程序執(zhí)行模塊5可以如同上述步驟執(zhí)行其它應用程序。
參照圖4以說明應用程序的終止程序。
嵌入式系統(tǒng)100產(chǎn)生一應用程序終止中斷,用以終止應用程序7,如步驟S42所示。程序執(zhí)行模塊5接收應用程序終止中斷,如步驟S44所示。當程序執(zhí)行模塊5接收上述應用程序終止中斷而被請求終止上述應用程序7時,自動執(zhí)行以下步驟當程序執(zhí)行模塊5根據(jù)上述狀態(tài)標簽12判別上述應用程序7是否已在執(zhí)行,如步驟S46所示。如否,程序執(zhí)行模塊5繼續(xù)等待接收應用程序終止中斷,如步驟S44所示。如是,程序執(zhí)行模塊5終止應用程序7的執(zhí)行,如步驟S48所示,判別相依性標簽11,如步驟S50所示,并根據(jù)上述相依性標識11從主存儲器2清除上述應用程序7所需的對應數(shù)據(jù)文件及可執(zhí)行文件,如步驟S52所示。舉例來說,應用程序7所需的對應數(shù)據(jù)文件為數(shù)據(jù)文件9和10,則程序執(zhí)行模塊5清除數(shù)據(jù)文件9和10,以及可執(zhí)行文件8。
程序執(zhí)行模塊5在終止應用程序7之后,相對地調(diào)整狀態(tài)標簽12,以指示應用程序7已終止,如步驟S54所示。狀態(tài)標識12也可以保留在主存儲器2或儲存回儲存裝置4。
參照圖5,嵌入式系統(tǒng)100A包含處理器1、主存儲器2、及儲存裝置4。操作系統(tǒng)3儲存于儲存裝置4,當加載嵌入式系統(tǒng)100A時,處理器1根據(jù)操作系統(tǒng)3以執(zhí)行上述步驟。
因此,上述嵌入式系統(tǒng)包含已安裝的應用程序的相依性標識,用以在應用程序啟動時所為判別是否加載主存儲器的依據(jù)。同時,相依性標識也用在終止應用程序時清除數(shù)據(jù)的依據(jù)。上述方法并非修改文件系統(tǒng),因此可以因應用程序的不同而調(diào)整應用程序啟動時要加載的數(shù)據(jù)。
以上所述僅為本發(fā)明較佳實施例,然其并非用以限定本發(fā)明的范圍,任何熟悉本項技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),可在此基礎上做進一步的改進和變化,因此本發(fā)明的保護范圍當以本申請的權(quán)利要求書所界定的范圍為準。
附圖中符號的簡單說明如下100、100A嵌入式系統(tǒng)1處理器2主存儲器3操作系統(tǒng)4儲存裝置5程序執(zhí)行模塊6文件系統(tǒng)7應用程序8可執(zhí)行文件9數(shù)據(jù)文件10數(shù)據(jù)文件11相依性標簽12狀態(tài)標簽111、112標簽區(qū)塊
權(quán)利要求
1.一種嵌入式系統(tǒng),其特征在于所述嵌入式系統(tǒng)包含一儲存裝置,儲存已安裝在上述嵌入式系統(tǒng)上的應用程序的可執(zhí)行文件、多個數(shù)據(jù)文件、以及至少一相依性標簽,其中上述應用程序在不同執(zhí)行狀態(tài)下需使用到至少一對應數(shù)據(jù)文件,而上述相依性標識記錄不同執(zhí)行狀態(tài)下上述應用程序與上述對應數(shù)據(jù)文件間的對應關(guān)系;一主存儲器;以及一操作系統(tǒng),耦接于上述儲存裝置及上述主存儲器,且包含一模塊,其中,當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述相依性標簽,于上述多個數(shù)據(jù)文件中搜尋上述應用程序所需的上述對應數(shù)據(jù)文件,并將上述可執(zhí)行文件與上述對應數(shù)據(jù)文件加載上述主存儲器,接著執(zhí)行上述可執(zhí)行文件。
2.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng),其特征在于儲存于上述儲存裝置內(nèi)的上述可執(zhí)行文件及上述多個數(shù)據(jù)文件為已壓縮,并且在執(zhí)行上述可執(zhí)行文件之前被上述模塊解壓縮。
3.根據(jù)權(quán)利要求2所述的嵌入式系統(tǒng),其特征在于上述模塊為一程序執(zhí)行模塊,用以經(jīng)由上述操作系統(tǒng)的一文件系統(tǒng)取得上述可執(zhí)行文件與上述對應數(shù)據(jù)文件。
4.根據(jù)權(quán)利要求2所述的嵌入式系統(tǒng),其特征在于上述主存儲器包含上述應用程序的狀態(tài)標識,當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
5.根據(jù)權(quán)利要求4所述的嵌入式系統(tǒng),其特征在于上述模塊在執(zhí)行上述可執(zhí)行文件后,相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已在執(zhí)行。
6.根據(jù)權(quán)利要求5所述的嵌入式系統(tǒng),其特征在于當上述模塊被請求終止上述應用程序時,從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件,并相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已終止執(zhí)行。
7.根據(jù)權(quán)利要求6所述的嵌入式系統(tǒng),其特征在于在從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件之前,上述模塊根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
8.根據(jù)權(quán)利要求6所述的嵌入式系統(tǒng),其特征在于當上述模塊被請求終止上述應用程序時,根據(jù)上述相依性標識清除上述應用程序的上述對應數(shù)據(jù)文件。
9.一種程序啟動方法,執(zhí)行于一嵌入式系統(tǒng),上述嵌入式系統(tǒng)包含一主存儲器、一儲存裝置及一模塊,其特征在于上述程序啟動方法包含于上述儲存裝置內(nèi)儲存一應用程序以及至少一相依性標簽,其中上述應用程序包含有一可執(zhí)行文件與多個數(shù)據(jù)文件,上述應用程序在不同執(zhí)行狀態(tài)下需使用至少一對應數(shù)據(jù)文件,而上述相依性標識記錄不同執(zhí)行狀態(tài)下上述應用程序與上述對應數(shù)據(jù)文件間的對應關(guān)系;當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述相依性標簽于上述多個數(shù)據(jù)文件中搜尋上述應用程序所需的上述對應數(shù)據(jù)文件;并將上述可執(zhí)行文件與上述對應數(shù)據(jù)文件加載上述主存儲器;以及執(zhí)行上述可執(zhí)行文件。
10.根據(jù)權(quán)利要求9所述的程序啟動方法,其特征在于上述可執(zhí)行文件及上述多個數(shù)據(jù)文件已壓縮,而上述程序啟動方法在執(zhí)行上述可執(zhí)行文件之前,更包含利用上述模塊解壓縮上述可執(zhí)行文件及上述多個數(shù)據(jù)文件。
11.根據(jù)權(quán)利要求10所述的程序啟動方法,其特征在于上述模塊為上述嵌入式系統(tǒng)的一操作系統(tǒng)的一程序執(zhí)行模塊,用以經(jīng)由上述操作系統(tǒng)的一文件系統(tǒng)取得上述可執(zhí)行文件與上述對應數(shù)據(jù)文件。
12.根據(jù)權(quán)利要求11所述的程序啟動方法,其特征在于上述主存儲器包含上述應用程序的狀態(tài)標識,上述程序啟動方法更包含當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
13.根據(jù)權(quán)利要求12所述的程序啟動方法,其特征在于更包含上述模塊在執(zhí)行上述可執(zhí)行文件后,相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已在執(zhí)行。
14.根據(jù)權(quán)利要求13所述的程序啟動方法,其特征在于更包含當上述模塊被請求終止上述應用程序時,從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件;以及相對地調(diào)整上述狀態(tài)標簽,以指示上述應用程序已終止執(zhí)行。
15.根據(jù)權(quán)利要求14所述的程序啟動方法,其特征在于更包含在從上述主存儲器清除上述應用程序的上述可執(zhí)行文件及上述對應數(shù)據(jù)文件之前,上述模塊根據(jù)上述狀態(tài)標識判別上述應用程序是否已在執(zhí)行。
16.根據(jù)權(quán)利要求14所述的程序啟動方法,其特征在于更包含當上述模塊被請求終止上述應用程序時,根據(jù)上述相依性標識清除上述應用程序的上述對應數(shù)據(jù)文件。
全文摘要
本發(fā)明提供一種程序啟動方法及使用上述方法的嵌入式系統(tǒng),所述嵌入式系統(tǒng)包含儲存裝置、主存儲器及操作系統(tǒng)。上述儲存裝置儲存已安裝在上述嵌入式系統(tǒng)上的應用程序的可執(zhí)行文件、多個數(shù)據(jù)文件、以及至少一相依性標簽。上述相依性標識記錄上述應用程序與上述應用程序在不同執(zhí)行狀態(tài)下需使用的對應數(shù)據(jù)文件的對應關(guān)系。上述操作系統(tǒng)包含一模塊。當上述模塊被請求執(zhí)行上述應用程序時,根據(jù)上述相依性標簽搜尋上述多個數(shù)據(jù)文件中上述應用程序所需的上述對應數(shù)據(jù)文件,并將上述可執(zhí)行文件與上述對應數(shù)據(jù)文件加載上述主存儲器,接著執(zhí)行上述可執(zhí)行文件。本發(fā)明可降低中央處理器負載、儲存介質(zhì)容量及主存儲器使用量。
文檔編號G06F9/445GK1928819SQ20051009828
公開日2007年3月14日 申請日期2005年9月5日 優(yōu)先權(quán)日2005年9月5日
發(fā)明者黃峻崢 申請人:光寶科技股份有限公司