專利名稱:一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法
技術領域:
本發(fā)明涉及一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法。
背景技術:
在嵌入式系統(tǒng)開發(fā)領域中,代碼越來越復雜,需要的代碼存儲空間也越來越大,因 此設計者需要在嵌入式系統(tǒng)中增大存儲器的容量。當前通用的嵌入式硬件架構為處理器 +非易失存儲器(NOR-FLASH,NAND-FLASH等)。有些嵌入式系統(tǒng)還增加了擴展存儲器,如SD 卡、T-FLASH。這類設計應用的擴展性較差,不能根據(jù)需要裝載所需的應用,同時也提高了產(chǎn) 品的成本,往往得不償失。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,可 以有效解決現(xiàn)有技術存在的擴展性差、產(chǎn)品成本高等問題。嵌入式系統(tǒng)里面的程序一般是
把用各種語言((:,0++^51等)編寫的代碼,通過編譯、連接等過程生成一個二進制文件,然
后通過下載工具寫到系統(tǒng)的非易失存儲器中。系統(tǒng)運行時,處理器會從存儲器里讀入指令, 按順序執(zhí)行。本發(fā)明的實施方式是把系統(tǒng)的應用模塊化,在有需要的時候把代碼從擴展存 儲器中拷貝到非易失存儲器中,然后執(zhí)行跳轉(zhuǎn)指令,直接跳到特定的地址運行該程序。 本發(fā)明涉及一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,其特征在 于,包括如下步驟 1)將動態(tài)應用程序所需的系統(tǒng)函數(shù)總結出來,生成一個結構變量g— functionList—ptr來保存這些系統(tǒng)函數(shù)指針,并給予固定的地址; 2)編譯配置文件,在指定位置留出足夠大的空間用來動態(tài)裝載動態(tài)應用程序,生 成系統(tǒng)的BIN文件; 3)編寫系統(tǒng)的調(diào)用動態(tài)應用程序的服務程序,將動態(tài)應用的代碼從擴展存儲器中 拷貝到非易失存儲器的指定位置; 4)初始化結構變量g—functionList—ptr,跳轉(zhuǎn)到特定的地址; 5)編寫動態(tài)應用程序,在該程序中包括系統(tǒng)函數(shù)指針映射表的全局變量g—
functionList_ptr和應用程序代碼。 所述的系統(tǒng)在運行過程中可通過步驟2)所寫的服務程序調(diào)用步驟3)所寫的動態(tài) 應用程序。 本發(fā)明的優(yōu)點在于本發(fā)明針對各種增加擴展存儲器的嵌入式系統(tǒng),通過在運行 過程中根據(jù)需要從擴展存儲器中動態(tài)裝入運行代碼的方法,增加應用的擴展性,從而節(jié)約 產(chǎn)品的成本,豐富產(chǎn)品的應用,提高產(chǎn)品的競爭力。
附圖為本發(fā)明涉及的方法流程圖。
具體實施例方式
—種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,其特征在于,包括如下 步驟 1)將動態(tài)應用程序所需的系統(tǒng)函數(shù)總結出來,生成一個結構變量g— functionList—ptr來保存這些系統(tǒng)函數(shù)指針,并給予固定的地址。 動態(tài)應用程序所需的系統(tǒng)函數(shù)指的是有可能調(diào)用到的系統(tǒng)函數(shù),包括編程語言提 供的系統(tǒng)函數(shù),嵌入式系統(tǒng)提供的系統(tǒng)函數(shù)等。結構變量g_funCti0nLiSt_ptr,為系統(tǒng)函數(shù) 指針映射表的全局變量,每一個可能調(diào)用到的系統(tǒng)函數(shù)指針都是g_funCti0nLiSt_ptr的 一個成員,給予g_functionList_ptr固定的起始地址,如0x80000000,參與整個系統(tǒng)的編 譯和連接。 2)編寫配置文件,在指定位置留出足夠大的空間用來動態(tài)裝載動態(tài)應用程序,生 成系統(tǒng)的BIN文件; 編寫嵌入式系統(tǒng)的配置文件的地方空出足夠大的空間,以便能有空間拷貝動態(tài)應 用的程序。空間大小由設計者根據(jù)需要決定,一般要參考最大允許動態(tài)應用的大小決定。對 于ARM系統(tǒng)來說,嵌入式系統(tǒng)的配置文件一般是scatter文件。若g_functionList_ptr的 起始地址為0x80000000,則需要在0x80000000處留出足夠的空間。 3)編寫系統(tǒng)的調(diào)用動態(tài)應用程序的服務程序,將動態(tài)應用的代碼從擴展存儲器中
拷貝到非易失存儲器的指定位置。所述的指定位置是指g_funCti0nLiSt_ptr的起始地址。 4)初始化結構變量g—functionList—ptr,跳轉(zhuǎn)到特定的地址。 所述初始化結構變量g_functionList_ptr,即初始化系統(tǒng)函數(shù)指針,并保存
執(zhí)行完應用程序后應該返回的地址。所述特定的地址是一個固定的地址,一般是g—
functionList_ptr的起始地址與變量g_functionList_ptr相加并進行字對齊后得到的地址。 5)編寫動態(tài)應用程序,在該程序中包括系統(tǒng)函數(shù)指針映射表的全局變量g— functionList_ptr和應用程序代碼。 應用程序中的g_funCtionLiSt_ptr的地址要與固定成跟嵌入式系統(tǒng)中g_ functionList_ptr的地址相同,若g_functionList_ptr的起始地址為0x80000000,應用程 序中的g_functionList_ptr的地址也為0x80000000。 應用程序的入口函數(shù)的地址要固定為特定的地址,一般是g_funCtionLiSt_ptr 的起始地址與變量g_funCti0nList_ptr相加并進行字對齊后得到的地址,可使用靜態(tài)的, 也可以在配置文件中寫入。應用程序的入口函數(shù)執(zhí)行完后,要執(zhí)行跳轉(zhuǎn)指令,跳轉(zhuǎn)到固定的 地址,即調(diào)用入口函數(shù)的下一個地址。應用程序在編寫過程中,除非設計者編寫的函數(shù),否 則一律調(diào)用g_functionList_ptr來執(zhí)行系統(tǒng)函數(shù)。 所述的系統(tǒng)在運行過程中可通過步驟2)所寫的服務程序調(diào)用步驟3)所寫的動態(tài) 應用程序。
權利要求
一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,其特征在于,包括如下步驟1)將動態(tài)應用程序所需的系統(tǒng)函數(shù)總結出來,生成一個結構變量g_functionList_ptr來保存這些系統(tǒng)函數(shù)指針,并給予固定的地址;2)修改系統(tǒng)的配置文件(scater file),在指定位置留出足夠大的空間(100K--500K,甚至更大,可根據(jù)系統(tǒng)配置和實際需求來定),該空間用來動態(tài)裝載動態(tài)應用程序;編寫系統(tǒng)的調(diào)用動態(tài)應用程序的服務程序,該服務程序的功能是將動態(tài)應用的代碼從擴展存儲器中拷貝到非易失存儲器的指定位置;編譯連接系統(tǒng)程序,生成可執(zhí)行的系統(tǒng)文件(BIN);3)初始化結構變量g_functionList_ptr,跳轉(zhuǎn)到特定的地址;4)編寫動態(tài)應用程序,在該程序中包括系統(tǒng)函數(shù)指針映射表的全局變量g_functionList_ptr和應用程序代碼;修改動態(tài)應用程序的連接配置文件(scater file),編譯連接動態(tài)應用程序生成可動態(tài)裝載的BIN文件。
2. 如權利要求1所述的一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,其特 征在于所述的系統(tǒng)在運行過程中可通過步驟2)所寫的服務程序調(diào)用步驟3)所寫的動態(tài) 應用程序。
3. 如權利要求1所述的一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,其特 征在于所述的步驟3)中的指定位置是指g—f皿ctionList—ptr的起始地址。
4. 如權利要求1所述的一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,其特 征在于所述的步驟4)中的特定的地址是將g_funCti0nList_ptr的起始地址與變量g_ functionList_ptr相加并進行字對齊后得到的地址。
全文摘要
本發(fā)明的目的是提供一種在嵌入式系統(tǒng)的擴展存儲器中動態(tài)裝入代碼的方法,可以有效解決現(xiàn)有技術存在的擴展性差、產(chǎn)品成本高等問題。本發(fā)明將系統(tǒng)的應用模塊化,在有需要的時候把代碼從擴展存儲器中拷貝到非易失存儲器中,然后執(zhí)行跳轉(zhuǎn)指令,直接跳到特定的地址運行該程序。本發(fā)明的優(yōu)點在于本發(fā)明針對各種增加擴展存儲器的嵌入式系統(tǒng),通過在運行過程中根據(jù)需要從擴展存儲器中動態(tài)裝入運行代碼的方法,增加應用的擴展性,從而節(jié)約產(chǎn)品的成本,豐富產(chǎn)品的應用,提高產(chǎn)品的競爭力。
文檔編號G06F9/445GK101763273SQ200810207949
公開日2010年6月30日 申請日期2008年12月26日 優(yōu)先權日2008年12月26日
發(fā)明者錢小剛 申請人:上海聞泰電子科技有限公司