亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

嵌入式系統(tǒng)應用程序動態(tài)加載的方法

文檔序號:6339414閱讀:573來源:國知局

專利名稱::嵌入式系統(tǒng)應用程序動態(tài)加載的方法
技術領域
:本發(fā)明涉及一種應用程序動態(tài)加載的方法,特別是涉及一種嵌入式操作系統(tǒng)應用程序動態(tài)加載的方法。
背景技術
:目前,很多嵌入式操作系統(tǒng)并不支持動態(tài)加載技術,如UC/OS、ThreadX、RTK等。在基于這些嵌入式操作系統(tǒng)開發(fā)應用程序的時候,通常將應用程序和操作系統(tǒng)都放到一個固件文件里面,即應用程序并不是獨立存在的。然后,用戶還需要把包含操作系統(tǒng)和應用程序的固件文件燒錄到產(chǎn)品中去。這樣不僅增加了用戶的使用難度,并且提高了對芯片的ROM空間要求,從而導致研發(fā)成本的增大。此外,調試的時候很不方便。該方式需要把所有可執(zhí)行文件(包含操作系統(tǒng)和應用程序)燒錄進去。這樣增加了燒錄的時間,降低了調試的速度。
發(fā)明內容本發(fā)明要解決的技術問題是為了克服現(xiàn)有技術實施難度大,成本高且效率低的缺陷,提供一種嵌入式系統(tǒng)應用程序動態(tài)加載的方法。本發(fā)明是通過下述技術方案來解決上述技術問題的一種嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特點在于,其包括以下步驟S1、開啟嵌入式設備,劃分操作系統(tǒng)和應用程序分別占有的R0M(只讀內存)空間和RAM(隨機存取存儲器)空間。這是為后面燒錄應用程序固件文件作準備,使得應用程序固件文件燒錄到固定的區(qū)域,不會和操作系統(tǒng)所占的區(qū)域產(chǎn)生重疊。&、確定操作系統(tǒng)和應用程序間的函數(shù)接口。所述函數(shù)接口的作用在于使得操作系統(tǒng)能夠調用應用程序提供的接口,應用程序能夠調用操作系統(tǒng)提供的系統(tǒng)接口。S3、將應用程序固件文件存入嵌入式設備自帶的外部存儲空間中,把此嵌入式設備與外部存儲空間相連。由于芯片內部的ROM空間有限,需要把應用程序的固件文件放置到系統(tǒng)的外部文件系統(tǒng)中去,在動態(tài)加載時便于隨時調用。、、將應用程序固件文件燒錄到應用程序的ROM空間中。&、初始化所述函數(shù)接口,操作系統(tǒng)對應用程序進行動態(tài)加載。通過函數(shù)接口,可以快速便捷地進行應用程序的動態(tài)加載,降低了操作難度,提高了操作效率。較佳地,所述操作系統(tǒng)為非智能的嵌入式操作系統(tǒng)。非智能的嵌入式操作系統(tǒng)中應用程序功能單一,這樣方便定義操作系統(tǒng)與應用程序之間的函數(shù)接口,而且應用程序面向的對象很多,可以根據(jù)所連接的對象來加載不同的應用程序固件。較佳地,所述外部存儲空間為U盤、移動硬盤或電腦。所述外部存儲空間簡單易行。較佳地,所述步驟&中還包括以下步驟S21、定義操作系統(tǒng)函數(shù)結構體,包含操作系統(tǒng)向應用程序提供的函數(shù)接口S22、定義操作系統(tǒng)函數(shù)結構體變量,將所述變量固定在操作系統(tǒng)ROM空間的第一固定位置;S23、定義應用程序函數(shù)結構體,包含應用程序向操作系統(tǒng)提供的函數(shù)接口;S24、定義應用程序函數(shù)結構體變量,將所述變量固定在應用程序ROM空間的第二固定位置。較佳地,所述步驟&中還包括在所述嵌入式設備自帶的外部存儲空間中創(chuàng)建一對應表文件。較佳地,所述對應表文件用于記錄每個應用程序固件文件的名字及支持的設備型號,并建立對應關系。這樣方便操作系統(tǒng)快速查找固件。系統(tǒng)在獲取連接的設備型號后,根據(jù)對應表格文件進行快速的應用程序固件的查找,減少了查找的時間。較佳地,所述步驟&之后還包括以下步驟S31、操作系統(tǒng)獲取連接的嵌入式設備型號;S32、判斷是否獲取所連接的嵌入式設備型號成功;若否,進入步驟S33,若是,進入步驟S34;S33、提示用戶不支持,需要更新應用程序固件;S34、根據(jù)獲取的所連接的嵌入式設備型號在對應表文件中查找對應的應用程序固件;S35、判斷是否查找成功;若否,返回步驟S33,若是,進入步驟、。較佳地,所述步驟&中還包括以下步驟S51、操作系統(tǒng)在第二位置上初始化應用程序向操作系統(tǒng)提供的函數(shù)接口;S52、應用程序在第一位置上初始化操作系統(tǒng)向應用程序提供的函數(shù)接口。當合適的應用程序固件燒錄到ROM空間以后,操作系統(tǒng)進行函數(shù)接口的初始化,以達到操作系統(tǒng)可以調用應用程序提供的接口,應用程序可以調用操作系統(tǒng)的接口的目的。本發(fā)明的積極進步效果在于本發(fā)明通過將應用程序的固件文件存入嵌入式設備自帶的外部存儲空間中,并設置操作系統(tǒng)和應用程序間的函數(shù)接口來進行動態(tài)加載,使得芯片ROM空間的需求降低,以致降低研發(fā)成本。此外,由于只需要燒錄應用程序的固件文件,減少了燒錄的時間,同時也提高了調試的速度。圖1為本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法的流程圖。圖2為本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法中確定函數(shù)接口的流程圖。圖3為本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法中初始化函數(shù)接口的流程圖。具體實施例方式下面結合附圖給出本發(fā)明較佳實施例,以詳細說明本發(fā)明的技術方案。首先要劃分好操作系統(tǒng)和應用程序所占的ROM和RAM空間。例如,設定如下地址范圍ROM空間操作系統(tǒng)0x00000000-0x000FFFFF應用程序0xl00000-0x8FFFFFRAM空間操作系統(tǒng)0x00000000-0x00100000應用程序0x100001-0x300001這樣就可以把應用程序固件文件燒錄到固定的區(qū)域,從而保證操作系統(tǒng)所占的區(qū)域產(chǎn)生重疊。圖1為本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法的流程圖。如圖1所示,該方法包括以下步驟步驟100,開啟嵌入式設備。步驟101,劃分操作系統(tǒng)和應用程序分別占有的ROM空間和RAM空間。該步驟為后面燒錄應用程序固件文件作準備,保證應用程序固件文件不會和操作系統(tǒng)所占的區(qū)域產(chǎn)生重疊。此外,這里的所述操作系統(tǒng)為非智能的嵌入式操作系統(tǒng)。其中的應用程序功能單一,這樣方便定義操作系統(tǒng)與應用程序之間的函數(shù)接口。而且,應用程序面向的對象很多,可以根據(jù)所連接的對象來加載不同的應用程序固件。比如一款應用程序的功能是燒寫手機的IEMianternationalMobileEquipmentIdentity,國際移動裝備辨識碼)號,功能相對單一。但是由于手機的種類繁多,按照以前的應用模式,對每一款不同的手機需要對產(chǎn)品燒錄不同的固件(包含操作系統(tǒng)和支持當前手機的應用程序)。采用本發(fā)明,把應用程序固件存放到外部文件系統(tǒng)中去,操作系統(tǒng)根據(jù)所連接設備的型號進行應用程序固件查找,查找到以后,燒錄到ROM空間,然后開始工作,實現(xiàn)動態(tài)加載,整個操作簡便快捷。步驟102,確定操作系統(tǒng)和應用程序間的函數(shù)接口。所述函數(shù)接口的作用在于使得操作系統(tǒng)能夠調用應用程序提供的接口,應用程序行能夠調用操作系統(tǒng)提供的系統(tǒng)接口。步驟103,將應用程序固件文件存入嵌入式系統(tǒng)自帶的外部存儲空間中。外部存儲空間可以為U盤、移動硬盤或電腦,以及其他存儲設備。由于芯片內部的ROM空間有限,需要把應用程序的固件文件放置到系統(tǒng)的外部文件系統(tǒng)中去,在動態(tài)加載時便于隨時調用。步驟104,在嵌入式系統(tǒng)自帶的外部存儲空間中創(chuàng)建一對應表文件。對應表文件用于記錄每個應用程序固件文件的名字及支持的設備型號,并建立對應關系。這樣方便操作系統(tǒng)快速查找固件。系統(tǒng)在獲取連接的設備型號后,根據(jù)對應表格文件進行快速的應用程序固件的查找,減少了查找的時間。步驟105,連接嵌入式設備和外部存儲空間。步驟106,操作系統(tǒng)獲取連接的嵌入式設備型號。步驟107,判斷是否成功獲取所連接的嵌入式設備型號;若否,進入步驟108,若是,進入步驟109。步驟108,提示用戶不支持,需要更新應用程序固件。步驟109,根據(jù)獲取的嵌入式設備型號在對應表文件中查找對應的應用程序固件。步驟110,判斷是否查找成功;若否,返回步驟108,若是,進入步驟111。步驟111,將應用程序固件文件燒錄到應用程序的ROM空間中。步驟112,初始化所述函數(shù)接口,操作系統(tǒng)對應用程序進行動態(tài)加載。通過函數(shù)接口,可以快速便捷地進行應用程序的動態(tài)加載,降低了操作難度,提高了操作效率。以下通過一個實例來詳細說明該方法假設有8個應用程序固件文件,分別是1.bin,2.bin,3.bin,4.bin,5.bin,6.bin,7.bin,8.bin,且分別支持M_A,M_B,M_C,M_D,M_E,M_F,M_G,M_H。建立關系對應表table,txt如下1.bin:M_A2.bin:M_B3.bin:M_C4.bin:M_D5.bin:M_E6.bin:M_F7.bin:M_G8.bin:M_H當連接的設備是M_E,系統(tǒng)根據(jù)對應表table,txt查找到5.bin支持M_E。因此將5.bin燒錄到應用程序對應的ROM空間,然后初始化操作系統(tǒng)與應用程序之間的函數(shù)接口,系統(tǒng)開始運行。當連接的設備是M_C,系統(tǒng)根據(jù)對應表table,txt查找到3.bin支持M_C。因此將3.bin燒錄到應用程序對應的ROM空間,然后初始化操作系統(tǒng)與應用程序之間的函數(shù)接口,系統(tǒng)開始運行。這樣就達到了動態(tài)調用的目的。如果連接的設備為M_X,table,txt不存在,則提示用戶不支持,需要更新固件。圖2為本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法中確定函數(shù)接口的流程圖。如圖2所示,該確定函數(shù)接口的流程包括如下步驟步驟200,定義操作系統(tǒng)函數(shù)結構體,包含操作系統(tǒng)向應用程序提供的函數(shù)接口。步驟201,定義操作系統(tǒng)函數(shù)結構體變量,將所述變量固定在操作系統(tǒng)ROM空間的第一固定位置。步驟202,定義應用程序函數(shù)結構體,包含應用程序向操作系統(tǒng)提供的函數(shù)接口。步驟203,定義應用程序函數(shù)結構體變量,將所述變量固定在應用程序ROM空間的第二固定位置。圖3為本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法中初始化函數(shù)接口的流程圖。當合適的應用程序固件燒錄到ROM空間以后,操作系統(tǒng)進行函數(shù)接口的初始化,以達到操作系統(tǒng)可以調用應用程序提供的接口,應用程序可以調用操作系統(tǒng)的接口的目的。如圖3所示,該初始化函數(shù)接口的流程包括如下步驟步驟300,操作系統(tǒng)在第二位置上初始化應用程序向操作系統(tǒng)提供的函數(shù)接口。步驟301,應用程序在第一位置上初始化操作系統(tǒng)向應用程序提供的函數(shù)接口。以下通過一實例來說明確定函數(shù)接口和初始化函數(shù)接口的流程操作系統(tǒng)向應用程序提供的函數(shù)接口Void(*)0S_interfacel(Void*)Void(*)0S_interface2(Void*)Void(*)0S_interface3(Void*)Void(*)0S_interface4(Void*)Void(*)0S_interface5(Void*)Void(氺)0S_interfacex(Void*)應用程序向操作系統(tǒng)提供的函數(shù)接口Void(*)App_interfacel(Void*)Void(*)App_interface2(Void*)Void(*)App_interface3(Void*)Void(*)App_interface4(Void*)Void(*)App一interfaces(Void*)Void(*)App_interfacex(Void*)定義操作系統(tǒng)函數(shù)結構體StructOS_interface{Void(*)OS_interfacel(void*);Void(*)OS_interface2(void*);Void(*)OS_interface3(void*);Void(*)OS_interface4(void*);Void(*)OS_interface5(void*);Void(*)OS_interfacex(void*);};7定義操作應用程序結構體StructApp—interface{Void(*)App—interface1(void*);Void(*)App_interface2(void*);Void(*)App_interface3(void*);Void(*)App_interface4(void*);Void(*)App_interface5(void*);Void(*)App_interfacex(void*);};定義操作系統(tǒng)函數(shù)結構體變量OS_interfaceο—Interface={OS—fl;OS—f2;OS—β;OS_f4;OS_f5;OS_fx;將οJnterface固定在OxOOOOFFFF上。定義應用程序函數(shù)結構體變量App_interfacea_Interface={App—fl;App_f2;8CN102541579AApp—β;App_f4;App_f5;App_fx;};將aJnterface固定在Ox8FFFFO上。通過本發(fā)明嵌入式系統(tǒng)應用程序動態(tài)加載的方法,提高了調試速度,降低了產(chǎn)品的成本,從而有效解決了嵌入式操作系統(tǒng)不支持動態(tài)加載的情況。雖然以上描述了本發(fā)明的具體實施方式,但是本領域的技術人員應當理解,這些僅是舉例說明,本發(fā)明的保護范圍是由所附權利要求書限定的。本領域的技術人員在不背離本發(fā)明的原理和實質的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護范圍。權利要求1.一種嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,其包括以下步驟S1、開啟嵌入式設備,劃分操作系統(tǒng)和應用程序分別占有的ROM空間和RAM空間;&、確定操作系統(tǒng)和應用程序間的函數(shù)接口;S3、將應用程序固件文件存入嵌入式設備自帶的外部存儲空間中,把此嵌入式設備與外部存儲空間相連;、、將應用程序固件文件燒錄到應用程序的ROM空間中;&、初始化所述函數(shù)接口,操作系統(tǒng)對應用程序進行動態(tài)加載。2.如權利要求1所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述操作系統(tǒng)為非智能的嵌入式操作系統(tǒng)。3.如權利要求1所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述外部存儲空間為U盤、移動硬盤或電腦。4.如權利要求1所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述步驟&中還包括以下步驟s21、定義操作系統(tǒng)函數(shù)結構體,包含操作系統(tǒng)向應用程序提供的函數(shù)接口;s22、定義操作系統(tǒng)函數(shù)結構體變量,將所述變量固定在操作系統(tǒng)ROM空間的第一固定位置;、定義應用程序函數(shù)結構體,包含應用程序向操作系統(tǒng)提供的函數(shù)接口;S24、定義應用程序函數(shù)結構體變量,將所述變量固定在應用程序ROM空間的第二固定位置。5.如權利要求1所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述步驟S3中還包括在所述嵌入式設備自帶的外部存儲空間中創(chuàng)建一對應表文件。6.如權利要求5所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述對應表文件用于記錄每個應用程序固件文件的名字及支持的設備型號,并建立對應關系。7.如權利要求1所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述步驟S3之后還包括以下步驟s31、操作系統(tǒng)獲取連接的嵌入式設備型號;s32、判斷是否獲取所連接的嵌入式設備型號成功;若否,進入步驟S33,若是,進入步驟S34;s33、提示用戶不支持,需要更新應用程序固件;s34、根據(jù)獲取的所連接的嵌入式設備型號在對應表文件中查找對應的應用程序固件;s35、判斷是否查找成功;若否,返回步驟S33,若是,進入步驟、。8.如權利要求1所述的嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其特征在于,所述步驟&中還包括以下步驟s51、操作系統(tǒng)在第二位置上初始化應用程序向操作系統(tǒng)提供的函數(shù)接口;s52、應用程序在第一位置上初始化操作系統(tǒng)向應用程序提供的函數(shù)接口。全文摘要本發(fā)明公開了一種嵌入式系統(tǒng)應用程序動態(tài)加載的方法,其包括以下步驟S1、開啟嵌入式設備,劃分操作系統(tǒng)和應用程序分別占有的ROM空間和RAM空間;S2、確定操作系統(tǒng)和應用程序間的函數(shù)接口;S3、將應用程序固件文件存入嵌入式設備自帶的外部存儲空間中,把此嵌入式設備與外部存儲空間相連;S4、將應用程序固件文件燒錄到應用程序的ROM空間中;S5、初始化所述函數(shù)接口,操作系統(tǒng)對應用程序進行動態(tài)加載。本發(fā)明通過將應用程序的固件文件存入嵌入式設備自帶的外部存儲空間中,并設置操作系統(tǒng)和應用程序間的函數(shù)接口來進行動態(tài)加載,使得芯片ROM空間的需求降低,以致降低研發(fā)成本。此外還減少了燒錄的時間,提高了調試的速度。文檔編號G06F9/445GK102541579SQ20101059981公開日2012年7月4日申請日期2010年12月17日優(yōu)先權日2010年12月17日發(fā)明者李敬來申請人:沈陽新郵通信設備有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1