專利名稱:一種嵌入式設(shè)備的文件管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式設(shè)備的文件管理,具體涉及一種通信設(shè)備中單板的文件管理方法及系統(tǒng)。
背景技術(shù):
在移動通信領(lǐng)域, 一套完整的通信系統(tǒng)通常是由很多單板組成的多處理器分布式系統(tǒng)。 每個單板分別運行著各自的操作系統(tǒng),安裝了特定的軟件程序,執(zhí)行特定的工作。,板的軟 件和配置文件都存儲在存儲^元上。電可擦除只讀存儲器EEPROM (Electrically Erasable Programmable Read Only Memory)和閃存存儲器FLASH (FLASH memory)是常用的非易失 性存儲器,在通信產(chǎn)品中通常用來存儲處理器所運行的軟件程序和數(shù)據(jù)配置文件。
在對可插拔的單板進(jìn)行設(shè)備監(jiān)控時,利用一種嵌入式設(shè)備存儲每個單板的運行狀態(tài)、配 置信息和告警信息。嵌入式設(shè)備的存儲器件為EEPK0M/FLASH,為了方便的存取數(shù)據(jù),需耍采 用文件系統(tǒng),而常用的嵌入式文件系統(tǒng)(例如JFFS/JFFS2)比較負(fù)載,不適于在單板上使用。 隨著通信系統(tǒng)的功能R益強大,在單板上運行的軟件程序的大小也在逐漸變大,但是,^板 的存儲空間及其有限,且價格昂貴,EEPROM和FLASH還不能滿足軟件程序?qū)Υ鎯臻g的嬰求。 因此,如何有效的管理文件是嵌入式設(shè)備的研究重點。
嵌入式設(shè)備系統(tǒng)負(fù)責(zé)監(jiān)控單板的運行狀態(tài),通常按照單板的槽位將存儲單元平均分配給 所有單板。但是單板的信息大小通常是不相同的,導(dǎo)致有的單板所對應(yīng)的存儲空間還冇剩余, 而有的有的單板所對應(yīng)的存儲空間不足。那么將會造成大量的寶貴EEPROM/FLASH間沒有得到 合理利用,而且平均分配以后,有可能會導(dǎo)致某些單板的信息無法全部保存到EEPROM/FLASH 中。當(dāng)通信系統(tǒng)中的單板需要升級驅(qū)動程序/更新配置文件時,往往會導(dǎo)致單板需要重新啟動 從而運行新的驅(qū)動程序/配置文件,這樣操作系統(tǒng)的內(nèi)核才能認(rèn)識到新的驅(qū)動程序/配置文件的 存在。這樣導(dǎo)致單板無法對數(shù)據(jù)請求進(jìn)行實時響應(yīng),影響通信系統(tǒng)的性能。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式設(shè)備的文件管理方法,該方法能夠解決存儲空間利用 率不足的問題,提高文件訪問速度和工作效率。一種嵌入式設(shè)備的文件管理方法,所述嵌入式設(shè)備用于監(jiān)控通信系統(tǒng)巾的通信單板,其 特征在于,包括
Al、上電檢測時擦除嵌入式設(shè)備存儲單元的所有存儲空間;
A2、將存儲單元劃分為3個區(qū)域文件指針區(qū)域、頁面分配表區(qū)域和單板信,a存儲區(qū)域;
A3、在文件指針區(qū)域中建立哈希表,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運
算獲得的散列碼確定通信單板的單板信息的首地址在哈希表中的位置,并將單板信總的首地
址存儲在哈希表中;
A4、利用頁面分配表區(qū)域記錄嵌入式設(shè)備存儲單元的頁面狀態(tài);
A5、根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配單板信息所需的頁面,通過鏈表結(jié) 構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域;在單板信息第1頁的頭部
都定義了一個固定的存儲模板,方便査詢該通信單板的基本信息,所述存儲模板的格式為 位置、單板類型、軟件版本、單板狀態(tài)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信息;在單板信 息最后1頁的末尾具有數(shù)據(jù)區(qū)結(jié)束符、空閑字段和頁面地址指針為0的結(jié)尾指針。
A6、利用單板信息存儲區(qū)域存儲單板信息、升級軟件和默認(rèn)驅(qū)動程序。
進(jìn)一歩,在文件指針區(qū)域還存儲嵌入式設(shè)備的信息,包括硬件類型和操作系統(tǒng)版本。 進(jìn)一步,當(dāng)某一插槽位置新插入了通信單板時進(jìn)行如下操作
Bl 、對新插入通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定單板 信息首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中,將單板信息的首地 址作為通信單板訪問存儲單元的文件指針;
B2、在單板信息第l頁的頭部寫入模板信息,根據(jù)模板信息確定所述單板信息所占用的 空間,根據(jù)所占用的空間計算上述單板信息所需要的頁面?zhèn)€數(shù),在頁面分配表區(qū)域里查找沒 有使用的頁面,建立鏈表結(jié)構(gòu),在每一頁面的最后一個字節(jié)寫入下一頁面的地址;
B3、對單板信息所占用的空間進(jìn)行初始化;
B4、把單板信息寫入到存儲單元的頁面中,保證單板信息掉電不丟失。
進(jìn)一步,如果單板被拔出,但是所述單板的插槽位置沒有插入其它的單板,那么只是把
該插槽位置的單板狀態(tài)更改為單板不在位置,不重新初始化該單板的信息,這樣確保所述單
板再次插入相同的插槽位置時,之前的單板信息不丟失。
進(jìn) -步,如果單板被拔出,并重新插入了其它的單板,那么將被拔出單板的單板信息所
占用的存儲空間進(jìn)行初始化,同時把頁面分配表區(qū)域中相應(yīng)頁面的使用標(biāo)記全部設(shè)置為"未
被使用",然后再根據(jù)這個新插入單板的單板信息,重新分配頁地址和頁空間。進(jìn)一步,當(dāng)通信單板需要升級第一驅(qū)動程序時,嵌入式設(shè)備將默認(rèn)驅(qū)動程序發(fā)送給所述 通信單板,通信單板停止當(dāng)前正在運行的第一驅(qū)動程序,并運行默認(rèn)驅(qū)動程序,當(dāng)通信單板 從其上運行的應(yīng)用程序接收到執(zhí)行與第一驅(qū)動程序相關(guān)聯(lián)的調(diào)用時,通知所述應(yīng)用程序切換 到默認(rèn)驅(qū)動程序;將第一驅(qū)動程度升級為第二驅(qū)動程序,通信單板停止默認(rèn)驅(qū)動程序,并運 行第二驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與默認(rèn)驅(qū)動程序相關(guān)聯(lián)的調(diào) 用時,通知所述應(yīng)用程序切換到第二驅(qū)動程序。
進(jìn)一歩,當(dāng)通信單板需要升級軟件但單板存儲空間不足時,通過在嵌入式設(shè)備存儲單元 的單板信息存儲區(qū)域中執(zhí)行新的軟件部分來替換執(zhí)行舊的軟件部分,在單板信息存儲區(qū)域中 存儲新的軟件部分,并通過單板存儲空間的第一指針替換在單板存儲空間中的舊的軟件部分 來執(zhí)行在單板信息存儲區(qū)域屮的新的軟件部分,其中通過單板信息存儲區(qū)域的第二指針在執(zhí) 行所述新的軟件部分后,重新返回¥板存儲空間中,并繼續(xù)執(zhí)行在單板存儲空間中的其它與 舊的軟件部分不同的軟件部分。
其中,所述舊的軟件部分仍然保存在單板存儲空間中,將所述單板信息存儲區(qū)域中新的 軟件部分的起始地址用作第一指針,根據(jù)起始地址部分的修改舊的軟件部分,將單板存儲空 間中與舊的軟件部分不同的軟件的起始地址作為第二指針。
進(jìn)一步,當(dāng)通信單板需要更新數(shù)據(jù)時,將當(dāng)前更新操作所對應(yīng)更新塊中的所有數(shù)據(jù)備份
至嵌入式設(shè)備的單板信息存儲區(qū)域中,設(shè)置備份標(biāo)記為有效,不允許更改備份的數(shù)據(jù),擦除
當(dāng)前更新操作所對應(yīng)的更新塊,用新數(shù)據(jù)更新單板信息存儲區(qū)域中的備份數(shù)據(jù),并將更新后
的備份數(shù)據(jù)寫回當(dāng)前更新塊,并設(shè)置備份標(biāo)記為無效,允許更改備份的數(shù)據(jù)。
本發(fā)明的目的在于提供一種嵌入式設(shè)備的文件管理系統(tǒng),該方法能夠解決存儲空間利用
率不足的問題,提高文件訪問速度和工作效率。
-種嵌入式設(shè)備的文件管理系統(tǒng),所述嵌入式設(shè)備用于監(jiān)控通信系統(tǒng)中的通信單板,所
述系統(tǒng)包括存儲單元和控制單元,控制單元控制存儲單元執(zhí)行讀取和寫入操作,其特征在于,
所述控制單兀包括
初始化裝置,上電檢測時擦除嵌入式設(shè)備存儲單元的所有存儲空間,將存儲單元劃分為 3個區(qū)域文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域,在文件指針區(qū)域中建立哈希 表,利用哈希表在文件指針區(qū)域中存儲通信單板的單板信息在存儲單元中的首地址;所述頁 面分配表區(qū)域用于記錄嵌入式設(shè)備存儲單元的頁面狀態(tài);所述單板信息存儲區(qū)域用于存儲單 板信息、升級軟件和默認(rèn)驅(qū)動程序;
哈希處理裝置,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定通信單板的單板信息的首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中;
頁面控制裝置,根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配單板信息所需的頁面,
通過鏈表結(jié)構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域;在單板信息第1
頁的頭部都定義了一個固定的存儲模板,方便查詢該通信單板的基本信息,所述存儲稅板的
格式為位置、單板類型、軟件版本、單板狀態(tài)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信息;
在單板信息最后1頁的末尾具有數(shù)據(jù)區(qū)結(jié)束符、空閑字段和貞面地址指針為0的結(jié)尾指針。 進(jìn)一歩,在文件指針區(qū)域還存儲嵌入式設(shè)備的信息,包括硬件類型和操作系統(tǒng)版本。
進(jìn)一步,當(dāng)某一插槽位置新插入了通信單板時進(jìn)行如下操作-
Bl 、對新插入通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定單板 信息旨地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中,將單板信息的首地 址作為通信單板訪問存儲單元的文件指針;
B2、在單板信息第1頁的頭部寫入模板信息,根據(jù)模板信息確定所述單板信息所占用的 空間,根據(jù)所占用的空間計算上述單板信總所需要的頁面?zhèn)€數(shù),在頁面分配表區(qū)域里查找沒 有使用的頁面,建立鏈表結(jié)構(gòu),在每一頁面的最后一個字節(jié)寫入下一頁面的地址
B3、對單板信息所占用的空間進(jìn)行初始化;
B4、把單板信息寫入到存儲單元的頁面中,保證單板信息掉電不丟失。
進(jìn)一步,如果單板被拔出,但是所述單板的插槽位置沒有插入其它的單板,那么只是把
該插槽位置的單板狀態(tài)更改為單板不在位置,不重新初始化該單板的信息,這樣確保所述單
板再次插入相同的插槽位置時,之前的單板信息不丟失。
進(jìn)一步,如果單板被拔出,并重新插入了其它的單板,那么將被拔出單板的單板信息所
占用的存儲空間進(jìn)行初始化,同時把頁面分配表區(qū)域中相應(yīng)頁面的使用標(biāo)記全部設(shè)置為"未
被使用",然后再根據(jù)這個新插入單板的單板信息,重新分配頁地址和頁空間。
進(jìn)一步,當(dāng)通信單板需要升級第一驅(qū)動程序時,嵌入式設(shè)備將默認(rèn)驅(qū)動程序發(fā)送給所述 通信單板,通信單板停止當(dāng)前正在運行的第一驅(qū)動程序,并運行默認(rèn)驅(qū)動程序,當(dāng)通信單板 從其上運行的應(yīng)用程序接收到執(zhí)行與第一驅(qū)動程序相關(guān)聯(lián)的調(diào)用時,通知所述應(yīng)用程序切換 到默認(rèn)驅(qū)動程序;將第一驅(qū)動程度升級為第二驅(qū)動程序,通信單板停止默認(rèn)驅(qū)動程序,并運 行第二驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與默認(rèn)驅(qū)動程序相關(guān)聯(lián)的調(diào) 用時,通知所述應(yīng)用程序切換到第二驅(qū)動程序。
進(jìn)一步,當(dāng)通信單板需要升級軟件但單板存儲空間不足時,通過在嵌入式設(shè)備存儲單元 的單板信息存儲區(qū)域中執(zhí)行新的軟件部分來替換執(zhí)行舊的軟件部分,在單板信息存儲區(qū)域屮存儲新的軟件部分,并通過單板存儲空間的第一指針替換在單板存儲空間中的舊的軟件部分 來執(zhí)行在單板信息存儲區(qū)域中的新的軟件部分,其中通過單板信息存儲區(qū)域的第二指針在執(zhí) 行所述新的軟件部分后,重新返回單板存儲空間中,并繼續(xù)執(zhí)行在單板存儲空間中的其它與 舊的軟件部分不同的軟件部分。
其中,所述舊的軟件部分仍然保存在單板存儲空間中,將所述中-板信息存儲區(qū)域中新的 軟件部分的起始地址用作第一指針,根據(jù)起始地址部分的修改舊的軟件部分,將單板存儲空 間中與舊的軟件部分不同的軟件的起始地址作為第二指針。
進(jìn)一歩,當(dāng)通信單板需要更新數(shù)據(jù)時,將當(dāng)前更新操作所對應(yīng)更新塊中的所有數(shù)據(jù)備份 至嵌入式設(shè)備的單板信息存儲區(qū)域中,設(shè)置備份標(biāo)記為有效,不允許更改備份的數(shù)據(jù),擦除 當(dāng)前更新操作所對應(yīng)的更新塊,用新數(shù)據(jù)更新單板信息存儲區(qū)域中的備份數(shù)據(jù),并將更新后 的備份數(shù)據(jù)寫回當(dāng)前更新塊,并設(shè)置備份標(biāo)記為無效,允許更改備份的數(shù)據(jù)。
圖1是本發(fā)明咴入式設(shè)備存儲單元的存儲區(qū)域示意圖2是本發(fā)明嵌入式設(shè)備的文件管理方法流程圖3是本發(fā)明嵌入式設(shè)備存儲單元的文件指針區(qū)域示意圖4是本發(fā)明嵌入式設(shè)備存儲單元的頁面分配區(qū)域示意圖5是本發(fā)明嵌入式設(shè)備存儲單元的單板信息存儲區(qū)域不意圖6是木發(fā)明利用鏈表結(jié)構(gòu)存儲單板信息的示意圖7是本發(fā)明執(zhí)行軟件升級時的示意圖。
具體實施例方式
下面結(jié)合具體的實施方式對本發(fā)明進(jìn)行詳細(xì)說明
圖1是本發(fā)明嵌入式設(shè)備存儲單元的存儲區(qū)域示意圖,本發(fā)明將存儲單元劃分為3個區(qū) 域文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域。其中,文件指針區(qū)域用于存儲各 單板信息在存儲單元中的首地址;頁面分配表區(qū)域記錄存儲單元的存儲頁面使用情況;單板 信息存儲區(qū)域用于存儲單板的數(shù)據(jù)信息,且暫存升級軟件和默認(rèn)驅(qū)動程序。
下面以EEPROM為例進(jìn)行說明,常見的EEPOM芯片如AT28C64B, 64K bit (8KX 8)并 行EEPROM,接口為intel總線方式,write cycle<10ms,可以按頁寫,每頁最多64字節(jié),可 以通過軟件指令設(shè)置寫保護。MICROCHIP 25LC640, 64Kbit (8KX8)串行EEPROM,接口 為spi方式,write cycle<5ms,可以按頁寫,每頁最多32字節(jié),可以通過硬件管腳或軟件指 令寫保護。為了靈活使用EEPROM存儲區(qū)域,本發(fā)明采用了動態(tài)分頁方式。根據(jù)嵌入式設(shè)備所監(jiān)控 的單板數(shù)量和單板數(shù)據(jù)信息的大小動態(tài)分配文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲 區(qū)域的大小。 一個具體的分配方式可以是,如果存儲舉元的容量為64Kbit (8KX8),且每頁 32字節(jié),那么8K字節(jié)數(shù)據(jù)區(qū)共分為256頁,序號為00H FFH。文件指針區(qū)域8頁(2K bit), 頁面分配表區(qū)域8頁(2Kbit),單板信息存儲區(qū)域240頁(60Kbit)。
文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域的大小可以在初始化式進(jìn)行設(shè)定, 并不可以修改。另外,文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域的大小可以在初 始化式設(shè)定,在嵌入式設(shè)備運行過程中進(jìn)行動態(tài)調(diào)整。
文件指針區(qū)域利用哈希表存儲單板信息在存儲單元中的首地址,先對單板的硬件地址進(jìn) 行哈希運算,根據(jù)哈希計算獲得的散列碼確定上述單板信息的首地址在哈希表中的位賈。頁 面分配表區(qū)域中記錄存儲單板數(shù)據(jù)信息的頁面信息和暫存升級軟件和默認(rèn)驅(qū)動程序的頁面信 息。單板信息存儲區(qū)域用于存儲單板的數(shù)據(jù)信息,且暫存升級軟件和默認(rèn)驅(qū)動程序。
嵌入式設(shè)備能夠在運行的過程中動態(tài)調(diào)整用于存儲升級軟件和默認(rèn)驅(qū)動程序的存儲單元 空間的大小,以滿足不同被監(jiān)控通信單板的需要。
圖2是本發(fā)明嵌入式設(shè)備的文件管理方法流程圖,嵌入式設(shè)備的文件管理方法,所述嵌 入式設(shè)備用于監(jiān)控通信系統(tǒng)中的通信單板,其特征在于,包括
Al、上電檢測時擦除嵌入式設(shè)備存儲單元的所有存儲空間;
A2、將存儲單元劃分為3個區(qū)域文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域; A3、在文件指針區(qū)域中建立哈希表,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運
算獲得的散列碼確定通信單板的單板信息的首地址在哈希表中的位置,并將單板信息的首地
址存儲在哈希表中;
A4、利用頁面分配表區(qū)域記錄嵌入式設(shè)備存儲單元的頁面狀態(tài);
A5、根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配單板信息所需的頁面,通過鏈表結(jié) 構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域;在爭板信息第1頁的頭部
都定義了一個固定的存儲模板,方便查詢該通信單板的基本信息,所述存儲模板的格式為 位置、單板類型、軟件版本、單板狀態(tài)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信息;在單板信 息最后l頁的末尾具有數(shù)據(jù)區(qū)結(jié)束符、空閑字段和頁面地址指針為O的結(jié)尾指針。 A6、利用單板信息存儲區(qū)域存儲單板信息、升級軟件和默認(rèn)驅(qū)動程序。 圖3是本發(fā)明嵌入式設(shè)備存儲單元的文件指針區(qū)域示意圖,文件指針區(qū)域分為單板信 息首地址和嵌入式設(shè)備配置信息。其中,文件指針區(qū)域的頭部240字節(jié)存儲單板信息在存儲單元中的首地址,每個單板信息的首地址為2個字節(jié),可以存儲120個單板信息的首地址。
例如,第一個單板信息的首地址為0020;第ll個單板信息的首地址為0A2D。
文件指針區(qū)域的最后16個字節(jié)存儲嵌入式設(shè)備配置信息,其中,第l字節(jié)存儲嵌入式設(shè) 備硬件類型,第2字節(jié)存儲嵌入式設(shè)備操作系統(tǒng)版本,第3至16字節(jié)為保留字節(jié)。
圖4是本發(fā)明嵌入式設(shè)備存儲單元的頁面分配區(qū)域示意圖,頁面分配區(qū)域記錄存儲單元的 頁面使用情況,狀態(tài)類型包括"0"表示該頁未被使用;"1"表示該頁己經(jīng)使用,且單板在 對應(yīng)的位置上;"2"該頁已經(jīng)使用,但單板不在對應(yīng)的位置上;"3"該頁不可寫入。
如圖4所示,第l個頁面的狀態(tài)為"3",說明第1個頁面不可以寫入任何數(shù)據(jù)。當(dāng)通信單 板需要更新數(shù)據(jù)時,將當(dāng)前更新操作所對應(yīng)更新塊中的所有數(shù)據(jù)備份至嵌入式設(shè)備的單板信 息存儲區(qū)域屮,設(shè)置備份標(biāo)記為有效,不允許更改備份的數(shù)據(jù),此時,圖3的對應(yīng)區(qū)域(最 后8個頁面)的狀態(tài)也為3,表示這8個頁面不可以寫入任何數(shù)據(jù)。
圖5是本發(fā)明嵌入式設(shè)備存儲單元的單板信息存儲區(qū)域示意圖,每個頁面為32字節(jié),序 號為0()H FOH,分別對應(yīng)1 240頁,每頁前31字節(jié)為數(shù)據(jù),最后 -個字節(jié)為指向下-頁的 指針,內(nèi)容為下一頁的頁碼;如果本頁為該槽位存儲區(qū)域的最后一個字節(jié),下頁序號寫O。
圖6是本發(fā)明利用鏈表結(jié)構(gòu)存儲單板信息的示意圖。用鏈表結(jié)構(gòu)將多個頁面在邏輯上形 成一個連續(xù)的數(shù)據(jù)存儲區(qū)域。每個槽位第一頁開頭都定義了一個固定的存儲模板,方便査詢 該槽位上功能盤的版本類型等一些有用信息。存儲模板的格式位置(通信單板所在的插槽 位置)、單板類型(單板的硬件類型)、軟件版本、單板狀態(tài)(O表示盤不在位、3表示盤正常、 4表示手動添加的盤)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信息;在最后l頁的末尾具有數(shù) 據(jù)區(qū)結(jié)束符、空閑字段和頁面地址指針為0的結(jié)尾指針。
每個插槽位置都有一個數(shù)據(jù)完整性標(biāo)記(標(biāo)記1), 0表示數(shù)據(jù)區(qū)尚未完成初始化,初始 化完成后,將標(biāo)記寫為FFH;如果檢測到某板卡標(biāo)記為0,則重新給該板卡分配空間;這樣
保證了數(shù)據(jù)區(qū)域的完整性,避免了新插入板卡正在分配數(shù)據(jù)區(qū)時斷電,導(dǎo)致存儲單元錯誤。
優(yōu)選的,在文件指針區(qū)域還存儲嵌入式設(shè)備的信息,包括硬件類型和操作系統(tǒng)版本。 優(yōu)選的,當(dāng)某一位置新插入了通信單板時的操作如下
Bl、對新插入的通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定上 述單板信息的首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中,將單板信 息的首地址作為通信單板所使用存儲單元的文件指針;
B2、在單板信息第l頁的頭部寫入模板信息,根據(jù)模板信息確定所述單板信息所占用的 空間,根據(jù)所占用的空間計算上述單板信息所需要的頁面?zhèn)€數(shù),在頁面分配表區(qū)域里查找沒有使用的頁面,建立鏈表結(jié)構(gòu),在每一頁面的最后一個字節(jié)寫入下一頁面的地址; B3、對所占用的空間進(jìn)行初始化;
B4、把單板信息寫入到存儲單元的頁面中,保證單板信息掉電不丟失。
如果中4反被拔出,但是所述中-板的位置沒有插入其它的單板,那么只是把該位胃的單板
狀態(tài)更改為單板不在位置,不重新初始化該單板的信息,這樣確保所述單板再次插入相阿的
位置時,之前單板信息不丟失;
如果單板被拔出,并重新插入了其它的單板,那么將被拔H!的單板信息所占用的存儲空
間進(jìn)行初始化,同時把頁面分配表區(qū)域中的頁面使用標(biāo)記全部清除為不使用,然后再根據(jù)這
個新插入單板的單板信息,重新分配頁地址和頁空間。
現(xiàn)有技術(shù)中,通信單板在升級驅(qū)動程序時需要進(jìn)行重新引導(dǎo),這樣才能使處理器識別新 的驅(qū)動程序,但是種方式導(dǎo)致通信單板在一段時間內(nèi)無法使用,降低了通信單板的實時性。 因此,為了避免通信單板升級驅(qū)動時的這種問題,本發(fā)明提出,當(dāng)通信單板需要升級其驅(qū)動 程序時,嵌入式設(shè)備將默認(rèn)驅(qū)動程序發(fā)送給所述通信單板,通信單板停止當(dāng)前正在運行的驅(qū) 動程序,并運行嵌入式設(shè)備發(fā)送的默認(rèn)驅(qū)動程序。此時,通信單板上的應(yīng)用程序并不/解驅(qū) 動程序的變化,因此,如果通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與原驅(qū)動程序相關(guān)聯(lián) 的調(diào)用時,通信單板通知所述應(yīng)用程序切換到默認(rèn)驅(qū)動程序,因為,此時只有默認(rèn)驅(qū)動程序 在運行。通信單板將驅(qū)動程度進(jìn)行升級,得到升級后的驅(qū)動程序。通信單板停止默認(rèn)驅(qū)動程 序的運行,并運行升級后的驅(qū)動程序。同理,通信單板上的應(yīng)用程序并不了解驅(qū)動程序的變 化,當(dāng)通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與默認(rèn)驅(qū)動程序相關(guān)聯(lián)的調(diào)用時,通知所 述應(yīng)用程序切換到第二驅(qū)動程序。
圖7是本發(fā)明執(zhí)行軟件升級時的示意圖。單板存儲空間存儲的是需要升級的舊的軟件, 并且將舊的軟件分為0100-0113個軟件部分,SP,共14個舊的軟件部分。當(dāng)通信單板需要升 級軟件但單板存儲空間不足時,在嵌入式設(shè)備存儲單元的單板信息存儲區(qū)域中存儲對舊的軟 件進(jìn)行更新的部分,并且將新的軟件分為0200-0207個軟件部分,B卩,共8個新的軟件部分。
當(dāng)通信單板需要運行升級的軟件但單板存儲空間不足時,通過在嵌入式設(shè)備存儲單元的 單板信息存儲區(qū)域中執(zhí)行新的軟件部分(0200-0207)來替換執(zhí)行舊的軟件部分(0100-0113), 在單板信息存儲區(qū)域中存儲新的軟件部分并通過單板存儲空間的第一指針,替換在單板存儲 空間中的舊的軟件部分來執(zhí)行在單板信息存儲區(qū)域中的新的軟件部分,其中通過單板信息存 儲區(qū)域的第二指針在執(zhí)行所述新的軟件部分后,重新返回單板存儲空間中,并繼續(xù)執(zhí)行在單 板存儲空間中的其它與舊的軟件部分不同的軟件。如圖7所示,當(dāng)通信單板運行舊的軟件部分0103時,通過第一指針來找到新的軟件部分 0201的地址,從而運行新的軟件部分0201-0204,當(dāng)通信單板運行了 0204后,利用第二指針 返回舊的軟件部分0105,從而實現(xiàn)了利用新的軟件部分0201-0204替換了舊的軟件部分 0103-01005。
同理,當(dāng)通信單板運行舊的軟件部分0109時,通過第一指針來找到新的軟件部分0207 的地址,從而運行新的軟件部分0207-0208,當(dāng)通信單板運行了 0208后,利用第二指針返回 舊的軟件部分0110,從而實現(xiàn)/利用新的軟件部分0207-0208替換了舊的軟件部分0109-0110。
通過軟件部分的跳轉(zhuǎn)執(zhí)行解決了通信單板存儲空間不足的問題,有效的利用了潛入式設(shè) 備的存儲單元來為通信單板服務(wù)。
其中,所述舊的軟件部分仍然保存在單板存儲空間屮,將所述單板信息存儲區(qū)域中新的 軟件部分的起始地址用作第一指針,根據(jù)起始地址部分的修改舊的軟件部分,將單板存儲空 間中與舊的軟件部分不同的軟件的起始地址作為第二指針。
進(jìn)一歩,當(dāng)通信單板需耍更新數(shù)據(jù)時,將當(dāng)前更新操作所對應(yīng)更新塊中的所有數(shù)據(jù)備份
至嵌入式設(shè)備的單板信息存儲區(qū)域中,設(shè)置備份標(biāo)記為有效,即將單板信息存儲區(qū)域的相應(yīng)
頁面類型置為"3",不允許更改備份的數(shù)據(jù),擦除當(dāng)前更新操作所對應(yīng)的更新塊,用新數(shù)據(jù)
更新單板信息存儲區(qū)域中的備份數(shù)據(jù),并將更新后的備份數(shù)據(jù)寫回當(dāng)前更新塊,并設(shè)置備份
標(biāo)記為無效,即將單板信息存儲區(qū)域的相應(yīng)頁面類型置為"0",允許更改備份的數(shù)據(jù)。
本發(fā)明還提供了 一種嵌入式設(shè)備的文件管理系統(tǒng),所述嵌入式設(shè)備用于監(jiān)控通信系統(tǒng)中
的通信單板,所述系統(tǒng)包括存儲單元和控制單元,控制單元控制存儲單元執(zhí)行讀取和寫入操
作,所述控制單元包括
初始化裝置,上電檢測時擦除嵌入式設(shè)備存儲單元的所有存儲空間,將存儲單元劃分為 3個區(qū)域文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域,在文件指針區(qū)域中建,.哈希 表,利用哈希表在文件指針區(qū)域中存儲通信單板的單板信息在存儲單元中的首地址;所述頁 面分配表區(qū)域用于記錄嵌入式設(shè)備存儲單元的頁面狀態(tài);所述單板信息存儲區(qū)域用于存儲單 板信息、升級軟件和默認(rèn)驅(qū)動程序;
哈希處理裝置,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定 通信單板的單板信息的首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中;
頁面控制裝置,根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配單板信息所需的頁面, 通過鏈表結(jié)構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域;在單板信息第1 頁的頭部都定義了一個固定的存儲模板,方便查詢該通信單板的基本信息,所述存儲模板的格式為位置、單板類型、軟件版本、單板狀態(tài)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信總
在單板信息最后1頁的末尾具有數(shù)據(jù)區(qū)結(jié)束符、空閑字段和頁面地址指針為0的結(jié)尾指針。 優(yōu)選的,在文件指針區(qū)域還存儲嵌入式設(shè)備的信息,包括硬件類型和操作系統(tǒng)版本。
優(yōu)選的,當(dāng)某一插槽位置新插入了通信中板時進(jìn)行如下操作
B、對新插入通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定單板 信息首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中,將單板信總的首地 址作為通信單板訪問存儲單元的文件指針;
B2、在單板信息第1頁的頭部寫入模板信息,根據(jù)模板信息確定所述單板信息所占用的 空間,根據(jù)所占用的空間計算上述單板信息所需要的頁面?zhèn)€數(shù),在頁面分配表區(qū)域単查找沒 有使用的頁面,建立鏈表結(jié)構(gòu),在每一頁面的最后一個字節(jié)寫入下一頁面的地址;
B3、對單板信息所占用的空間進(jìn)行初始化;
B4、把單板信息寫入到存儲單元的頁面中,保證單板信息掉電不丟失。
優(yōu)選的,如果單板被拔出,但是所述單板的插槽位置沒有插入其它的單板,那么只是把
該插槽位置的單板狀態(tài)更改為單板不在位置,不重新初始化該單板的信總,這樣確保所述單
板再次插入相同的插槽位賈時,之前的單板信息不£失。
優(yōu)選的,如果單板被拔出,并重新插入了其它的單板,那么將被拔出單板的單板信總所
占用的存儲空間進(jìn)行初始化,同時把頁面分配表區(qū)域中相應(yīng)頁面的使用標(biāo)記全部設(shè)置為"未
被使用",然后再根據(jù)這個新插入單板的單板信息,重新分配頁地址和頁空間。
優(yōu)選的,當(dāng)通信單板需要升級第一驅(qū)動程序時,嵌入式設(shè)備將默認(rèn)驅(qū)動程序發(fā)送給所述 通信單板,通信單板停止當(dāng)前正在運行的第一驅(qū)動程序,并運行默認(rèn)驅(qū)動程序,當(dāng)通信單板 從其上運行的應(yīng)用程序接收到執(zhí)行與第一驅(qū)動程序相關(guān)聯(lián)的調(diào)用時,通知所述應(yīng)用程序切換 到默認(rèn)驅(qū)動程序;將第一驅(qū)動程度升級為第二驅(qū)動程序,通信單板停止默認(rèn)驅(qū)動程序,并運 行第二驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與默認(rèn)驅(qū)動程序相關(guān)聯(lián)的調(diào) 用時,通知所述應(yīng)用程序切換到第二驅(qū)動程序。
優(yōu)選的,當(dāng)通信單板需要升級軟件但單板存儲空間不足時,通過在嵌入式設(shè)備存儲單元 的單板信息存儲區(qū)域中執(zhí)行新的軟件部分來替換執(zhí)行舊的軟件部分,在單板信息存儲區(qū)域中 存儲新的軟件部分,并通過單板存儲空間的第一指針替換在單板存儲空間中的舊的軟件部分 來執(zhí)行在單板信息存儲區(qū)域中的新的軟件部分,其中通過單板信息存儲區(qū)域的第一.指針在執(zhí) 行所述新的軟件部分后,重新返回單板存儲空間中,并繼續(xù)執(zhí)行在單板存儲空間中的其它與 舊的軟件部分不同的軟件部分。其中,所述舊的軟件部分仍然保存在單板存儲空間中,將所述單板信息存儲區(qū)域'l'新的 軟件部分的起始地址用作第一指針,根據(jù)起始地址部分的修改舊的軟件部分,將單板存儲空 間中與舊的軟件部分不同的軟件的起始地址作為第二指針。
進(jìn)一步,當(dāng)通信單板需要更新數(shù)據(jù)時,將當(dāng)前更新操作所對應(yīng)更新塊屮的所'打數(shù)據(jù)備份 至嵌入式設(shè)備的單板信息存儲區(qū)域中,設(shè)置備份標(biāo)記為有效,不允許更改備份的數(shù)據(jù),擦除 當(dāng)前更新操作所對應(yīng)的更新塊,用新數(shù)據(jù)更新單板信息存儲區(qū)域中的備份數(shù)據(jù),并將更新后 的備份數(shù)據(jù)寫回當(dāng)前更新塊,并設(shè)置備份標(biāo)記為無效,允許更改備份的數(shù)據(jù)。
權(quán)利要求
1、一種嵌入式設(shè)備的文件管理方法,所述嵌入式設(shè)備用于監(jiān)控通信系統(tǒng)中的通信單板,其特征在于,包括A1、上電檢測時擦除嵌入式設(shè)備存儲單元的所有存儲空間;A2、將存儲單元劃分為3個區(qū)域文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域;A3、在文件指針區(qū)域中建立哈希表,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定通信單板的單板信息的首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中;A4、利用頁面分配表區(qū)域記錄嵌入式設(shè)備存儲單元的頁面狀態(tài);A5、根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配單板信息所需的頁面,通過鏈表結(jié)構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域;在單板信息第1頁的頭部都定義了一個固定的存儲模板,方便查詢該通信單板的基本信息,所述存儲模板的格式為位置、單板類型、軟件版本、單板狀態(tài)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信息;在單板信息最后1頁的末尾具有數(shù)據(jù)區(qū)結(jié)束符、空閑字段和頁面地址指針為0的結(jié)尾指針。A6、利用單板信息存儲區(qū)域存儲單板信息、升級軟件和默認(rèn)驅(qū)動程序。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)某一插槽位置新插入了通信單板時進(jìn)行如下操作Bl、對新插入通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定單板信息首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中,將單板信息的首地址作為通信單板訪問存儲單元的文件指針;B2、在單板信息第1頁的頭部寫入模板信息,根據(jù)模板信息確定所述單板信息所占用的 .空間,根據(jù)所占用的空間計算上述單板信息所需要的頁面?zhèn)€數(shù),在頁面分配表區(qū)域里查找沒 有使用的頁面,建立鏈表結(jié)構(gòu),在每一頁面的最后一個字節(jié)寫入下一頁面的地址; B3、對單板信息所占用的空間進(jìn)行初始化;B4、把單板信息寫入到存儲單元的頁面中,保證單板信息掉電不丟失。
3、 根據(jù)權(quán)利要求l所述的方法,其特征在于,如果單板被拔出,但是所述單板的插槽位 '置沒有插入其它的單板,那么只是把該插槽位置的單板狀態(tài)更改為單板不在位置,不重新初始化該單板的信息,這樣確保所述單板再次插入相同的插槽位置時,之前的單板信息不S失。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,如果單板被拔出,并重新插入了其它的單板,那么將被拔出單板的單板信息所占用的存儲空間進(jìn)行初始化,同時把頁面分配表區(qū)域中 相應(yīng)頁面的使用標(biāo)記全部設(shè)置為"未被使用",然后再根據(jù)這個新插入單板的單板信息,重新 分配頁地址和頁空間。
5、 根據(jù)權(quán)利耍求1所述的方法,其特征在于,當(dāng)通信單板需要升級第一驅(qū)動程序吋,咴 入式設(shè)備將默認(rèn)驅(qū)動程序發(fā)送給所述通信單板,通信單板停止當(dāng)前正在運行的第--驅(qū)動程序, 并運行默認(rèn)驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與第一驅(qū)動程序相關(guān)聯(lián) 的調(diào)用時,通知所述應(yīng)用程序切換到默認(rèn)驅(qū)動程序;將第一驅(qū)動程度升級為第二驅(qū)動程序, 通信單板停止默認(rèn)驅(qū)動程序,并運行第二驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收 到執(zhí)行與默認(rèn)驅(qū)動程序相關(guān)聯(lián)的調(diào)用時,通知所述應(yīng)用程序切換到第二驅(qū)動程序。
6、 根據(jù)權(quán)利要求l所述的方法,其特征在于,當(dāng)通信單板需要升級軟件但¥-板存儲空間 不足時,通過在嵌入式設(shè)備存儲單元的單板信息存儲區(qū)域中執(zhí)行新的軟件部分來替換執(zhí)行舊 的軟件部分,在單板信息存儲區(qū)域中存儲新的軟件部分,并通過單板存儲空間的第-一指針替 換在單板存儲空間中的舊的軟件部分來執(zhí)行在單板信息存儲區(qū)域中的新的軟件部分,其中通 過單板信息存儲區(qū)域的第二指針在執(zhí)行所述新的軟件部分后,重新返回單板存儲空間中,并 繼續(xù)執(zhí)行在單板存儲空間中的其它與舊的軟件部分不同的軟件部分。其中,所述舊的軟件部分仍然保存在單板存儲空間中,將所述單板信息存儲區(qū)域中新的 軟件部分的起始地址用作第一指針,根據(jù)起始地址部分的修改舊的軟件部分,將單板存儲空 間中與舊的軟件部分不同的軟件的起始地址作為第二指針。
7、 根據(jù)權(quán)利要求l所述的方法,其特征在于,當(dāng)通信單板需要更新數(shù)據(jù)時,將當(dāng)前更新 操作所對應(yīng)更新塊中的所有數(shù)據(jù)備份至嵌入式設(shè)備的單板信息存儲區(qū)域中,設(shè)置備份標(biāo)記為 有效,不允許更改備份的數(shù)據(jù),擦除當(dāng)前更新操作所對應(yīng)的更新塊,用新數(shù)據(jù)更新單板信息 存儲區(qū)域中的備份數(shù)據(jù),并將更新后的備份數(shù)據(jù)寫回當(dāng)前更新塊,并設(shè)置備份標(biāo)記為無效, 允許更改備份的數(shù)據(jù)。
8、 —種嵌入式設(shè)備的文件管理系統(tǒng),所述嵌入式設(shè)備用于監(jiān)控通信系統(tǒng)中的通信單板, 所述系統(tǒng)包括存儲單元和控制單元,控制單元控制存儲單元執(zhí)行讀取和寫入操作,其特征在 于,所述控制單元包括初始化裝置,上電檢測時擦除嵌入式設(shè)備存儲單元的所有存儲空間,將存儲單元劃分為 3個區(qū)域文件指針區(qū)域、頁面分配表區(qū)域和單板信息存儲區(qū)域,在文件指針區(qū)域中建立哈希 表,利用哈希表在文件指針區(qū)域中存儲通信單板的單板信息在存儲單元中的首地址;所述頁 面分配表區(qū)域用于記錄嵌入式設(shè)備存儲單元的頁面狀態(tài);所述單板信息存儲區(qū)域用于存儲單板信息、升級軟件和默認(rèn)驅(qū)動程序;哈希處理裝置,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定 通信單板的中-板信息的首地址在哈希表屮的位置,并將單板信息的首地址存儲在哈希表中;頁面控制裝置,根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配單板倍息所需的頁巾l, 通過鏈表結(jié)構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域;在單板信息第1 頁的頭部都定義/一個固定的存儲模板,方便査詢該通信單板的基本信總,所述存儲模板的 格式為位置、單板類型、軟件版本、單板狀態(tài)、數(shù)據(jù)完整性標(biāo)記、保留字段和單板信息 在單板信息最后1頁的末尾具有數(shù)據(jù)區(qū)結(jié)束符、空閑卞段和頁面地址指針為O的結(jié)尾指針。
9、根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,當(dāng)通信單板需要升級第一驅(qū)動程序時,嵌 入式設(shè)備將默認(rèn)驅(qū)動程序發(fā)送給所述通信單板,通信中.板停止當(dāng)前正在運行的第一驅(qū)動程序, 并運行默認(rèn)驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收到執(zhí)行與第 一驅(qū)動程序相關(guān)聯(lián) 的調(diào)用時,通知所述應(yīng)用程序切換到默認(rèn)驅(qū)動程序;將第一驅(qū)動程度升級為第二驅(qū)動程序, 通信單板停止默認(rèn)驅(qū)動程序,并運行第二驅(qū)動程序,當(dāng)通信單板從其上運行的應(yīng)用程序接收 到執(zhí)行與默認(rèn)驅(qū)動程序相關(guān)聯(lián)的調(diào)用時,通知所述應(yīng)用程序切換到第二驅(qū)動程序。
10、根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,當(dāng)通信單板需要升級軟件但單板存儲^ 間不足時,通過在嵌入式設(shè)備存儲單元的單板信息存儲區(qū)域中執(zhí)行新的軟件部分來替換執(zhí)行 舊的軟件部分,在單板信息存儲區(qū)域中存儲新的軟件部分,并通過單板存儲空間的第一指針 替換在單板存儲空間中的舊的軟件部分來執(zhí)行在單板信息存儲區(qū)域中的新的軟件部分,其中通過單板信息存儲區(qū)域的第二指針在執(zhí)行所述新的軟件部分后,重新返回單板存儲空間中, 并繼續(xù)執(zhí)行在單板存儲空間中的其它與舊的軟件部分不同的軟件部分。其中,所述舊的軟件部分仍然保存在單板存儲空間中,將所述單板信息存儲區(qū)域中新的軟 件部分的起始地址用作第一指針,根據(jù)起始地址部分的修改舊的軟件部分,將單板存儲空間 中與舊的軟件部分不同的軟件的起始地址作為第二指針。
全文摘要
本發(fā)明涉及一種嵌入式設(shè)備的文件管理方法及系統(tǒng),所述嵌入式設(shè)備用于監(jiān)控通信系統(tǒng)中的通信單板,初始化嵌入式設(shè)備的存儲單元的所有存儲空間,在文件指針區(qū)域中建立哈希表,對通信單板的硬件地址進(jìn)行哈希運算,根據(jù)哈希運算獲得的散列碼確定上述單板信息的首地址在哈希表中的位置,并將單板信息的首地址存儲在哈希表中。利用頁面分配表區(qū)域記錄存儲了單板信息、升級軟件和默認(rèn)驅(qū)動程序的頁面的狀態(tài)。根據(jù)單板信息的大小在單板信息存儲區(qū)域中分配其所需的頁面?zhèn)€數(shù),通過鏈表結(jié)構(gòu)將存儲單板信息的頁面在邏輯上形成一個連續(xù)的數(shù)據(jù)存儲區(qū)域。本發(fā)明能夠解決存儲空間利用率不足的問題,提高文件訪問速度和工作效率。
文檔編號G06F9/445GK101582089SQ20091015721
公開日2009年11月18日 申請日期2009年7月2日 優(yōu)先權(quán)日2009年7月2日
發(fā)明者張世瞳, 胡軍波, 趙學(xué)剛, 趙文濤 申請人:北京訊風(fēng)光通信技術(shù)開發(fā)有限責(zé)任公司