創(chuàng)建設備節(jié)點的方法及裝置的制造方法
【專利說明】創(chuàng)建設備節(jié)點的方法及裝置
[0001]本申請是2012年11月15日提出的發(fā)明名稱為“創(chuàng)建設備節(jié)點的方法及裝置”的中國發(fā)明專利申請201210459647.1的分案申請。
技術(shù)領域
[0002]本發(fā)明涉及嵌入式系統(tǒng)應用技術(shù)領域,具體地說,是涉及一種創(chuàng)建設備節(jié)點的方法及裝置。
【背景技術(shù)】
[0003]嵌入式系統(tǒng)、如Linux系統(tǒng)里的設備驅(qū)動都是以設備節(jié)點(設備文件)的形式存在,以便于應用層的用戶與底層的內(nèi)核進行交互。Iinux對于設備驅(qū)動的加載方式有兩種:一種方式是將設備驅(qū)動直接靜態(tài)編譯到內(nèi)核中去,在系統(tǒng)啟動的時候就會自動加載設備驅(qū)動和創(chuàng)建設備節(jié)點;另一種方式是設備驅(qū)動以模塊的方式獨立于內(nèi)核存在,可以在內(nèi)核啟動后動態(tài)地加載驅(qū)動和創(chuàng)建設備節(jié)點,以及動態(tài)地卸載設備驅(qū)動和刪除設備節(jié)點。
[0004]其中,第一種方式的優(yōu)點是使用簡單,加載驅(qū)動快,設備節(jié)點一旦創(chuàng)建完成,在設備驅(qū)動未重新編輯的情況下不需要再次創(chuàng)建,進而使得系統(tǒng)啟動快。缺點是不靈活,增減設備驅(qū)動需要重新編譯內(nèi)核,而內(nèi)核對于系統(tǒng)來說是相對穩(wěn)定的,不宜頻繁變動;而且這種方式對于即插即用的設備而言無法滿足要求,因為這種設備的節(jié)點是需要動態(tài)創(chuàng)建的。還有,這種方式隨著驅(qū)動的增多,內(nèi)核的體積也會不斷變大,這也是嵌入式系統(tǒng)不希望看到的。因此,現(xiàn)有嵌入式系統(tǒng)設計中一般將系統(tǒng)基本的、通用的驅(qū)動采用第一種方式來加載,而對于有個性的驅(qū)動采用第二種方式來加載。
[0005]但是,第二種方式雖然存在著使用靈活、可以動態(tài)地進行加載的優(yōu)點,減小了內(nèi)核的體積,節(jié)省了系統(tǒng)的內(nèi)存。但其缺點也極為明顯:使用麻煩,每次系統(tǒng)啟動時均需要從外部加載驅(qū)動,造成系統(tǒng)啟動較慢。而且,每次開機均需要重新創(chuàng)建設備節(jié)點,創(chuàng)建設備節(jié)點占用了較多的開機啟動時間,導致系統(tǒng)啟動更加緩慢。這一點在機頂盒、手機等使用嵌入式Iinux系統(tǒng)的電子產(chǎn)品中表現(xiàn)尤為突出,因為這些電子產(chǎn)品功能越來越多,需要的個性化設備驅(qū)動越來越多,因而在加載設備驅(qū)動和創(chuàng)建設備節(jié)點所花時間越來越多,而系統(tǒng)啟動時間(開機時間)又是這類產(chǎn)品的一個非常重要的技術(shù)指標,因此,極容易制約產(chǎn)品性能的提升。
【發(fā)明內(nèi)容】
[0006]本發(fā)明針對現(xiàn)有技術(shù)中設備節(jié)點創(chuàng)建存在的上述問題而提供了一種創(chuàng)建設備節(jié)點的方法和裝置,實現(xiàn)了快速、動態(tài)的設備節(jié)點的創(chuàng)建。
[0007]為實現(xiàn)上述發(fā)明目的,本發(fā)明提供的方法采用下述技術(shù)方案予以實現(xiàn):
一種創(chuàng)建設備節(jié)點的方法,所述方法包括下述步驟:
a、在設備文件存儲器中以文本文件形式存儲包括有設備驅(qū)動名稱、設備節(jié)點名稱和相關(guān)參數(shù)的設備驅(qū)動文件列表; b、判斷設備文件存儲器中是否存有與待加載的設備驅(qū)動相對應的設備節(jié)點,若有,執(zhí)行下述步驟C,若無,執(zhí)行下述步驟d和e;
C、將存儲于設備文件存儲器中、與待加載的設備驅(qū)動相對應的設備節(jié)點拷貝至內(nèi)存中;
d、讀取設備驅(qū)動文件列表,根據(jù)列表內(nèi)容加載設備驅(qū)動,獲取設備節(jié)點號;
e、根據(jù)設備驅(qū)動文件列表內(nèi)容和設備節(jié)點號創(chuàng)建與加載的設備驅(qū)動相對應的設備節(jié)點,并將創(chuàng)建的設備節(jié)點存儲到設備文件存儲器中。
[0008]如上所述的方法,在所述步驟b中,根據(jù)下述步驟判斷設備文件存儲器中是否存有與待加載的設備驅(qū)動相對應的設備節(jié)點:
bOl、查找設備文件存儲器中的設備節(jié)點存儲目錄中是否存在設備節(jié)點;b02、在存在設備節(jié)點時,讀取設備文件存儲器中存儲的、該設備節(jié)點創(chuàng)建時對應的設備驅(qū)動文件列表的編輯時間Tl;
b03、獲取待加載的設備驅(qū)動對應的設備驅(qū)動文件列表的編輯時間T2;b04、在Tl與T2相同時,判定設備文件存儲器中存有與待加載的設備驅(qū)動相對應的設備節(jié)點,在兩者不同時,判定設備文件存儲器中存儲的設備節(jié)點與加載的設備驅(qū)動不對應。
[0009]如上所述的方法,為避免資源沖突而導致系統(tǒng)啟動異常,在設備文件存儲器中的設備節(jié)點存儲目錄中存在設備節(jié)點、且設備節(jié)點與待加載的設備驅(qū)動不對應時,先刪除所有設備節(jié)點,然后再執(zhí)行所述步驟d和e。
[0010]如上所述的方法,為便于循環(huán)使用,在所述步驟e之后還包括下述步驟:
f、在設備文件存儲器中存儲該設備節(jié)點創(chuàng)建時所對應的設備驅(qū)動文件列表的編輯時間。
[0011 ]如上所述的方法,為避免重復創(chuàng)建設備節(jié)點、進一步提高創(chuàng)建速度,在所述步驟e中,根據(jù)下述子步驟創(chuàng)建設備節(jié)點:
eOl、從設備驅(qū)動文件列表中獲取待創(chuàng)建的設備節(jié)點的設備節(jié)點名稱;e02、獲取加載該設備節(jié)點對應的設備驅(qū)動后系統(tǒng)所分配的設備節(jié)點號;e03、判斷內(nèi)存中是否存在相同名稱的設備節(jié)點,在不存在時,執(zhí)行步驟e05,在存在時,執(zhí)行步驟e04;
e04、判斷內(nèi)存中相同名稱的設備節(jié)點的設備節(jié)點號與待創(chuàng)建的設備節(jié)點的設備節(jié)點號是否相同,若不同,執(zhí)行步驟e05,若相同,放棄設備節(jié)點的創(chuàng)建;e05、根據(jù)設備節(jié)點名稱和設備節(jié)點號創(chuàng)建設備節(jié)點。
[0012]如上所述的方法,所述設備節(jié)點號包括有主設備號和從設備號,所述步驟e04中,內(nèi)存中相同名稱的設備節(jié)點的主設備號和從設備號與待創(chuàng)建的設備節(jié)點的主設備號和從設備號均相同時,判定兩個設備節(jié)點的設備節(jié)點號相同,放棄設備節(jié)點的創(chuàng)建。
[0013]如上所述的方法,所述設備文件存儲器尤指flash存儲器。
[0014]為實現(xiàn)前述發(fā)明目的,本發(fā)明提供的裝置采用下述技術(shù)方案來實現(xiàn):
一種創(chuàng)建設備節(jié)點的裝置,該裝置包括有設備文件存儲器和設備節(jié)點創(chuàng)建模塊,設備節(jié)點存儲器包括:
設備驅(qū)動文件列表存儲單元,以文本文件形式存儲包括有設備驅(qū)動名稱、設備節(jié)點名稱和相關(guān)參數(shù)的設備驅(qū)動文件列表; 設備節(jié)點存儲單元,用來存儲系統(tǒng)內(nèi)核創(chuàng)建的設備節(jié)點;
設備節(jié)點創(chuàng)建模塊包括:
設備驅(qū)動文件列表讀取單元,用來從設備文件存儲器中讀取設備驅(qū)動文件列表;
設備節(jié)點判定單元,用于判定設備文件存儲器中存儲的設備節(jié)點是否與待加載的設備驅(qū)動相對應;
設備節(jié)點加載單元,與設備節(jié)點判定單元相連接,根據(jù)判定結(jié)果從設備文件存儲器中加載設備節(jié)點至系統(tǒng)內(nèi)存中;
設備驅(qū)動加載單元,用于加載設備驅(qū)動;以及
設備節(jié)點創(chuàng)建單元,與設備節(jié)點判定單元及設備驅(qū)動文件列表讀取單元相連接,用于創(chuàng)建與加載的設備驅(qū)動相對應的設備節(jié)點。
[0015]如上所述的方法,所述設備文件存儲器中還包括有列表編輯時間存儲單元,用于存儲外置存儲設備中所存儲的設備節(jié)點創(chuàng)建時對應的設備驅(qū)動文件列表的編輯時間Tl;
所述設備節(jié)點創(chuàng)建模塊還包括有:
列表編輯時間獲取單元,用于獲取加載的設備驅(qū)動對應的設備驅(qū)動文件列表的編輯時間T2及列表編輯時間存儲單元中存儲的Tl;
編輯時間比較單元,與列表編輯時間獲取單元及設備節(jié)點判定單元相連接,用于比較Tl和T2是否相同,并將比較結(jié)果輸出至所述設備節(jié)點判定單元。
[0016]如上