[發明專利]一種基于嵌入式的程序快速執行方法及系統無效
| 申請號: | 201010147144.1 | 申請日: | 2010-04-15 |
| 公開(公告)號: | CN101814020A | 公開(公告)日: | 2010-08-25 |
| 發明(設計)人: | 傅明;張桂平;曹敦 | 申請(專利權)人: | 長沙理工大學 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/312 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 410114 湖南省長沙*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 嵌入式 程序 快速 執行 方法 系統 | ||
技術領域
本發明涉及嵌入式系統領域,具體涉及一種基于嵌入式的程序快速執行方法及系統。
背景技術
一般目前主流的嵌入式操作系統應用程序調用庫函數都是采用靜態鏈接和動態鏈接的方式。
靜態鏈接是由鏈接器在鏈接時將庫的內容加入到可執行程序中的做法。鏈接器是一個獨立程序,是將一個或多個庫或目標文件(先前由編譯器或匯編器生成)鏈接到一塊生成可執行程序。
動態鏈接是在可執行文件裝載時或運行時,由操作系統的裝載程序加載庫。大多數操作系統將解析外部引用(比如庫)作為加載過程的一部分。在這些系統上,可執行文件包含一個叫做import?directory的表,該表的每一項包含一個庫的名字。根據表中記錄的名字,裝載程序在硬盤上搜索需要的庫,然后將其加載到內存中預先不確定的位置,之后根據加載庫后確定的庫的地址更新可執行程序。可執行程序根據更新后的庫信息調用庫中的函數或引用庫中的數據。這種類型的動態加載成為裝載時加載,被包括Windows和Linux的大多數系統采用。裝載程序在加載應用軟件時要完成的最復雜的工作之一就是加載時鏈接。
但是,目前的靜態鏈接和動態鏈接都存在一定缺陷:
靜態鏈接的最大缺點是生成的可執行文件太大,需要更多的系統資源,在裝入內存時也會消耗更多的時間。動態鏈接的最大缺點是可執行程序依賴分別存儲的庫文件才能正確執行。如果庫文件被刪除了,移動了,重命名了或者被替換為不兼容的版本了,那么可執行程序就可能工作不正常。這就是常說的DLL-hell。
發明內容
本發明要解決的技術問題是提供一種基于嵌入式的程序快速執行方法及系統,既解決了靜態鏈接占用資源過多的問題,又解決了動態鏈接時繁雜的加載過程的問題,讓應用程序在占用較小的空間下又能快速的運行。
為完成上述發明目的,本發明采用如下技術方案:
本發明提供一種基于嵌入式的程序快速執行方法,包括:
預先定義應用程序編程接口API函數庫、預先定義額外的空的API函數并預先定義API函數表;
判斷應用程序是否需要調用定義的API函數庫的其中一個API函數,若否,則結束,若是,在應用程序中加入跳轉指令,跳轉到定義的API函數表中對應的API函數標志處;
將Pc值相應改為函數入口地址;
在API函數表的引導下,應用程序進入到API函數庫中執行上述的API函數。
優選的,所述預先定義API函數庫包括:
在API函數庫中定義各API函數,為所有的API函數分配函數標志、入口地址標志,入口地址標志指向API函數在內存中的入口地址;
將上述所有的API函數拷貝到對應的入口地址開始的連續單元內。
優選的,預先定義額外的空的API函數時還包括:為預先定義的額外的空的API函數分配函數標志和入口地址標志,并給入口地址標志分配對應的空閑的入口地址,為每個設定的API函數保留設定大小的空間。
優選的,預先定義的API函數表由API函數的函數標志,入口地址標志和指令組成,在函數標志后加上一條指令將API函數的入口地址標志所指的入口地址賦給PC指針。
預先定義API函數表的過程包括:
1)在API函數表中加入API函數標志,根據API函數的功能來給每個API函數賦予不同的函數標志;
2)將API函數以及權利要求3中所述定義的額外的空的API函數的函數標志及入口地址標志添加到API函數表中;
3)繼續將剩余的API函數標志及入口地址標志添加到API函數表中;
4)判斷步驟3)是否執行完成,若否,則繼續返回步驟3)執行;若是,則結束。
本發明提供一種基于嵌入式的程序快速執行系統,包括:
啟動單元、內核單元、文件系統單元、API函數庫單元、API函數表單元、應用程序單元、內存拷貝單元;其中,所述啟動單元、所述內核單元和所述文件系統單元共同構成了操作系統的運行環境,作為系統的最底層;API函數庫單元和API函數表單元相連接共同組成了中間層;應用程序單元和內存拷貝單元組成了系統的最上層;
所述啟動單元,用于引導嵌入式系統進行初始化等工作;
所述內核單元,用于完成嵌入式系統底層和上層的連接;
所述文件系統單元,用于管理和存儲文件信息;
所述API函數庫單元,用于定義和存儲各類用戶所要用到的API函數;
所述API函數表單元,用于存儲API函數庫中各類API函數的入口地址標志和函數標志;
所述應用程序單元,用于完成嵌入式設備的各項功能;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于長沙理工大學,未經長沙理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010147144.1/2.html,轉載請聲明來源鉆瓜專利網。





