新四季網

嵌入式實時作業系統中實現動態加載的方法和裝置的製作方法

2023-06-17 04:24:21

專利名稱:嵌入式實時作業系統中實現動態加載的方法和裝置的製作方法
技術領域:
本發明涉及計算機領域,特別涉及一種嵌入式實時作業系統中實現動態 加載的方法和裝置。
背景技術:
根據正EE (國際電機工程師協會)的定義,嵌入式系統是"控制、監視 或者輔助裝置、機器和設備運行的裝置"(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。這主要是從應用上力口以 定義的,從中可以看出嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械 等附屬裝置。目前國內一個普遍^皮認同的嵌入式系統的定義是以應用為中 心、以計算機技術為基礎、軟體硬體可裁剪、適應應用系統對功能、可靠性、 成本、體積、功耗嚴格要求的專用計算機系統。
嵌入式系統是將先進的計算機技術、半導體技術和電子技術和各個行業 的具體應用相結合後的產物,是面向用戶、面向產品、面向應用的,它必須 與具體應用相結合才會具有生命力、才更具有優勢。嵌入式系統必須根據應 用需求對軟硬體進行裁剪,滿足應用系統的功能、可靠性、成本、體積等要 求。所以,如果能建立相對通用的軟硬體基礎,然後在其上開發出適應各種 需要的系統,是一個比較好的M才莫式。目前的嵌入式系統的核心往往是一 個只有幾K到幾十K微內核,需要4艮據實際的使用進行功能擴展或者裁減, 但是由於微內核的存在,使得這種擴展能夠非常順利的進行。實際上,嵌入 式系統本身是一個外延極廣的名詞,凡是與產品結合在一起的具有嵌入式特 點的控制系統都可以叫嵌入式系統。
一般而言,嵌入式系統的構架可以分成四個部分處理器、存儲器、輸 入輸出(I/O)、作業系統OS。
目前,對於基於嵌入式實時作業系統RTOS的應用開發,通常的做法是
4把應用模塊所有的代碼全部編譯並且連結在一起。這樣做最大的問題在於一
個應用模塊所需要的代碼的存儲空間會很大;當應用模塊在嵌入式系統中運 行時,其代碼都是存儲在內存中,為了存儲產品代碼,需要內存的容量較大, 而內存的價格通常較高,因此提高了整個系統的成本。

發明內容
本發明要解決的技術問題是提供一種嵌入式實時作業系統中實現動態加 載的方法和裝置,可以節省代碼存儲空間,降低產品成本,在相同的代碼空 間上,完成更多的功能。
為了解決上述問題,本發明提供了一種嵌入式實時作業系統中實現動態 加載的方法,包括
將應用模塊分為基礎平臺組件和若干應用組件;
運行基礎平臺;所述基礎平臺包括所述基礎平臺組件、資料庫衝莫式定義 語言DDL組件和實時作業系統RTOS;
所述基礎平臺將各應用組件先保存在外存;
當基礎平臺需要調用 一應用組件時,將該應用組件從外存中加載到內存, 編譯連結後運行該應用組件;
當 一應用組件運行結束,基礎平臺從內存中卸載應用組件。
進一步地,由所述DDL組件通過統一的入口函數將所述應用組件加載到 內存,並進行編譯鏈4妄後運行;
由DDL組件通過統一的退出函數從內存中卸載該應用組件。
進一步地,所述DDL組件將應用組件編譯成位置獨立代碼/數據PIC/PID 的形式;
DDL組件動態決定所加載的應用組件的代碼和數據在內存中的實際地址。
進一步地,運行基礎平臺具體包括 RTOS啟動;將所有的基礎平臺組件通過DDL組件進行註冊。
進一步地,所述應用組件在運行時通過DDL組件調用註冊的基礎平臺組件。
本發明還提供了 一種嵌入式實時作業系統中實現動態加載的裝置,包括
基礎平臺、內存、外存和保存在外存中的應用組件;
所述基礎平臺包括基礎平臺組件、DDL組件和RTOS,用於將各應用組 件保存在外存中,當需要調用一應用組件時,將該應用組件從外存中加載到 內存,編譯連結後運行該應用組件;以及當一應用組件運行結束時,卸載該 應用組件。
進一步地,所述DDL組件包括
力口載單元、執行單元和卸載單元;
所述加載單元通過統一的入口函數將所述應用組件加載到內存,並進行 編譯連結;
所述執行單元運行所述應用組件;
所述卸載單元通過統一的退出函數從內存中卸載應用組件。 進一步地,所述DDL組件包括
所述加載單元將應用組件編譯成位置獨立代碼/數據PIC/PID的形式;
所述執行單元動態決定所加載的應用組件的代碼和數據在內存中的實際 地址。
進一步地,所述DDL組件包括 提供給基礎平臺組件的註冊服務函數的第一接口 ;
所述RTOS啟動後,將所有的所述基礎平臺組件通過所述第一接口進行 註冊。
進一步地,所述DDL組件包括
提供給所述應用組件的使用註冊的服務函數的第二接口 ;
所述應用組件在運行時通過所述第二接口調用註冊的基礎平臺組件。本發明的技術方案將DDL應用於嵌入式系統,實現了在嵌入式實時操作 系統中,只將當前需要運行的代碼加載進內存,當運行完畢後,又可以動態 的從內存卸載出去;不用一次性把所有的應用全部編譯成一個程序,同樣的 空間,可以只根據需要的時候才加載相應的代碼,這樣可以在相同的代碼空 間上,完成更多的功能,從而節約產品的成本。


圖1是本發明實施例一中嵌入式實時作業系統中實現動態加載的方法的 流程示意圖。
具體實施例方式
下面將結合附圖及實施例對本發明的技術方案進行更詳細的說明。
本發明提出了一種嵌入式實時作業系統中實現動態加栽的方法和裝置, 通過動態加載的方式加載程序代碼的方式開發基於RTOS的產品。
實施例一, 一種嵌入式實時作業系統中實現動態加載的方法,包括
當產品一一 即所開發的應用模塊運行的時候,並不需要所有的代碼同時 運行,因此可以將不運行的部分存儲在價格較為低廉的外存中,只將要運行 的部分保存在內存中,從而縮小所需要的內存空間。比如原先把一個應用才莫 塊所有的代碼需要4M的空間,該應用模塊共由5個應用組件(APP)組成,其 中基礎平臺佔有了 2M的空間,5個APP共佔有了 2M。使用了本發明的方法 和裝置後,只需要2M+2M/5 = 2.4M的空間即可。當然,不在運行狀態的APP 也需要存儲,但是可以存儲在價格更便宜的外存,如Flash中,而不是始終 佔有內存空間;只在^f吏用一應用組件時,將該應用組件加栽到內存中。
所述方法如圖l所示,具體包括以下步驟
A、劃分基礎平臺組件和應用組件。
將應用模塊分為基礎平臺組件和若干應用組件;其中,各應用組件分別 是實現不同功能的代碼部分,比如播放MP3的應用組件、錄音的應用組件等; 而基礎平臺組件是各應用組件共用的代碼部分、以及需要始終運行的代碼部分;所述基礎平臺組件根據嵌入式系統的不同有很大區別,比如文件系統, GUI組件等。
B、 運行基礎平臺;所述基礎平臺包括所迷基礎平臺組件、DDL(數據 庫模式定義語言)組件和RTOS;此基礎平臺可以作為單獨的程序運行。
本實施例中,所述DDL組件可以包括加載單元、執行單元、卸載單元、 第 一接口及第二接口 ;其中第 一接口是提供給基礎平臺組件的註冊服務函數 的接口;第二接口是提供給其它組件的使用註冊的服務函數的接口。
本實施例中,RTOS啟動的時候,將所有的基礎平臺組件通過DDL組件 中的第 一接口進行註冊一 一 即將所有的基礎平臺組件加載到內存裡,進行編 譯連結後運行。
本實施例中,DDL組件的代碼也可以使用基礎平臺的相應的功能,提供 DDL功能的基礎平臺可以提供很多通用的功能,這部分功能就不需要每個 DDL組件都去實現。
C、 所述基礎平臺將各應用組件先保存在外存。
本實施例中,所述基礎平臺在保存各應用組件時,還可以記錄各應用組 件在外存的存儲地址和數據長度,以方便調用。
D、 當基礎平臺需要調用一應用組件時,將該應用組件從外存中加載到 內存,編譯連結後運行該應用組件。
本實施例中,基礎平臺需要調用 一應用組件包括以下情況中的任一種或 任幾種
用戶運行與一應用組件相對應的應用程式;比如用戶通過滑鼠或鍵盤的 輸入運行的命令;
基礎平臺需要運行一應用組件;
其他應用才莫塊需要運行一應用組件。
實際應用時,還可以包括其它需要運行應用組件的情況。
本實施例中,由所述DDL組件中的加載單元通過統一的入口函數將所述 應用組件加載到內存,並進行編譯連結。本實施例中,由所述DDL組件中的執行單元運行所迷應用組件。
本實施例中,加載是指複製;實際應用是也可以是指從外存移動到內存, 這樣卸載時就相應需要從內存移動回外存。
本實施例中,所述應用組件在運行時可以通過DDL組件提供的第二接口 調用基礎平臺註冊的基礎平臺組件。
本實施例中,需要將應用組件編譯成PIC/PID (Position Independent Code/Data,位置獨立代碼/數據)的形式;原因是動態加載的應用組件需要由 DDL組件動態決定code (代碼)和data (數據)在內存中的實際地址。
E、當一應用組件運行結束,基礎平臺從內存中卸載該應用組件。
本實施例中,應用組件運行結束的情況可以是用戶關閉與該應用組件相 對應的應用程式;比如用戶通過滑鼠或鍵盤的輸入關閉的命令;比如對於有 界面程序的應用模塊,當用戶通過滑鼠或鍵盤選擇開始播放MP3的應用程式 時,基礎平臺就會加載用於播放mp3的應用組件;當用戶通過滑鼠或鍵盤關 閉播放MP3的應用程式時,基礎平臺就會卸栽用於播放mp3的應用組件。
本實施例中,應用組件運行結束的情況也可以是該應用組件運行完畢, 或是基礎平臺或其它應用模塊不再需要該應用組件的情況。
本實施例中,從內存中卸載是指刪去該應用組件在內存中的代碼。
本實施例中,由DDL組件中的卸載單元通過統一的退出函數從內存中卸 載該應用組件。
當再需要調用應用組件時,執行步驟D。
本發明所提供的嵌入式實時作業系統中實現動態加載的裝置,包括
基礎平臺、內存、外存和保存在外存中的應用組件;
所述基礎平臺用於將各應用組件保存在外存中,當需要調用 一應用組件 時,將該應用組件從外存中加載到內存,編譯連結後運行該應用組件;以及 當一應用組件運4亍結束時,從內存中卸載該應用組件。
所述基礎平臺包括基礎平臺組件、DDL組件和RTOS。各應用組件是應用才莫塊中實現不同功能的代碼部分,比如播放MP3的應 用組件、錄音的應用組件等;而基礎平臺組件是應用才莫塊中各應用組件共用 的代碼部分、以及需要始終運行的代碼部分;所述基礎平臺組件根據嵌入式 系統的不同有很大區別,比如文件系統,GUI組件等。
本實施例中,所述DDL組件可以包括加載單元、執4亍單元、卸載單元、 第 一接口及第二接口 ;其中第 一接口是提供給基礎平臺組件的註冊服務函數 的接口 ;第二接口是提供給其它組件的使用註冊的服務函數的接口 。
本實施例中,RTOS啟動的時候,將基礎平臺的所有組件通過DDL組件 中的第一接口進行註冊一一即將基礎平臺的所有組件加載到內存裡,進行編 譯連結後運行。
本實施例中,DDL組件的代碼也可以使用基礎平臺的相應的功能,提供 DDL功能的基礎平臺可以提供很多通用的功能,這部分功能就不需要每個 DDL組件都去實現。
本實施例中,由所述DDL組件中的加載單元通過統一的入口函數將所述 應用組件加載到內存,並進4亍編譯鏈4妾。
本實施例中,由所迷DDL組件中的執行單元運行所述應用組件。
本實施例中,加栽是指複製;實際應用是也可以是指從外存移動到內存, 這樣卸載時就相應需要從內存移動回外存。
本實施例中,所述應用組件在運行時可以通過DDL組件提供的第二接口 調用基礎平臺註冊的基礎平臺組件。
本實施例中,所^。載單元需要將應用組件編譯成PIC/PID的形式;原 因是動態加載的應用組件需要由DDL組件中的所迷執行單元動態決定code (代碼)和data (數據)在內存中的實際地址。
本實施例中,由DDL組件中的卸載單元通過統一的退出函數從內存中卸 載該應用組件。
當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的 情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形, 但這些相應的改變和變形都應屬於本發明的權利要求的保護範圍。
10
權利要求
1、一種嵌入式實時作業系統中實現動態加載的方法,包括將應用模塊分為基礎平臺組件和若干應用組件;運行基礎平臺;所述基礎平臺包括所述基礎平臺組件、資料庫模式定義語言DDL組件和實時作業系統RTOS;所述基礎平臺將各應用組件先保存在外存;當基礎平臺需要調用一應用組件時,將該應用組件從外存中加載到內存,編譯連結後運行該應用組件;當一應用組件運行結束,基礎平臺從內存中卸載應用組件。
2、 如權利要求l所迷的方法,其特徵在於由所述DDL組件通過統一的入口函數將所述應用組件加載到內存,並進 4亍編譯鏈4妄後運4亍;由DDL組件通過統一的退出函數從內存中卸載該應用組件。
3、 如權利要求2所述的方法,其特徵在於所述DDL組件將應用組件編譯成位置獨立代碼/數據PIC/PID的形式; DDL組件動態決定所加載的應用組件的代碼和數據在內存中的實際地址。
4、 如權利要求1到3中任一項所述的方法,其特徵在於,運行基礎平臺 具體包括RTOS啟動;將所有的基礎平臺組件通過DDL組件進行註冊。
5、 如權利要求4所述的方法,其特徵在於所述應用組件在運行時通過DDL組件調用註冊的基礎平臺組件。
6、 一種嵌入式實時作業系統中實現動態加載的裝置,其特徵在於,包括基礎平臺、內存、外存和保存在外存中的應用組件;所述基礎平臺包括基礎平臺組件、DDL組件和RTOS,用於將各應用組 件保存在外存中,當需要調用一應用組件時,將該應用組件從外存中加載到 內存,編譯連結後運行該應用組件;以及當一應用組件運行結束時,卸載該 應用組件。
7、 如權利要求6所述的裝置,其特徵在於,所述DDL組件包括 力口載單元、執行單元和卸載單元;所述加載單元通過統一的入口函數將所述應用組件加載到內存,並進行 編譯連結;所述執行單元運行所述應用組件;所述卸載單元通過統一的退出函數從內存中卸載應用組件。
8、 如權利要求7所述的裝置,其特徵在於,所述DDL組件包括所述加載單元將應用組件編譯成位置獨立代碼/數據PIC/PID的形式;所述執行單元動態決定所加載的應用組件的代碼和數據在內存中的實際 地址。
9、 如權利要求6到8中任一項所述的方法,其特徵在於,所述DDL組 件包括提供給基礎平臺組件的註冊服務函數的第一接口 ;所述RTOS啟動後,將所有的所述基礎平臺組件通過所述第一接口進行 註冊。
10、 如權利要求9所述的裝置,其特徵在於,所述DDL組件包括 提供給所述應用組件的使用註冊的服務函數的第二接口 ; 所述應用組件在運行時通過所述第二接口調用註冊的基礎平臺組件。
全文摘要
本發明公開了一種嵌入式實時作業系統中實現動態加載的方法和裝置;所述方法包括將應用模塊分為基礎平臺組件和若干應用組件;運行基礎平臺;所述基礎平臺包括所述基礎平臺組件、資料庫模式定義語言DDL組件和實時作業系統RTOS;所述基礎平臺將各應用組件先保存在外存;當基礎平臺需要調用一應用組件時,將該應用組件從外存中加載到內存,編譯連結後運行該應用組件;當一應用組件運行結束,基礎平臺從內存中卸載應用組件。本發明可以節省代碼存儲空間,降低產品成本,在相同的代碼空間上,完成更多的功能。
文檔編號G06F9/445GK101458629SQ200810247059
公開日2009年6月17日 申請日期2008年12月31日 優先權日2008年12月31日
發明者華 張 申請人:北京中星微電子有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀