專利名稱:一種嵌入式操作系統(tǒng)加載邏輯文件的方法和嵌入式系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,更具體地說,涉及一種嵌入式操作系統(tǒng)加載邏輯文件的方法和應(yīng)用該方法加載邏輯文件的嵌入式操作系統(tǒng)。
背景技術(shù):
對(duì)于嵌入式操作系統(tǒng)如何加載邏輯文件,業(yè)界目前普遍采用的做法是將邏輯文件當(dāng)作一個(gè)獨(dú)立于嵌入式操作系統(tǒng)的文件來加載。根據(jù)邏輯文件存放位置的不同,又具體分為以下兩種方法。
第一種方法是將邏輯文件存放在Flash(閃存)等存儲(chǔ)設(shè)備中。嵌入式操作系統(tǒng)啟動(dòng)后,通過讀取Flash等存儲(chǔ)設(shè)備,將邏輯文件加載到嵌入式操作系統(tǒng)中。這種方法的缺陷主要表現(xiàn)在1、開發(fā)人員需要提供包括嵌入式操作系統(tǒng)和邏輯文件在內(nèi)的多個(gè)文件,缺少其中的任何一個(gè),系統(tǒng)都不能正常運(yùn)行;2、邏輯文件在Flash中的存放地址必須準(zhǔn)確,如果地址不正確,就會(huì)出現(xiàn)系統(tǒng)數(shù)據(jù)讀取錯(cuò)誤,邏輯文件不能夠正常加載,系統(tǒng)也就不能正常運(yùn)行;3、存在邏輯文件和嵌入式操作系統(tǒng)版本的配套問題,如果邏輯文件被錯(cuò)誤的加載到不配套的嵌入式操作系統(tǒng)上,就有可能造成系統(tǒng)運(yùn)行異常。
第二種方法是將邏輯文件存放在專門的服務(wù)器中。嵌入式操作系統(tǒng)啟動(dòng)后,通過FTP(文件傳輸協(xié)議)或TFTP(簡(jiǎn)單文件傳輸協(xié)議)等方式從服務(wù)器上下載邏輯文件,將邏輯文件加載到嵌入式操作系統(tǒng)中。在這種方法中,第一種方法存在的問題仍未得到解決,此外,還存在以下其他問題1、必須事先在嵌入式操作系統(tǒng)的配置中添加存放邏輯文件的服務(wù)器的IP地址,一旦服務(wù)器的IP地址發(fā)生改變或服務(wù)器不可用,就需要修改添加在嵌入式操作系統(tǒng)中的服務(wù)器的IP地址;
2、邏輯文件的下載速度依賴于下載時(shí)網(wǎng)絡(luò)的狀態(tài),如果網(wǎng)絡(luò)發(fā)生擁塞,就有可能導(dǎo)致邏輯文件下載失敗,邏輯文件不能正常加載,系統(tǒng)就不能正常工作;3、需要維護(hù)服務(wù)器,增加了維護(hù)的工作量,同時(shí)還需保證服務(wù)器上存在相關(guān)的邏輯文件,如果邏輯文件不存在,或者服務(wù)器出現(xiàn)故障,邏輯文件就不能保證正常下載,系統(tǒng)也就不能正常工作。
產(chǎn)生上述問題的主要原因在于嵌入式操作系統(tǒng)和邏輯文件的存儲(chǔ)位置不同,在運(yùn)行過程中,嵌入式操作系統(tǒng)在加載邏輯文件之前都需要先從邏輯文件的存儲(chǔ)位置讀取該文件,因此,如果存儲(chǔ)位置不準(zhǔn)確或者傳輸過程發(fā)生錯(cuò)誤,都無法讀取、進(jìn)而無法加載邏輯文件。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)中從Flash或服務(wù)器中加載邏輯文件時(shí)可能遇到的版本不匹配、文件缺失或受網(wǎng)絡(luò)條件影響較大等缺陷,提供一種嵌入式操作系統(tǒng)加載邏輯文件的方法和應(yīng)用該方法加載邏輯文件的嵌入式操作系統(tǒng)。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種嵌入式操作系統(tǒng)加載邏輯文件的方法,嵌入式操作系統(tǒng)將邏輯文件轉(zhuǎn)換為自身數(shù)據(jù)的一部分,然后以調(diào)用自身數(shù)據(jù)的方式來加載所述邏輯文件。
在本發(fā)明所述的方法中,所述方法進(jìn)一步包括如下步驟S1.所述嵌入式操作系統(tǒng)將所述邏輯文件轉(zhuǎn)換為匯編文件;S2.所述嵌入式操作系統(tǒng)將所述匯編文件寫入所述嵌入式操作系統(tǒng)的編譯規(guī)則文件中;S3.所述嵌入式操作系統(tǒng)對(duì)所述匯編文件進(jìn)行編譯;S4.所述嵌入式操作系統(tǒng)使用邏輯文件加載模塊調(diào)用所述邏輯文件。
在本發(fā)明所述的方法中,在所述步驟S1中,所述嵌入式操作系統(tǒng)調(diào)用文件轉(zhuǎn)換模塊將所述邏輯文件轉(zhuǎn)換為所述匯編文件。
在本發(fā)明所述的方法中,所述步驟S1還包括,所述嵌入式操作系統(tǒng)為所述匯編文件添加文件頭標(biāo)簽和文件尾標(biāo)簽。
在本發(fā)明所述的方法中,在所述步驟S4中,所述邏輯文件加載模塊通過識(shí)別所述文件頭標(biāo)簽和所述文件尾標(biāo)簽參數(shù)來調(diào)用所述邏輯文件。
本發(fā)明還提供了一種嵌入式操作系統(tǒng),包括存儲(chǔ)系統(tǒng)代碼的代碼存儲(chǔ)模塊和存儲(chǔ)系統(tǒng)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)模塊,所述代碼存儲(chǔ)模塊包括編譯模塊,所述代碼存儲(chǔ)模塊還包括文件轉(zhuǎn)換模塊和邏輯文件加載模塊,所述數(shù)據(jù)存儲(chǔ)模塊還包括邏輯文件存儲(chǔ)模塊;所述文件轉(zhuǎn)換模塊用于將輸入的邏輯文件轉(zhuǎn)換為匯編文件,并發(fā)送給所述編譯模塊;所述編譯模塊對(duì)所述匯編文件進(jìn)行編譯;所述邏輯文件存儲(chǔ)模塊與所述編譯模塊相連,用于存儲(chǔ)所述編譯后的邏輯文件;所述邏輯文件加載模塊與所述邏輯文件存儲(chǔ)模塊相連,用于加載其中存儲(chǔ)的邏輯文件。
在本發(fā)明所述的系統(tǒng)中,所述匯編文件包括文件頭標(biāo)簽和文件尾標(biāo)簽。
在本發(fā)明所述的系統(tǒng)中,所述邏輯文件加載模塊通過識(shí)別所述文件頭標(biāo)簽和所述文件尾標(biāo)簽參數(shù)來調(diào)用所述邏輯文件。
本發(fā)明將邏輯文件添加到嵌入式操作系統(tǒng)自身的數(shù)據(jù)中,使嵌入式操作系統(tǒng)可以通過調(diào)用自身數(shù)據(jù)來加載邏輯文件,這樣一來便解決了因嵌入式操作系統(tǒng)和邏輯文件存放位置不同而可能造成的無法獲取邏輯文件進(jìn)而無法加載等問題,并解決了嵌入式操作系統(tǒng)與邏輯文件之間版本不匹配的問題,提高了邏輯文件加載的效率和可靠性。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖1是本發(fā)明技術(shù)方案的方法流程圖;圖2是本發(fā)明實(shí)施例中添加邏輯文件后的系統(tǒng)文件的結(jié)構(gòu)示意圖。
圖3是本發(fā)明技術(shù)方案的系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提供的技術(shù)方案是將邏輯文件轉(zhuǎn)換為嵌入式操作系統(tǒng)的一部分,這樣一來,嵌入式操作系統(tǒng)就可通過簡(jiǎn)單的調(diào)用自身數(shù)據(jù)來加載邏輯文件。
圖1是本發(fā)明技術(shù)方案的方法流程圖。如圖1所示,在步驟100,嵌入式操作系統(tǒng)首先將所述邏輯文件轉(zhuǎn)換為匯編文件,并為所述匯編文件添加文件頭標(biāo)簽和文件尾標(biāo)簽;隨后,在步驟102,嵌入式操作系統(tǒng)將所述匯編文件寫入所述嵌入式操作系統(tǒng)的編譯規(guī)則文件中;接下來,在步驟104,嵌入式操作系統(tǒng)執(zhí)行所述編譯規(guī)則文件,對(duì)所述匯編文件進(jìn)行編譯;最后,在步驟106,嵌入式操作系統(tǒng)使用自身的邏輯文件加載函數(shù)通過由文件頭標(biāo)簽和文件尾標(biāo)簽構(gòu)造的參數(shù)來調(diào)用編譯后的匯編文件。
為詳細(xì)解釋本發(fā)明的創(chuàng)新之處,以下以當(dāng)前廣泛應(yīng)用的vxworks系統(tǒng)為例講述本發(fā)明的技術(shù)方案。
在vxworks系統(tǒng)中,系統(tǒng)共分為文本段和數(shù)據(jù)段兩個(gè)部分;文本段用于存放系統(tǒng)代碼,數(shù)據(jù)段用于存放所述系統(tǒng)代碼需要操作的數(shù)據(jù)。本發(fā)明提供的方法是將邏輯文件作為整個(gè)嵌入式操作系統(tǒng)的一部分,直接存放到所述嵌入式操作系統(tǒng)的數(shù)據(jù)段中。在vxworks系統(tǒng)中,完成這一過程需要用到兩個(gè)系統(tǒng)工具程序binToAsm.exe和rpls.exe,系統(tǒng)工具程序binToAsm.exe把二進(jìn)制文件轉(zhuǎn)化為匯編文件,并且在所述匯編文件的頭部加上文件頭標(biāo)簽_binArrayStart,在所述匯編文件的尾部加上文件尾標(biāo)簽_binArrayEnd,用于標(biāo)識(shí)所述匯編文件加入嵌入式操作系統(tǒng)的數(shù)據(jù)段后在所述嵌入式操作系統(tǒng)中的位置;系統(tǒng)工具程序rpls.exe所述匯編文件中搜索指定的字符串,然后使用指定的另外一個(gè)字符串替換搜索到的字符串,例如rpls.exe fpga.1 fpga.2_binArrayStart_urcuFpgaStart就是把文件fpga.1中查找到的字符串_binArrayStart替換為字符串_urcuFpgaStart,生成一個(gè)新的文件fpga.2;通過這兩個(gè)系統(tǒng)工具程序,vxworks系統(tǒng)把邏輯文件轉(zhuǎn)化為一個(gè)帶標(biāo)號(hào)_urcuFpgaStart和_urcuFpgaEnd的匯編文件,然后把所述帶標(biāo)號(hào)_urcuFpgaStart和_urcuFpgaEnd的匯編文件寫入vxworks系統(tǒng)的編譯規(guī)則文件makefile中,這樣一來,就可對(duì)所述匯編文件進(jìn)行正常的編譯處理了。這樣,所述邏輯文件就已添加到嵌入式操作系統(tǒng)的數(shù)據(jù)段中了,vxworks系統(tǒng)的文本段1,vxworks系統(tǒng)的數(shù)據(jù)段2,所述添加到嵌入式操作系統(tǒng)數(shù)據(jù)段2中的邏輯文件3,其分別在嵌入式操作系統(tǒng)中的位置如圖2所示。
此后,vxworks系統(tǒng)使用自身邏輯文件加載函數(shù)來加載邏輯文件,如函數(shù)BSP_DownBinToFPGA(UCHAR*pucFpgaFile,ULONG ulFpgaDataLen),所述函數(shù)BSP_DownBinToFPGA(UCHAR*pucFpgaFile,ULONG ulFpgaDataLen)有兩個(gè)參數(shù),即參數(shù)UCHAR* pucFpgaFile和參數(shù)UCHAR* pucFpgaFile,其中,參數(shù)UCHAR* pucFpgaFile為即將調(diào)用的FPGA文件所在數(shù)組的指針,參數(shù)ULONGulFpgaDataLen為即將調(diào)用的FPGA文件的大小。在加載邏輯文件時(shí),所述參數(shù)UCHAR* pucFpgaFile和參數(shù)ULONG ulFpgaDataLen的值分別對(duì)應(yīng)于文件頭標(biāo)簽_urcuFpgaStart和(UINT32)(_urcuFpgaEnd)-(UINT32)(_urcuFpgaStart)。這樣一來,所述邏輯文件加載函數(shù)BSP_DownBinToFPGA(UCHAR*pucFpgaFile,ULONG ulFpgaDataLen)就變成BSP_DownBinToFPGA(_urcuFpgaStart,(UINT32)(_urcuFpgaEnd)-(UINT32)(_urcuFpgaStart)。vxworks系統(tǒng)由此實(shí)現(xiàn)了以調(diào)用自身數(shù)據(jù)的方式來調(diào)用邏輯文件。
以上就是以vxworks系統(tǒng)為例的本發(fā)明邏輯文件加載的全過程。需要注意的是,雖然本發(fā)明是借助vxworks系統(tǒng)進(jìn)行描述的,但本發(fā)明的技術(shù)方案并非僅限于vxworks系統(tǒng)。事實(shí)上,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,可應(yīng)用本發(fā)明介紹的邏輯文件加載方法的系統(tǒng)可概括為下面圖3中展示的嵌入式操作系統(tǒng)。
圖3是本發(fā)明技術(shù)方案的系統(tǒng)結(jié)構(gòu)示意圖。如圖3所示,該系統(tǒng)共包括代碼存儲(chǔ)模塊和數(shù)據(jù)存儲(chǔ)模塊兩部分,其中,代碼存儲(chǔ)模塊用于存放系統(tǒng)代碼,包括文件轉(zhuǎn)換模塊、編譯模塊和邏輯文件加載模塊;數(shù)據(jù)存儲(chǔ)模塊用于存放代碼需要操作的數(shù)據(jù),包括專門用于存放邏輯文件的邏輯文件存儲(chǔ)模塊。代碼存儲(chǔ)模塊中的文件轉(zhuǎn)換模塊用于將收到的邏輯文件轉(zhuǎn)換為匯編文件,并為該匯編文件添加文件頭標(biāo)簽和文件尾標(biāo)簽,然后發(fā)往編譯模塊,由所述編譯模塊對(duì)所述匯編文件進(jìn)行編譯,并在編譯過程完成后,統(tǒng)一存儲(chǔ)到數(shù)據(jù)存儲(chǔ)模塊中的邏輯文件存儲(chǔ)模塊中。當(dāng)需要調(diào)用邏輯文件時(shí),代碼存儲(chǔ)模塊中的邏輯文件加載模塊在數(shù)據(jù)存儲(chǔ)模塊中通過識(shí)別所述文件頭標(biāo)簽和所述文件尾標(biāo)簽參數(shù)來調(diào)用相應(yīng)的邏輯文件。
本發(fā)明將邏輯文件添加到嵌入式操作系統(tǒng)自身的數(shù)據(jù)中,使嵌入式操作系統(tǒng)可以通過調(diào)用自身數(shù)據(jù)來加載邏輯文件,這樣一來便解決了因嵌入式操作系統(tǒng)和邏輯文件存放位置不同而可能造成的無法獲取邏輯文件進(jìn)而無法加載等問題,并解決了嵌入式操作系統(tǒng)與邏輯文件之間版本不匹配的問題,提高了邏輯文件加載的效率和可靠性。
權(quán)利要求
1.一種嵌入式操作系統(tǒng)加載邏輯文件的方法,其特征在于,嵌入式操作系統(tǒng)將邏輯文件轉(zhuǎn)換為自身數(shù)據(jù)的一部分,然后以調(diào)用自身數(shù)據(jù)的方式來加載所述邏輯文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括如下步驟S1.所述嵌入式操作系統(tǒng)將所述邏輯文件轉(zhuǎn)換為匯編文件;S2.所述嵌入式操作系統(tǒng)將所述匯編文件寫入所述嵌入式操作系統(tǒng)的編譯規(guī)則文件中;S3.所述嵌入式操作系統(tǒng)對(duì)所述匯編文件進(jìn)行編譯;S4.所述嵌入式操作系統(tǒng)使用邏輯文件加載模塊調(diào)用所述邏輯文件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述步驟S1中,所述嵌入式操作系統(tǒng)調(diào)用文件轉(zhuǎn)換模塊將所述邏輯文件轉(zhuǎn)換為所述匯編文件。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述步驟S1還包括,所述嵌入式操作系統(tǒng)為所述匯編文件添加文件頭標(biāo)簽和文件尾標(biāo)簽。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述步驟S4中,所述邏輯文件加載模塊通過識(shí)別所述文件頭標(biāo)簽和所述文件尾標(biāo)簽參數(shù)來調(diào)用所述邏輯文件。
6.一種嵌入式操作系統(tǒng),包括存儲(chǔ)系統(tǒng)代碼的代碼存儲(chǔ)模塊和存儲(chǔ)系統(tǒng)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)模塊,所述代碼存儲(chǔ)模塊包括編譯模塊,其特征在于,所述代碼存儲(chǔ)模塊還包括文件轉(zhuǎn)換模塊和邏輯文件加載模塊,所述數(shù)據(jù)存儲(chǔ)模塊還包括邏輯文件存儲(chǔ)模塊;所述文件轉(zhuǎn)換模塊用于將輸入的邏輯文件轉(zhuǎn)換為匯編文件,并發(fā)送給所述編譯模塊;所述編譯模塊對(duì)所述匯編文件進(jìn)行編譯;所述邏輯文件存儲(chǔ)模塊與所述編譯模塊相連,用于存儲(chǔ)所述編譯后的邏輯文件;所述邏輯文件加載模塊與所述邏輯文件存儲(chǔ)模塊相連,用于加載其中存儲(chǔ)的邏輯文件。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述匯編文件包括文件頭標(biāo)簽和文件尾標(biāo)簽。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述邏輯文件加載模塊通過識(shí)別所述文件頭標(biāo)簽和所述文件尾標(biāo)簽參數(shù)來調(diào)用所述邏輯文件。
全文摘要
本發(fā)明提供一種嵌入式操作系統(tǒng)加載邏輯文件的方法,首先,嵌入式操作系統(tǒng)將邏輯文件轉(zhuǎn)換為自身數(shù)據(jù)的一部分,然后以調(diào)用自身數(shù)據(jù)的方式來加載所述邏輯文件。本發(fā)明還提供一種應(yīng)用上述方法加載邏輯文件的嵌入式操作系統(tǒng)。本發(fā)明將邏輯文件添加到嵌入式操作系統(tǒng)自身的數(shù)據(jù)中,使嵌入式操作系統(tǒng)可以通過調(diào)用自身數(shù)據(jù)來加載邏輯文件,這樣一來便解決了因嵌入式操作系統(tǒng)和邏輯文件存放位置不同而可能造成的無法獲取邏輯文件進(jìn)而無法加載等問題,并解決了嵌入式操作系統(tǒng)與邏輯文件之間版本不匹配的問題,提高了邏輯文件加載的效率和可靠性。
文檔編號(hào)G06F9/45GK1900909SQ20061006173
公開日2007年1月24日 申請(qǐng)日期2006年7月18日 優(yōu)先權(quán)日2006年7月18日
發(fā)明者楊霆, 王偉, 曾云剛 申請(qǐng)人:華為技術(shù)有限公司