專利名稱:一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,具體涉及一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng)。
背景技術(shù):
一般目前主流的嵌入式操作系統(tǒng)應(yīng)用程序調(diào)用庫函數(shù)都是采用靜態(tài)鏈接和動態(tài) 鏈接的方式。靜態(tài)鏈接是由鏈接器在鏈接時將庫的內(nèi)容加入到可執(zhí)行程序中的做法。鏈接器是 一個獨立程序,是將一個或多個庫或目標(biāo)文件(先前由編譯器或匯編器生成)鏈接到一塊 生成可執(zhí)行程序。動態(tài)鏈接是在可執(zhí)行文件裝載時或運行時,由操作系統(tǒng)的裝載程序加載庫。大多 數(shù)操作系統(tǒng)將解析外部引用(比如庫)作為加載過程的一部分。在這些系統(tǒng)上,可執(zhí)行文 件包含一個叫做import directory的表,該表的每一項包含一個庫的名字。根據(jù)表中記錄 的名字,裝載程序在硬盤上搜索需要的庫,然后將其加載到內(nèi)存中預(yù)先不確定的位置,之后 根據(jù)加載庫后確定的庫的地址更新可執(zhí)行程序。可執(zhí)行程序根據(jù)更新后的庫信息調(diào)用庫中 的函數(shù)或引用庫中的數(shù)據(jù)。這種類型的動態(tài)加載成為裝載時加載,被包括Windows和Linux 的大多數(shù)系統(tǒng)采用。裝載程序在加載應(yīng)用軟件時要完成的最復(fù)雜的工作之一就是加載時鏈 接。但是,目前的靜態(tài)鏈接和動態(tài)鏈接都存在一定缺陷靜態(tài)鏈接的最大缺點是生成的可執(zhí)行文件太大,需要更多的系統(tǒng)資源,在裝入內(nèi) 存時也會消耗更多的時間。動態(tài)鏈接的最大缺點是可執(zhí)行程序依賴分別存儲的庫文件才能 正確執(zhí)行。如果庫文件被刪除了,移動了,重命名了或者被替換為不兼容的版本了,那么可 執(zhí)行程序就可能工作不正常。這就是常說的DLL-hell。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng),既 解決了靜態(tài)鏈接占用資源過多的問題,又解決了動態(tài)鏈接時繁雜的加載過程的問題,讓應(yīng) 用程序在占用較小的空間下又能快速的運行。為完成上述發(fā)明目的,本發(fā)明采用如下技術(shù)方案本發(fā)明提供一種基于嵌入式的程序快速執(zhí)行方法,包括預(yù)先定義應(yīng)用程序編程接口 API函數(shù)庫、預(yù)先定義額外的空的API函數(shù)并預(yù)先定 義API函數(shù)表;判斷應(yīng)用程序是否需要調(diào)用定義的API函數(shù)庫的其中一個API函數(shù),若否,則結(jié) 束,若是,在應(yīng)用程序中加入跳轉(zhuǎn)指令,跳轉(zhuǎn)到定義的API函數(shù)表中對應(yīng)的API函數(shù)標(biāo)志 處;將Pc值相應(yīng)改為函數(shù)入口地址;
在API函數(shù)表的引導(dǎo)下,應(yīng)用程序進入到API函數(shù)庫中執(zhí)行上述的API函數(shù)。優(yōu)選的,所述預(yù)先定義API函數(shù)庫包括在API函數(shù)庫中定義各API函數(shù),為所有的API函數(shù)分配函數(shù)標(biāo)志、入口地址標(biāo)志,入口地址標(biāo)志指向API函數(shù)在內(nèi)存中的入口地址;將上述所有的API函數(shù)拷貝到對應(yīng)的入口地址開始的連續(xù)單元內(nèi)。優(yōu)選的,預(yù)先定義額外的空的API函數(shù)時還包括為預(yù)先定義的額外的空的API函 數(shù)分配函數(shù)標(biāo)志和入口地址標(biāo)志,并給入口地址標(biāo)志分配對應(yīng)的空閑的入口地址,為每個 設(shè)定的API函數(shù)保留設(shè)定大小的空間。優(yōu)選的,預(yù)先定義的API函數(shù)表由API函數(shù)的函數(shù)標(biāo)志,入口地址標(biāo)志和指令組 成,在函數(shù)標(biāo)志后加上一條指令將API函數(shù)的入口地址標(biāo)志所指的入口地址賦給PC指針。預(yù)先定義API函數(shù)表的過程包括1)在API函數(shù)表中加入API函數(shù)標(biāo)志,根據(jù)API函數(shù)的功能來給每個API函數(shù)賦 予不同的函數(shù)標(biāo)志;2)將API函數(shù)以及權(quán)利要求3中所述定義的額外的空的API函數(shù)的函數(shù)標(biāo)志及入 口地址標(biāo)志添加到API函數(shù)表中;3)繼續(xù)將剩余的API函數(shù)標(biāo)志及入口地址標(biāo)志添加到API函數(shù)表中;4)判斷步驟3)是否執(zhí)行完成,若否,則繼續(xù)返回步驟3)執(zhí)行;若是,則結(jié)束。本發(fā)明提供一種基于嵌入式的程序快速執(zhí)行系統(tǒng),包括啟動單元、內(nèi)核單元、文件系統(tǒng)單元、API函數(shù)庫單元、API函數(shù)表單元、應(yīng)用程序 單元、內(nèi)存拷貝單元;其中,所述啟動單元、所述內(nèi)核單元和所述文件系統(tǒng)單元共同構(gòu)成了 操作系統(tǒng)的運行環(huán)境,作為系統(tǒng)的最底層;API函數(shù)庫單元和API函數(shù)表單元相連接共同組 成了中間層;應(yīng)用程序單元和內(nèi)存拷貝單元組成了系統(tǒng)的最上層;所述啟動單元,用于引導(dǎo)嵌入式系統(tǒng)進行初始化等工作;所述內(nèi)核單元,用于完成嵌入式系統(tǒng)底層和上層的連接;所述文件系統(tǒng)單元,用于管理和存儲文件信息;所述API函數(shù)庫單元,用于定義和存儲各類用戶所要用到的API函數(shù);所述API函數(shù)表單元,用于存儲API函數(shù)庫中各類API函數(shù)的入口地址標(biāo)志和函 數(shù)標(biāo)志;所述應(yīng)用程序單元,用于完成嵌入式設(shè)備的各項功能;所述內(nèi)存拷貝單元,用于擴充和完善API函數(shù)庫。當(dāng)操作系統(tǒng)開始啟動時,所述啟動單元對系統(tǒng)進行初始化操作,隨后由所述啟動 單元引導(dǎo)進入所述內(nèi)核單元,由所述內(nèi)核單元接管整個操作系統(tǒng)的運行;所述文件系統(tǒng)單元為操作系統(tǒng)管理文件;所述啟動單元、所述內(nèi)核單元和所述文件系統(tǒng)單元共同構(gòu)成了操作系統(tǒng)的運行環(huán)境。當(dāng)有應(yīng)用程序運行時,應(yīng)用程序使用所述API函數(shù)庫單元中的函數(shù)時,在應(yīng)用程 序中跳轉(zhuǎn)到所需使用的API函數(shù)的函數(shù)標(biāo)志處,則應(yīng)用程序的執(zhí)行進入到API函數(shù)表單元 中尋找API函數(shù),在API函數(shù)表中將PC地址跳轉(zhuǎn)到該API函數(shù)對應(yīng)的入口地址標(biāo)志所指的 地址處,使得所述應(yīng)用程序調(diào)用到所需的函數(shù)。
當(dāng)系統(tǒng)需要增加新的API函數(shù)時,或者所述API函數(shù)庫需要升級時,只需將權(quán)利要 求3中所述的預(yù)先定義的額外的空的API函數(shù)進行內(nèi)存拷貝,將新的API函數(shù)拷貝到API 函數(shù)表中空閑的入口地址處。上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1.本發(fā)明可以完成嵌入式設(shè)備的所有功能需要,應(yīng)用程序在執(zhí)行時更加的高效。2.本發(fā)明簡化了程序運行時繁雜的動態(tài)加載過程,實現(xiàn)了應(yīng)用程序和庫函數(shù)的快速鏈接,加快了程序的運行速度。3.本發(fā)明所示的操作系統(tǒng)升級只需進行內(nèi)存拷貝,無需重新燒寫系統(tǒng),升級后的 操作系統(tǒng)完全兼容上一版的操作系統(tǒng),便于維護。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其它的附圖。圖1為本發(fā)明所述方法流程圖;圖2為本發(fā)明API函數(shù)庫建立流程圖;圖3為本發(fā)明API函數(shù)表建立流程圖;圖4為本發(fā)明所述的系統(tǒng)整體結(jié)構(gòu)圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于 本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它 實施例,都屬于本發(fā)明保護的范圍。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明做詳細 描述。本發(fā)明提供一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng),在嵌入式系統(tǒng)指定內(nèi)存 中開辟應(yīng)用程序函數(shù)庫,將各函數(shù)的函數(shù)標(biāo)志和入口地址標(biāo)志存放在一個表中,并且在這 個文件中事先預(yù)留一些空函數(shù)庫入口地址以便進行函數(shù)庫升級和擴展,當(dāng)所編寫的應(yīng)用程 序需要調(diào)用這個函數(shù)庫時,只需要簡單地跳轉(zhuǎn)到此函數(shù)的函數(shù)標(biāo)志處,就可以實現(xiàn)應(yīng)用程 序和庫函數(shù)的鏈接,讓應(yīng)用程序無需經(jīng)過復(fù)雜的轉(zhuǎn)換,大大加快了程序的運行速度。本發(fā)明 簡化了程序運行時繁雜的動態(tài)加載過程,實現(xiàn)了應(yīng)用程序和庫函數(shù)的快速鏈接,加快了程 序的運行速度。本發(fā)明的系統(tǒng)主要包括啟動單元、內(nèi)核單元、文件系統(tǒng)單元、API (Application Programming Interface,應(yīng)用程序編程接口)函數(shù)庫單元、API函數(shù)表單元、應(yīng)用程序單 元、內(nèi)存拷貝單元。概括而言,啟動單元,用于引導(dǎo)嵌入式系統(tǒng)進行初始化等工作;內(nèi)核單 元,用于完成嵌入式系統(tǒng)底層和上層的連接;文件系統(tǒng)單元,用于管理和存儲文件信息; API函數(shù)庫單元,用于API函數(shù)的存儲;API函數(shù)表單元,用于API函數(shù)的定位與尋找;應(yīng)用程序單元,用于應(yīng)用程序的運行;內(nèi)存拷貝單元用于操作系統(tǒng)的升級。以下結(jié)合系統(tǒng)各單元對本發(fā)明方法進行詳細說明。圖1為本發(fā)明所述的方法流程圖。如圖1所示,包括步驟1、預(yù)先定義應(yīng)用程序編程接口 API函數(shù)庫和預(yù)先定義額外的空的API函數(shù),并預(yù)先定義API函數(shù)表;1)定義API函數(shù)庫。在函數(shù)庫中定義許多API函數(shù),為所有的API函數(shù)分配函數(shù) 標(biāo)志、入口地址標(biāo)志,并給入口地址標(biāo)志分配一個入口地址。入口地址由開發(fā)者根據(jù)程序大 小進行分配,在以后需要把每個API函數(shù)燒寫到其對應(yīng)的API函數(shù)的入口地址處。函數(shù)標(biāo) 志提供了函數(shù)的標(biāo)識,也就相當(dāng)于函數(shù)的名字,入口地址標(biāo)志則指向了 API函數(shù)在內(nèi)存中 的入口地址。例如清屏函數(shù),為這個清屏函數(shù)取一個函數(shù)標(biāo)志為ClearScreen,假設(shè)所述清屏函 數(shù)的入口地址標(biāo)志為_ClearScreen,清屏函數(shù)的入口地址為0x000008,再把它在內(nèi)存中的 入口地址賦給入口地址標(biāo)志,即把這個地址賦給ClearScreen。2)定義額外的空的API函數(shù)。并給這些空的API函數(shù)分配函數(shù)標(biāo)志、入口地址標(biāo) 志,并給入口地址標(biāo)志分配一個空閑的入口地址。并給所述每個額外定義的API函數(shù)保留 適當(dāng)?shù)目臻g,所述定義的額外的空的API函數(shù)用來進行函數(shù)庫的升級和擴展。3)建立API函數(shù)表。API函數(shù)表由API函數(shù)的函數(shù)標(biāo)志,入口地址標(biāo)志和一些指 令組成,一般在函數(shù)標(biāo)志后加上一條指令將這個函數(shù)的入口地址標(biāo)志所指的入口地址賦給 PC指針。步驟2、判斷應(yīng)用程序是否需要調(diào)用定義的API函數(shù)庫的其中一個API函數(shù),若否, 則結(jié)束,若是,則執(zhí)行步驟3;步驟3、當(dāng)步驟2中判斷為應(yīng)用程序需要調(diào)用API函數(shù)庫時,在應(yīng)用程序中加入跳 轉(zhuǎn)指令,跳轉(zhuǎn)到定義的API函數(shù)表中對應(yīng)的API函數(shù)標(biāo)志處;步驟4、將Pc值相應(yīng)改為函數(shù)入口地址;步驟5、在API函數(shù)表的引導(dǎo)下,應(yīng)用程序進入到API函數(shù)庫中執(zhí)行上述的API函數(shù)。圖2為本發(fā)明API函數(shù)庫建立流程圖。如圖2所示API函數(shù)庫的建立步驟如下步驟11 為所有的API函數(shù)分配函數(shù)標(biāo)志及入口地址標(biāo)志,并給入口地址標(biāo)志分 配一個入口地址。函數(shù)標(biāo)志提供了函數(shù)的標(biāo)識,也就相當(dāng)于函數(shù)的名字,入口地址標(biāo)志則指 向了 API函數(shù)在內(nèi)存中的入口地址;步驟12 利用內(nèi)存拷貝單元將上述所有的API函數(shù)拷貝到對應(yīng)的入口地址開始的 連續(xù)單元內(nèi)。圖3為本發(fā)明API函數(shù)表建立流程圖。如圖3所示本發(fā)明所示方法中API函數(shù)表的建立步驟如下所示步驟31 在API函數(shù)表中加入API函數(shù)標(biāo)志,可以根據(jù)API函數(shù)的功能來給 每個API函數(shù)賦予不同的標(biāo)志,比如該API函數(shù)的功能是清屏作用,函數(shù)標(biāo)志可以設(shè)為 ClearScreen0
步驟32 將API函數(shù)以及額外定義的空的API函數(shù)的函數(shù)標(biāo)志及入口地址標(biāo)志添 加到API函數(shù)表中。即在函數(shù)標(biāo)志后用一條指令將這個函數(shù)的入口地址標(biāo)志所指的入口地 址賦給PC指針,如果在應(yīng)用程序中需要調(diào)用所述API函數(shù)庫的某個API函數(shù),只需要在應(yīng) 用程序中使用跳轉(zhuǎn)指令跳轉(zhuǎn)到API函數(shù)表中的API函數(shù)標(biāo)志處,這樣應(yīng)用程序就可以調(diào)用 這個API函數(shù)了。步驟33 繼續(xù)將剩余的API函數(shù)標(biāo)志及入口地址標(biāo)志添加到API函數(shù)表中。步驟34 此步驟用于判斷步驟33是否執(zhí)行完成,如果判斷為“否”,則繼續(xù)返回步 驟33;如果判斷為是,則結(jié)束。圖4是本發(fā)明系統(tǒng)的整體結(jié)構(gòu)圖。如圖4所示,系統(tǒng)主要包括啟動單元、內(nèi)核單元、文件系統(tǒng)單元、API函數(shù)庫單元、 API函數(shù)表單元、應(yīng)用程序單元、內(nèi)存拷貝單元。其中其中,所述啟動單元、所述內(nèi)核單元 和所述文件系統(tǒng)單元共同構(gòu)成了操作系統(tǒng)的運行環(huán)境,作為系統(tǒng)的最底層;API函數(shù)庫單 元和API函數(shù)表單元相連接共同組成了中間層;應(yīng)用程序單元和內(nèi)存拷貝單元組成了系統(tǒng) 的最上層。所述啟動單元用于引導(dǎo)嵌入式系統(tǒng)進行初始化等工作。所述內(nèi)核單元用于完成嵌入式系統(tǒng)底層和上層的連接。所述文件系統(tǒng)單元用于管理和存儲文件信息。所述API函數(shù)庫單元用于定義和存儲各類用戶所要用到的API函數(shù)。所述API函數(shù)表單元用于存儲API函數(shù)庫中各類API函數(shù)的入口地址標(biāo)志和函數(shù) 標(biāo)志ο所述應(yīng)用程序單元用于完成嵌入式設(shè)備的各項功能。 所述內(nèi)存拷貝單元用于擴充和完善我們的API函數(shù)庫,使嵌入式系統(tǒng)能完成更多 的功能。當(dāng)操作系統(tǒng)開始啟動時,所述啟動單元對系統(tǒng)進行初始化操作,隨后由所述啟動 單元引導(dǎo)進入所述內(nèi)核單元,由所述內(nèi)核單元接管整個操作系統(tǒng)的運行。所述文件系統(tǒng)單 元主要為操作系統(tǒng)管理文件。所述啟動單元、所述內(nèi)核單元和所述文件系統(tǒng)單元共同構(gòu)成 了操作系統(tǒng)的運行環(huán)境。當(dāng)有應(yīng)用程序運行時,應(yīng)用程序需要使用所述API函數(shù)庫單元中的函數(shù)時,在應(yīng) 用程序中需要跳轉(zhuǎn)到所需使用的API函數(shù)的函數(shù)標(biāo)志處,這樣應(yīng)用程序的執(zhí)行就進入到 API函數(shù)表單元中尋找API函數(shù),在API函數(shù)表中將PC地址跳轉(zhuǎn)到該API函數(shù)對應(yīng)的入口 地址標(biāo)志所指的地址處,這樣所述應(yīng)用程序就可以調(diào)用到它所需的函數(shù)了,實現(xiàn)了程序的 快速執(zhí)行。當(dāng)系統(tǒng)需要增加新的API函數(shù)時,或者所述API函數(shù)庫需要升級時,所述內(nèi)存拷貝 單元將新的API函數(shù)復(fù)制到所述API函數(shù)庫單元中的空閑位置,即事先額外定義的一些空 的API函數(shù)入口地址標(biāo)志和函數(shù)標(biāo)志,并更新所述API函數(shù)表單元。雖然操作系統(tǒng)進行了 升級,但是所述API函數(shù)庫單元中的API函數(shù)位置并未改變,所以升級后以前的應(yīng)用程序依 然能夠使用,完全兼容上一版本的操作系統(tǒng)。綜上所述,本發(fā)明提供了一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng),在嵌入式 系統(tǒng)指定內(nèi)存中開辟應(yīng)用程序函數(shù)庫,將各函數(shù)的標(biāo)志和入口地址標(biāo)志存放在一個表中,應(yīng)用程序通過表中的函數(shù)標(biāo)志進行快速鏈接和執(zhí)行。本發(fā)明簡化了程序運行時繁雜的動態(tài) 加載過程,實現(xiàn)了應(yīng)用程序和庫函數(shù)的快速鏈接,加快了程序的運行速度,并且本發(fā)明所示 的操作系統(tǒng)易于升級和維護,無需擔(dān)心版本的兼容問題。本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步啊驟是 可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存 儲介質(zhì)可以包括只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明實施例所提供的一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng),進行 了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例 的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員, 依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi) 容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
一種基于嵌入式的程序快速執(zhí)行方法,其特征在于,包括預(yù)先定義應(yīng)用程序編程接口API函數(shù)庫和預(yù)先定義額外的空的API函數(shù),并預(yù)先定義API函數(shù)表;判斷應(yīng)用程序是否需要調(diào)用定義的API函數(shù)庫的其中一個API函數(shù),若否,則結(jié)束,若是,在應(yīng)用程序中加入跳轉(zhuǎn)指令,跳轉(zhuǎn)到定義的API函數(shù)表中對應(yīng)的API函數(shù)標(biāo)志處;將Pc值相應(yīng)改為函數(shù)入口地址;在API函數(shù)表的引導(dǎo)下,應(yīng)用程序進入到API函數(shù)庫中執(zhí)行上述的API函數(shù)。
2.根據(jù)權(quán)利要求1所述的基于嵌入式的程序快速執(zhí)行方法,其特征在于 預(yù)先定義API函數(shù)庫包括在API函數(shù)庫中定義各API函數(shù),為所有的API函數(shù)分配函數(shù)標(biāo)志、入口地址標(biāo)志,入 口地址標(biāo)志指向API函數(shù)在內(nèi)存中的入口地址;將上述所有的API函數(shù)拷貝到對應(yīng)的入口地址開始的連續(xù)單元內(nèi)。
3.根據(jù)權(quán)利要求1所述的基于嵌入式的程序快速執(zhí)行方法,其特征在于預(yù)先定義額外的空的API函數(shù)時還包括為預(yù)先定義額外的空的API函數(shù)分配函數(shù)標(biāo) 志和入口地址標(biāo)志,并給入口地址標(biāo)志分配對應(yīng)的空閑的入口地址,為每個設(shè)定的API函 數(shù)保留設(shè)定大小的空間。
4.根據(jù)權(quán)利要求1所述的基于嵌入式的程序快速執(zhí)行方法,其特征在于預(yù)先定義的API函數(shù)表由API函數(shù)的函數(shù)標(biāo)志,入口地址標(biāo)志和指令組成,在函數(shù)標(biāo)志 后加上一條指令將API函數(shù)的入口地址標(biāo)志所指的入口地址賦給PC指針。
5.根據(jù)權(quán)利要求1至4任一項所述的基于嵌入式的程序快速執(zhí)行方法,其特征進一步 在于預(yù)先定義API函數(shù)表的過程包括1)在API函數(shù)表中加入API函數(shù)標(biāo)志,根據(jù)API函數(shù)的功能來給每個API函數(shù)賦予不 同的函數(shù)標(biāo)志;2)將API函數(shù)以及權(quán)利要求3中所述定義的額外的空的API函數(shù)的函數(shù)標(biāo)志及入口地 址標(biāo)志添加到API函數(shù)表中;3)繼續(xù)將剩余的API函數(shù)標(biāo)志及入口地址標(biāo)志添加到API函數(shù)表中;4)判斷步驟3)是否執(zhí)行完成,若否,則繼續(xù)返回步驟3)執(zhí)行;若是,則結(jié)束。
6.一種基于嵌入式的程序快速執(zhí)行系統(tǒng),其特征在于,包括啟動單元、內(nèi)核單元、文件系統(tǒng)單元、API函數(shù)庫單元、API函數(shù)表單元、應(yīng)用程序單元、 內(nèi)存拷貝單元;其中,所述啟動單元、所述內(nèi)核單元和所述文件系統(tǒng)單元共同構(gòu)成了操作系 統(tǒng)的運行環(huán)境,作為系統(tǒng)的最底層;API函數(shù)庫單元和API函數(shù)表單元相連接共同組成了中 間層;應(yīng)用程序單元和內(nèi)存拷貝單元組成了系統(tǒng)的最上層; 所述啟動單元,用于引導(dǎo)嵌入式系統(tǒng)進行初始化等工作; 所述內(nèi)核單元,用于完成嵌入式系統(tǒng)底層和上層的連接; 所述文件系統(tǒng)單元,用于管理和存儲文件信息; 所述API函數(shù)庫單元,用于定義和存儲各類用戶所要用到的API函數(shù); 所述API函數(shù)表單元,用于存儲API函數(shù)庫中各類API函數(shù)的入口地址標(biāo)志和函數(shù)標(biāo)志;所述應(yīng)用程序單元,用于完成嵌入式設(shè)備的各項功能; 所述內(nèi)存拷貝單元,用于擴充和完善API函數(shù)庫。
7.根據(jù)權(quán)利要求6所述的基于嵌入式的程序快速執(zhí)行系統(tǒng),其特征在于當(dāng)操作系統(tǒng)開始啟動時,所述啟動單元對系統(tǒng)進行初始化操作,隨后由所述啟動單元 引導(dǎo)進入所述內(nèi)核單元,由所述內(nèi)核單元接管整個操作系統(tǒng)的運行; 所述文件系統(tǒng)單元為操作系統(tǒng)管理文件;所述啟動單元、所述內(nèi)核單元和所述文件系統(tǒng)單元共同構(gòu)成了操作系統(tǒng)的運行環(huán)境。
8.根據(jù)權(quán)利要求6或7所述的基于嵌入式的程序快速執(zhí)行系統(tǒng),其特征在于當(dāng)有應(yīng)用程序運行時,應(yīng)用程序使用所述API函數(shù)庫單元中的函數(shù)時,在應(yīng)用程序中 跳轉(zhuǎn)到所需使用的API函數(shù)的函數(shù)標(biāo)志處,則應(yīng)用程序的執(zhí)行進入到API函數(shù)表單元中尋 找API函數(shù),在API函數(shù)表中將PC地址跳轉(zhuǎn)到該API函數(shù)對應(yīng)的入口地址標(biāo)志所指的地址 處,使得所述應(yīng)用程序調(diào)用到所需的函數(shù)。
9.根據(jù)權(quán)利要求6或7所述的基于嵌入式的程序快速執(zhí)行系統(tǒng),其特征在于 當(dāng)系統(tǒng)需要增加新的API函數(shù)時,或者所述API函數(shù)庫需要升級時,只需將權(quán)利要求3中所述的預(yù)先定義的額外的空的API函數(shù)進行內(nèi)存拷貝,將新的API函數(shù)拷貝到API函數(shù) 表中空閑的入口地址處。
全文摘要
本發(fā)明公開了一種基于嵌入式的程序快速執(zhí)行方法及系統(tǒng)。本發(fā)明系統(tǒng)包括啟動單元,用于引導(dǎo)嵌入式系統(tǒng)進行初始化等工作;內(nèi)核單元,用于完成嵌入式系統(tǒng)底層和上層的連接;文件系統(tǒng)單元,用于管理和存儲文件信息;API函數(shù)庫單元,用于API函數(shù)的存儲;API函數(shù)表單元,用于API函數(shù)的定位與尋找;應(yīng)用程序單元,用于應(yīng)用程序的運行;內(nèi)存拷貝單元用于操作系統(tǒng)的升級。本發(fā)明技術(shù)方案簡化了程序運行時繁雜的動態(tài)加載過程,實現(xiàn)了應(yīng)用程序和庫函數(shù)的快速鏈接,加快了程序的運行速度。
文檔編號G06F9/38GK101814020SQ20101014714
公開日2010年8月25日 申請日期2010年4月15日 優(yōu)先權(quán)日2010年4月15日
發(fā)明者傅明, 張桂平, 曹敦 申請人:長沙理工大學(xué)