專利名稱:一種嵌入式系統(tǒng)的軟件分離設(shè)計(jì)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng),尤其涉及一種嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,尤其可以適用于低性能嵌入式系統(tǒng)中。
背景技術(shù):
隨著嵌入式技術(shù)發(fā)展和嵌入式設(shè)備的多樣化,嵌入式軟件功能越來越多,越來越強(qiáng)大,越來越智能化,因此,如何在有限的存儲(chǔ)器容量上運(yùn)行眾多應(yīng)用軟件和管理維護(hù)眾多應(yīng)用軟件成為嵌入式系統(tǒng)經(jīng)常需要解決關(guān)鍵問題。在實(shí)際應(yīng)用中,嵌入式系統(tǒng)中基本上都具備Flash存儲(chǔ)器和RAM存儲(chǔ)器兩種存儲(chǔ)介質(zhì),正是由于這兩種存儲(chǔ)器使得軟件固件的存儲(chǔ)、引導(dǎo)和啟動(dòng)運(yùn)行成為可能。軟件固件通常情況下下載存儲(chǔ)在Flash存儲(chǔ)器中,需要運(yùn)行時(shí)才引導(dǎo)到RAM中運(yùn)行,因此Flash和RAM被廣泛用于移動(dòng)存儲(chǔ)、數(shù)碼相機(jī)、MP3播放器、掌上電腦、車載終端等新興數(shù)字設(shè)備中。以往嵌入式軟件設(shè)計(jì)和運(yùn)行的方法是,在低性能嵌入式系統(tǒng)中,選擇普通操作系統(tǒng)(如UC/0S等)或者無操作系統(tǒng),這些操作系統(tǒng)本身不支持平臺層和應(yīng)用層分離設(shè)計(jì),不支持應(yīng)用與應(yīng)用間分離設(shè)計(jì),所有的程序一次性開發(fā)完畢,最終編譯鏈接生成一個(gè)可執(zhí)行固件,下載到設(shè)備中,當(dāng)設(shè)備上電啟動(dòng)時(shí)將整個(gè)固件引導(dǎo)到RAM中運(yùn)行,這類的操作系統(tǒng)對硬件資源要求比較低,可以選擇普通的微處理器(如ARM7內(nèi)核處理器)和普通容量的Flash存儲(chǔ)器和RAM存儲(chǔ)器。這種方法沒有進(jìn)行分離設(shè)計(jì),有如下缺點(diǎn)1.無法分時(shí)共享RAM存儲(chǔ)器,當(dāng)設(shè)備上電啟動(dòng)時(shí)將整個(gè)固件引導(dǎo)到RAM中運(yùn)行,然而不是所有功能在同一時(shí)刻都要啟動(dòng)運(yùn)行的,造成RAM容量浪費(fèi),容量大的RAM存儲(chǔ)器價(jià)格比較昂貴,從而增加產(chǎn)品的成本; 2.不能進(jìn)行分離維護(hù),不能專人專職,軟件維護(hù)工作量和難度比較大,同時(shí)不利于公司層次化技術(shù)保密管理;3.通過數(shù)據(jù)線下載更新固件時(shí)要下載整個(gè)固件,需要下載的時(shí)間比較長;4.通過移動(dòng)通信網(wǎng)絡(luò)無線下載更新固件時(shí)要下載整個(gè)固件,需要下載的時(shí)間比較長, 而且浪費(fèi)數(shù)據(jù)流量,產(chǎn)生較多流量費(fèi)用;5.程序都融合在一起,代碼量比較大,調(diào)試查找問題比較困難,可靠性比較低;6.不易跨平臺移植,平臺變更時(shí),往往需要修改很多程序,甚至涉及到應(yīng)用軟件的更改。
發(fā)明內(nèi)容
本發(fā)明所要解決的是針對低性能嵌入式系統(tǒng)的普通操作系統(tǒng)或者無操作系統(tǒng)不支持平臺層和應(yīng)用層分離設(shè)計(jì)產(chǎn)生的技術(shù)問題,本發(fā)明提供了一種低性能嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法。為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案包括 將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層的軟件分離設(shè)計(jì)步驟, 實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口 API的設(shè)計(jì)步驟, 將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,
應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行的步驟。
進(jìn)一步的,還包括應(yīng)用軟件可執(zhí)行固件有效性、合法性的判斷步驟,在引導(dǎo)應(yīng)用軟件到RAM執(zhí)行之前,對每個(gè)軟件工程編譯鏈接生成的各自獨(dú)立的可執(zhí)行固件進(jìn)行有效性和合法性判斷,以正確引導(dǎo)操作菜單所對應(yīng)的應(yīng)用軟件可執(zhí)行固件,并避免將文件系統(tǒng)的其他文件當(dāng)作應(yīng)用軟件可執(zhí)行固件。進(jìn)一步的,將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層的軟件分離設(shè)計(jì)步驟,具體是將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層,為平臺層創(chuàng)建一個(gè)獨(dú)立的軟件工程,為應(yīng)用層的各個(gè)應(yīng)用分別創(chuàng)建獨(dú)立的軟件工程,每個(gè)軟件工程編譯鏈接生成各自獨(dú)立的應(yīng)用軟件可執(zhí)行固件,實(shí)現(xiàn)軟件分離設(shè)計(jì)。進(jìn)一步的,實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口 API的設(shè)計(jì)步驟,是采用分類注冊方式,根據(jù)驅(qū)動(dòng)的類型將API接口劃分為不同類別,每一類都有一個(gè)結(jié)構(gòu)體和注冊表, 將應(yīng)用層需要調(diào)用的函數(shù)接口注冊到該注冊表中,當(dāng)平臺層引導(dǎo)啟動(dòng)應(yīng)用軟件時(shí),將注冊表地址傳遞給應(yīng)用層,應(yīng)用層的應(yīng)用軟件根據(jù)注冊表地址和結(jié)構(gòu)體成員實(shí)現(xiàn)動(dòng)態(tài)調(diào)用平臺層函數(shù)接口。進(jìn)一步的,將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,是將應(yīng)用軟件與操作菜單進(jìn)行綁定,當(dāng)點(diǎn)擊相應(yīng)的操作菜單時(shí),啟動(dòng)引導(dǎo)該操作菜單綁定的應(yīng)用軟件。進(jìn)一步的,將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,是通過自動(dòng)方式實(shí)現(xiàn)的,具體是首先按照預(yù)定的格式編輯映射文件,并將該映射文件放置于設(shè)備的可執(zhí)行固件所在文件夾中,在設(shè)備上電啟動(dòng)時(shí)平臺自動(dòng)加載解析該映射文件,按照映射文件的描述自動(dòng)創(chuàng)建生成菜單以及菜單與應(yīng)用軟件的綁定。進(jìn)一步的,將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,還可以是手動(dòng)方式,具體是通過界面上的操作菜單手動(dòng)配置綁定關(guān)系,配置后的綁定關(guān)系將會(huì)存儲(chǔ)到映射文件中,當(dāng)設(shè)備上電啟動(dòng)時(shí),平臺按照映射文件的描述保持上述手動(dòng)設(shè)置的綁定關(guān)系。進(jìn)一步的,應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行的步驟,是當(dāng)點(diǎn)擊相應(yīng)的操作菜單時(shí),拷貝應(yīng)用軟件可執(zhí)行固件的內(nèi)容到動(dòng)態(tài)內(nèi)存塊,跳轉(zhuǎn)到動(dòng)態(tài)內(nèi)存塊應(yīng)用程序入口地址,傳遞API接口注冊表地址和內(nèi)存塊地址,啟動(dòng)運(yùn)行應(yīng)用軟件。進(jìn)一步的,應(yīng)用軟件可執(zhí)行固件包括頭信息和內(nèi)容,頭信息包括頭標(biāo)、平臺層標(biāo)志、應(yīng)用軟件標(biāo)志、固件大小、固件校驗(yàn)和。本發(fā)明采用上述步驟,解決了背景技術(shù)中所述的低性能嵌入式系統(tǒng)中沒有進(jìn)行分離設(shè)計(jì)而帶來的一系列缺陷,可以選擇普通的操作系統(tǒng)或者無操作系統(tǒng),各應(yīng)用軟件可以獨(dú)立運(yùn)行或者同時(shí)運(yùn)行,分時(shí)共享程序運(yùn)行區(qū),對硬件資源的要求比較低,可以選擇低端的微處理器、Flash存儲(chǔ)器,以及容量較小的RAM存儲(chǔ)器,降低產(chǎn)品的硬件成本,提高產(chǎn)品的競爭力;進(jìn)行分離設(shè)計(jì)時(shí),可分團(tuán)隊(duì)同步研發(fā),分離維護(hù),降低軟件維護(hù)工作量和難度,同時(shí)有利于層次化技術(shù)保密管理;采用分離設(shè)計(jì),程序耦合性比較低,查找問題比較容易,系統(tǒng)穩(wěn)定可靠;獨(dú)立軟件工程,生成獨(dú)立的固件,只要下載需要更新的固件,下載數(shù)度快,減少流量,降低通信費(fèi)用;具有應(yīng)用軟件管理功能,能夠自動(dòng)識別應(yīng)用軟件固件的合法性,避免因人為操作失誤或者引導(dǎo)錯(cuò)誤應(yīng)用軟件而導(dǎo)致設(shè)備系統(tǒng)崩潰,同時(shí)能夠根據(jù)個(gè)性化要求自主編輯菜單并綁定菜單與應(yīng)用軟件固件之間的關(guān)系;容易跨平臺移植,如基于ARM硬件平臺之間,只需要修改平臺層硬件驅(qū)動(dòng),無需涉及到應(yīng)用軟件的更改。
圖1是本發(fā)明的軟件整體架構(gòu)示意圖2是本發(fā)明的實(shí)施例的軟件整體架構(gòu)示意圖; 圖3是本發(fā)明中函數(shù)接口 API設(shè)計(jì)示意圖; 圖4是本發(fā)明中可執(zhí)行固件有效性判斷流程圖; 圖5是本發(fā)明中可執(zhí)行固件合法性判斷流程圖; 圖6是本發(fā)明中可執(zhí)行固件綁定流程圖; 圖7是本發(fā)明中應(yīng)用軟件啟動(dòng)流程圖。
具體實(shí)施例方式現(xiàn)結(jié)合附圖和具體實(shí)施方式
對本發(fā)明進(jìn)一步說明。本實(shí)施例所采用的技術(shù)方案包括
一將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層的軟件分離設(shè)計(jì)步驟,具體是將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層,為平臺層創(chuàng)建一個(gè)獨(dú)立的軟件工程,為應(yīng)用層的各個(gè)應(yīng)用分別創(chuàng)建獨(dú)立的軟件工程,每個(gè)軟件工程編譯鏈接生成各自獨(dú)立的應(yīng)用軟件可執(zhí)行固件,實(shí)現(xiàn)軟件分離設(shè)計(jì);
一實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口 API的設(shè)計(jì)步驟,是采用分類注冊方式,根據(jù)驅(qū)動(dòng)的類型將API接口劃分為不同類別,每一類都有一個(gè)結(jié)構(gòu)體和注冊表,將應(yīng)用層需要調(diào)用的函數(shù)接口注冊到該注冊表中,當(dāng)平臺層引導(dǎo)啟動(dòng)應(yīng)用軟件時(shí),將注冊表地址傳遞給應(yīng)用層,應(yīng)用層的應(yīng)用軟件根據(jù)注冊表地址和結(jié)構(gòu)體成員實(shí)現(xiàn)動(dòng)態(tài)調(diào)用平臺層函數(shù)接 Π ;
一將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,是將應(yīng)用軟件與操作菜單進(jìn)行綁定,當(dāng)點(diǎn)擊相應(yīng)的操作菜單時(shí),啟動(dòng)引導(dǎo)該操作菜單綁定的應(yīng)用軟件;
一應(yīng)用軟件可執(zhí)行固件有效性、合法性的判斷步驟,在引導(dǎo)應(yīng)用軟件到RAM執(zhí)行之前, 對每個(gè)軟件工程編譯鏈接生成的各自獨(dú)立的可執(zhí)行固件進(jìn)行有效性和合法性判斷,以正確引導(dǎo)操作菜單所對應(yīng)的應(yīng)用軟件可執(zhí)行固件,并避免將文件系統(tǒng)的其他文件當(dāng)作應(yīng)用軟件可執(zhí)行固件;
一應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行的步驟,當(dāng)點(diǎn)擊相應(yīng)的操作菜單時(shí),拷貝應(yīng)用軟件可執(zhí)行固件的內(nèi)容到動(dòng)態(tài)內(nèi)存塊,跳轉(zhuǎn)到動(dòng)態(tài)內(nèi)存塊應(yīng)用程序入口地址,傳遞API 接口注冊表地址和內(nèi)存塊地址,啟動(dòng)運(yùn)行應(yīng)用軟件。進(jìn)一步的,應(yīng)用軟件可執(zhí)行固件包括頭信息和內(nèi)容,頭信息包括頭標(biāo)、平臺層標(biāo)志、應(yīng)用軟件標(biāo)志、固件大小、固件校驗(yàn)和。下面具體結(jié)合實(shí)際應(yīng)用場景來說明上述方案。GPS車載終端是一個(gè)安裝在車輛上的主機(jī)設(shè)備,包含了 ARM微處理器、存儲(chǔ)器RAM、 Flash、外圍輸入輸出接口 I/0、IXD顯示屏、GPRS移動(dòng)通信模塊和GPS衛(wèi)星定位模塊的子系統(tǒng),主要起到移動(dòng)網(wǎng)絡(luò)無線數(shù)據(jù)通信、GPS衛(wèi)星定位功能、界面顯示。GPS車載終端安裝在車輛上,主要實(shí)現(xiàn)自主導(dǎo)航、網(wǎng)絡(luò)導(dǎo)航、電子狗、拍照、打電話等功能,這些功能相對獨(dú)立,基本上不會(huì)在同一時(shí)刻都同時(shí)開啟,因此可以將這些功能獨(dú)立劃分開來,每一種功能都作為一個(gè)應(yīng)用軟件,需要應(yīng)用是打開啟動(dòng)應(yīng)用軟件,不用時(shí)關(guān)閉,以達(dá)到共享程序運(yùn)行區(qū)目的。
具體應(yīng)用上述方案,如圖1和圖2所示,首先在軟件設(shè)計(jì)時(shí)將軟件整體架構(gòu)劃分為兩層平臺層和應(yīng)用層,為平臺層創(chuàng)建一個(gè)獨(dú)立的軟件工程,為應(yīng)用層的各個(gè)應(yīng)用分別創(chuàng)建獨(dú)立的軟件工程,如車載終端系統(tǒng)中的自主導(dǎo)航、網(wǎng)絡(luò)導(dǎo)航、電子狗、打電話等應(yīng)用,每個(gè)軟件工程編譯鏈接生成各自獨(dú)立的應(yīng)用軟件可執(zhí)行固件,平臺層主要包括硬件驅(qū)動(dòng)計(jì)、運(yùn)行環(huán)境搭建、API接口設(shè)計(jì),為應(yīng)用層提供運(yùn)行環(huán)境和硬件資源,并封裝程序接口,為上層應(yīng)用提供豐富的API接口,同時(shí)引導(dǎo)運(yùn)行上層應(yīng)用軟件。平臺層一般情況下無需經(jīng)常更改維護(hù)。 應(yīng)用層主要實(shí)現(xiàn)用戶定制功能的應(yīng)用軟件,當(dāng)用戶需要添加或者刪除某個(gè)應(yīng)用功能時(shí),只需要在應(yīng)用層對應(yīng)用軟件進(jìn)行下載安裝或卸載刪除即可。其次,如圖3所示,實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口 API的設(shè)計(jì)一個(gè)系統(tǒng)中的驅(qū)動(dòng)往往有很多,如文件系統(tǒng)、串口、網(wǎng)絡(luò)等,因此根據(jù)驅(qū)動(dòng)類將API接口人為劃分為幾類,每一類都有一個(gè)結(jié)構(gòu)體和注冊表,將應(yīng)用層需要調(diào)用的函數(shù)接口注冊到該注冊表中, 當(dāng)平臺層引導(dǎo)啟動(dòng)應(yīng)用軟件時(shí),將注冊表地址傳遞給應(yīng)用軟件,應(yīng)用軟件根據(jù)注冊表地址和結(jié)構(gòu)體成員實(shí)現(xiàn)動(dòng)態(tài)調(diào)用平臺層函數(shù)接口。再次,由于系統(tǒng)的應(yīng)用軟件很多,設(shè)備文件系統(tǒng)中的可執(zhí)行固件和文件也很多,為了避免因人為操作失誤或者引導(dǎo)錯(cuò)誤文件而導(dǎo)致設(shè)備系統(tǒng)崩潰,對應(yīng)用軟件可執(zhí)行固件有效性和合法性進(jìn)行判斷,圖4是有效性的判斷流程,圖5是合法性判斷的流程。其中在進(jìn)行合法性判斷時(shí),同時(shí)可以區(qū)分識別應(yīng)用軟件可運(yùn)行的平臺以及應(yīng)用軟件版本,應(yīng)用軟件可執(zhí)行固件包括頭信息和內(nèi)容,頭信息包括頭標(biāo)、平臺層標(biāo)志、應(yīng)用軟件標(biāo)志、固件大小、固件校驗(yàn)和,因此可以通過可執(zhí)行固件的頭信息來識別其合法性,首先判斷頭標(biāo)的合法性,如果頭標(biāo)等于規(guī)定的值,則繼續(xù)判斷,如果非法則返回固件格式非法;然后判斷平臺標(biāo)志的合法性,根據(jù)平臺標(biāo)志,可以獲取該應(yīng)用軟件可運(yùn)行平臺的信息,平臺層可通過這些信息判斷應(yīng)用軟件是否可在平臺上運(yùn)行,如果符合運(yùn)行條件,則繼續(xù)向下判斷,否則返回固件格式非法;接下來判斷應(yīng)用軟件標(biāo)志合法性,根據(jù)應(yīng)用軟件標(biāo)志,可以獲取應(yīng)用軟件版本號、開發(fā)者、開發(fā)日期等信息,平臺層可通過這些信息判斷應(yīng)用軟件是否可在平臺上運(yùn)行,如果符合運(yùn)行條件,則繼續(xù)向下判斷,否則返回固件格式非法;最后判斷校驗(yàn)和的合法性,按照一定的校驗(yàn)和算法計(jì)算校驗(yàn)和正確與否,正確則返回固件格式合法,否則返回固件格式非法。接下來,為了用戶使用方便,進(jìn)行應(yīng)用軟件可執(zhí)行固件與操作菜單綁定,可采用如圖6所示的兩種方式進(jìn)行綁定,具體可通過自動(dòng)方式或手動(dòng)方式實(shí)現(xiàn),當(dāng)選擇通過自動(dòng)方式時(shí),首先按照預(yù)定的格式編輯映射文件,并將該映射文件放置于設(shè)備的可執(zhí)行固件所在文件夾中,在設(shè)備上電啟動(dòng)時(shí)平臺自動(dòng)加載解析該映射文件,按照映射文件的描述自動(dòng)創(chuàng)建生成菜單以及菜單與應(yīng)用軟件的綁定;當(dāng)選擇通過手動(dòng)方式時(shí),具體是通過界面上的操作菜單手動(dòng)配置綁定關(guān)系,配置后的綁定關(guān)系將會(huì)存儲(chǔ)到映射文件中,當(dāng)設(shè)備上電啟動(dòng)時(shí), 平臺按照映射文件的描述保持上述手動(dòng)設(shè)置的綁定關(guān)系。最后,做好上述準(zhǔn)備工作,就可以進(jìn)行應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行, 如圖7所示,首先嵌入式設(shè)備開機(jī)運(yùn)行,平臺層的代碼啟動(dòng),進(jìn)入待機(jī)界面;用戶操作LCD顯示屏上的菜單界面,選擇確認(rèn)需要開啟的應(yīng)用功能;判斷選擇的菜單所對應(yīng)的可執(zhí)行固件是否有效,是則繼續(xù)下一步,否則彈出菜單提示“應(yīng)用錯(cuò)誤,重新下載應(yīng)用軟件”,并返回;申請動(dòng)態(tài)內(nèi)存塊,判斷是否申請成功,是則繼續(xù)下一步,否則彈出菜單提示“內(nèi)存不足,先關(guān)閉其他應(yīng)用”,并返回;拷貝可執(zhí)行固件內(nèi)容到動(dòng)態(tài)內(nèi)存塊,跳轉(zhuǎn)到動(dòng)態(tài)內(nèi)存塊應(yīng)用程序入口地址,傳遞API接口注冊表地址和內(nèi)存塊地址,啟動(dòng)運(yùn)行應(yīng)用軟件。
盡管結(jié)合優(yōu)選實(shí)施方案具體展示和介紹了本發(fā)明,但所屬領(lǐng)域的技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi),在形式上和細(xì)節(jié)上可以對本發(fā)明做出各種變化,均為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,包括將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層的軟件分離設(shè)計(jì)步驟,實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口 API的設(shè)計(jì)步驟,將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行的步驟。
2.根據(jù)權(quán)利要求1所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于還包括應(yīng)用軟件可執(zhí)行固件有效性、合法性的判斷步驟,在引導(dǎo)應(yīng)用軟件到RAM執(zhí)行之前,對每個(gè)軟件工程編譯鏈接生成的各自獨(dú)立的可執(zhí)行固件進(jìn)行有效性和合法性判斷,以正確引導(dǎo)操作菜單所對應(yīng)的應(yīng)用軟件可執(zhí)行固件,并避免將文件系統(tǒng)的其他文件當(dāng)作應(yīng)用軟件可執(zhí)行固件。
3.根據(jù)權(quán)利要求1或2所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層的軟件分離設(shè)計(jì)步驟,具體是將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層,為平臺層創(chuàng)建一個(gè)獨(dú)立的軟件工程,為應(yīng)用層的各個(gè)應(yīng)用分別創(chuàng)建獨(dú)立的軟件工程,每個(gè)軟件工程編譯鏈接生成各自獨(dú)立的應(yīng)用軟件可執(zhí)行固件,實(shí)現(xiàn)軟件分離設(shè)計(jì)。
4.根據(jù)權(quán)利要求1或2所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口 API的設(shè)計(jì)步驟,是采用分類注冊方式,根據(jù)驅(qū)動(dòng)的類型將API接口劃分為不同類別,每一類都有一個(gè)結(jié)構(gòu)體和注冊表,將應(yīng)用層需要調(diào)用的函數(shù)接口注冊到該注冊表中,當(dāng)平臺層引導(dǎo)啟動(dòng)應(yīng)用軟件時(shí),將注冊表地址傳遞給應(yīng)用層,應(yīng)用層的應(yīng)用軟件根據(jù)注冊表地址和結(jié)構(gòu)體成員實(shí)現(xiàn)動(dòng)態(tài)調(diào)用平臺層函數(shù)接口。
5.根據(jù)權(quán)利要求1或2所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,是將應(yīng)用軟件與操作菜單進(jìn)行綁定,當(dāng)點(diǎn)擊相應(yīng)的操作菜單時(shí),啟動(dòng)引導(dǎo)該操作菜單綁定的應(yīng)用軟件。
6.根據(jù)權(quán)利要求5所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,是通過自動(dòng)方式實(shí)現(xiàn)的,具體是首先按照預(yù)定的格式編輯映射文件,并將該映射文件放置于設(shè)備的可執(zhí)行固件所在文件夾中,在設(shè)備上電啟動(dòng)時(shí)平臺自動(dòng)加載解析該映射文件,按照映射文件的描述自動(dòng)創(chuàng)建生成菜單以及菜單與應(yīng)用軟件的綁定。
7.根據(jù)權(quán)利要求5所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于按照預(yù)定的格式編輯映射文件,具體是通過映射文件編輯軟件實(shí)現(xiàn)的。
8.根據(jù)權(quán)利要求5所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,是通過手動(dòng)方式實(shí)現(xiàn)的,具體是通過界面上的操作菜單手動(dòng)配置綁定關(guān)系,配置后的綁定關(guān)系將會(huì)存儲(chǔ)到映射文件中,當(dāng)設(shè)備上電啟動(dòng)時(shí),平臺按照映射文件的描述保持上述手動(dòng)設(shè)置的綁定關(guān)系。
9.根據(jù)權(quán)利要求1或2所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行的步驟,是當(dāng)點(diǎn)擊相應(yīng)的操作菜單時(shí),拷貝應(yīng)用軟件可執(zhí)行固件的內(nèi)容到動(dòng)態(tài)內(nèi)存塊,跳轉(zhuǎn)到動(dòng)態(tài)內(nèi)存塊應(yīng)用程序入口地址,傳遞API接口注冊表地址和內(nèi)存塊地址,啟動(dòng)運(yùn)行應(yīng)用軟件。
10.根據(jù)權(quán)利要求1或2所述的嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法,其特征在于應(yīng)用軟件可執(zhí)行固件包括頭信息和內(nèi)容,頭信息包括頭標(biāo)、平臺層標(biāo)志、應(yīng)用軟件標(biāo)志、固件大小、 固件校驗(yàn)和。
全文摘要
本發(fā)明涉及嵌入式系統(tǒng),尤其涉及一種低性能嵌入式系統(tǒng)的軟件分離設(shè)計(jì)方法。其包括將軟件的設(shè)計(jì)劃分為平臺層和應(yīng)用層的軟件分離設(shè)計(jì)步驟,實(shí)現(xiàn)應(yīng)用層動(dòng)態(tài)調(diào)用平臺層的函數(shù)接口API的設(shè)計(jì)步驟,將應(yīng)用軟件可執(zhí)行固件與操作菜單的綁定步驟,應(yīng)用軟件可執(zhí)行固件的引導(dǎo)、跳轉(zhuǎn)和運(yùn)行的步驟。還包括應(yīng)用軟件可執(zhí)行固件有效性、合法性的判斷步驟,即在引導(dǎo)應(yīng)用軟件到RAM執(zhí)行之前,對每個(gè)可執(zhí)行固件進(jìn)行有效性和合法性判斷,以正確引導(dǎo)操作菜單所對應(yīng)的應(yīng)用軟件可執(zhí)行固件,并避免將文件系統(tǒng)的其他文件當(dāng)作應(yīng)用軟件可執(zhí)行固件。本發(fā)明應(yīng)用于在低性能嵌入式系統(tǒng)中對于普通操作系統(tǒng)或者無操作系統(tǒng)的平臺層和應(yīng)用層進(jìn)行分離設(shè)計(jì)。
文檔編號G06F9/44GK102520957SQ201110426710
公開日2012年6月27日 申請日期2011年12月19日 優(yōu)先權(quán)日2011年12月19日
發(fā)明者葉德焰, 李基勇, 賴榮東, 陳從華, 陳挺, 黃運(yùn)峰 申請人:廈門雅迅網(wǎng)絡(luò)股份有限公司