一種加載驅(qū)動程序的方法及嵌入式設(shè)備的制作方法【專利摘要】本發(fā)明涉及計算機【
技術(shù)領(lǐng)域:
】,公開了一種加載驅(qū)動程序的方法及設(shè)備,該方法包括:確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識,查找與該器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;將查找到的驅(qū)動程序加載至嵌入式設(shè)備的內(nèi)存,并控制加載至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)λ銎骷M(jìn)行驅(qū)動;在該方案中,為待加載驅(qū)動程序的器件加載驅(qū)動程序時,根據(jù)該待加載驅(qū)動程序的器件的型號標(biāo)識去查找相關(guān)聯(lián)的驅(qū)動程序,進(jìn)而將該相關(guān)聯(lián)的驅(qū)動程序進(jìn)行加載即可,不需要去多個器件的驅(qū)動程序組合中去查找,也不需要生成多個器件的驅(qū)動程序?qū)?yīng)的標(biāo)識的組合,因此,降低了所消耗的時間,提高了加載效率?!緦@f明】一種加載驅(qū)動程序的方法及嵌入式設(shè)備【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及計算機【
技術(shù)領(lǐng)域:
】,特別涉及一種加載驅(qū)動程序的方法及嵌入式設(shè)備。【
背景技術(shù):
】[0002]隨著通信技術(shù)的迅速發(fā)展,計算機領(lǐng)域經(jīng)歷了PC(PersonalComputer,個人電腦)時代,經(jīng)歷了網(wǎng)絡(luò)時代,進(jìn)而面向所謂的后PC時代,嵌入式設(shè)備作為PC時代及后網(wǎng)絡(luò)時代的新秀,重要性日益凸顯。[0003]目前,智能手機、穿戴設(shè)備等嵌入式設(shè)備上支持的器件越來越多,而每一個器件必須要有對應(yīng)的驅(qū)動程序加載后才能運行,同一型號的嵌入式設(shè)備中的同一器件往往由不同廠家提供的,而不同廠家提供的同一器件對應(yīng)的驅(qū)動程序也是不同的。在實際應(yīng)用中,每一個嵌入式設(shè)備在出廠前,要將該嵌入式設(shè)備上的每一個器件的驅(qū)動程序加載完畢,以便持有嵌入式設(shè)備的用戶可以直接使用。[0004]現(xiàn)有技術(shù)中,在加載驅(qū)動程序之前,要先將各個器件會使用到的驅(qū)動程序的標(biāo)識進(jìn)行組合,得到驅(qū)動程序標(biāo)識組合,并將多個驅(qū)動程序標(biāo)識組合添加到注冊表中,嵌入式設(shè)備在加載驅(qū)動程序時,去注冊表中進(jìn)行查找,確定本嵌入式設(shè)備對應(yīng)的驅(qū)動程序標(biāo)識組合,然后根據(jù)該驅(qū)動程序標(biāo)識組合中包括的各個器件的驅(qū)動程序的標(biāo)識去查找對應(yīng)的驅(qū)動程序,進(jìn)而進(jìn)行加載。[0005]例如,嵌入式設(shè)備有兩個器件:陀螺儀、重力傳感器,陀螺儀由兩個廠家提供,廠家I提供的陀螺儀的驅(qū)動程序I對應(yīng)的標(biāo)識為標(biāo)識1、廠家2提供的陀螺儀的驅(qū)動程序2對應(yīng)的標(biāo)識為標(biāo)識2;重力傳感器也由兩個廠家提供,廠家3提供的重力傳感器的驅(qū)動程序3對應(yīng)的標(biāo)識為標(biāo)識3、廠家4提供的重力傳感器的驅(qū)動程序4對應(yīng)的標(biāo)識為標(biāo)識4,那么要生成四種驅(qū)動程序標(biāo)識組合:驅(qū)動程序標(biāo)識組合1:標(biāo)識I和標(biāo)識3;驅(qū)動程序標(biāo)識組合2:標(biāo)識I和標(biāo)識4;驅(qū)動程序標(biāo)識組合3:標(biāo)識2和標(biāo)識3;驅(qū)動程序標(biāo)識組合4:標(biāo)識2和標(biāo)識4;每一批次的嵌入式設(shè)備都與一種驅(qū)動程序標(biāo)識組合相對應(yīng),且在生產(chǎn)完成后對應(yīng)的驅(qū)動程序標(biāo)識組合也已經(jīng)確定,因此,該嵌入式設(shè)備要加載驅(qū)動程序時,要先去注冊表中查找驅(qū)動程序標(biāo)識組合1、驅(qū)動程序標(biāo)識組合2、驅(qū)動程序標(biāo)識組合3、驅(qū)動程序標(biāo)識組合4四種驅(qū)動程序標(biāo)識組合中與該批次的嵌入式設(shè)備對應(yīng)的驅(qū)動程序標(biāo)識組合,然后,根據(jù)該驅(qū)動程序標(biāo)識組合中包括的驅(qū)動程序的標(biāo)識去查找驅(qū)動程序,進(jìn)而去加載。[0006]嵌入式設(shè)備加載驅(qū)動程序時,該嵌入式設(shè)備與一個驅(qū)動程序標(biāo)識組合相對應(yīng),然后,找到對應(yīng)的驅(qū)動程序標(biāo)識組合中包括的各個器件的驅(qū)動程序的標(biāo)識,去加載與驅(qū)動程序的標(biāo)識對應(yīng)的驅(qū)動程序,隨著嵌入式設(shè)備中的器件的增加,及每一個器件的生產(chǎn)廠商的多樣化,驅(qū)動程序標(biāo)識組合也越來越多,因此,存在耗時較長、加載效率較低的缺陷?!?br/>發(fā)明內(nèi)容】[0007]本發(fā)明實施例提供一種加載驅(qū)動程序的方法及裝置,用以解決現(xiàn)有技術(shù)中存在的耗時較長、加載效率較低的問題。[0008]本發(fā)明實施例提供的具體技術(shù)方案如下:[0009]第一方面,提供一種加載驅(qū)動程序的方法,包括:[0010]確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識;所述器件為待加載驅(qū)動程序的器件;[0011]查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;[0012]將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,并控制加載至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)λ銎骷M(jìn)行驅(qū)動。[0013]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,具體包括:[0014]通過所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,其中,所述最小運行系統(tǒng)鏡像用于所述嵌入式設(shè)備的啟動、業(yè)務(wù)功能的運行,及所述嵌入式設(shè)備所包含的器件的驅(qū)動程序的加載。[0015]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,在查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前,還包括:[0016]生成所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。[0017]結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,生成所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像,包括:[0018]將基于所述嵌入式設(shè)備的業(yè)務(wù)功能開發(fā)的原始代碼編譯生成初始最小運行系統(tǒng)鏡像,所述初始最小運行系統(tǒng)鏡像包括可執(zhí)行文件及可執(zhí)行連接格式的文件;所述原始代碼是用于實現(xiàn)所述嵌入式設(shè)備的業(yè)務(wù)功能;[0019]從所述初始最小運行系統(tǒng)鏡像所包括的可執(zhí)行連接格式的文件中抽取符號表;[0020]根據(jù)所述符號表生成C文件,并將生成的C文件添加至所述原始代碼;[0021]將添加所述C文件后的所述原始代碼進(jìn)行編譯,得到所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。[0022]結(jié)合第一方面,或者第一方面的第一至第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,在查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前,還包括:[0023]確定與所述器件同類型的器件分別的型號標(biāo)識,以及所述同類型的器件分別對應(yīng)的驅(qū)動程序;其中,所述同類型的器件為與所述器件具有相同屬性或功能的器件;[0024]存儲確定出的每一個與所述器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系。[0025]結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,存儲確定出的每一個與所述器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系,具體包括:[0026]將每一個所述同類型器件的驅(qū)動程序編譯為預(yù)設(shè)格式的文件,所述預(yù)設(shè)格式的文件具有重定位的屬性;[0027]將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲,并獲取存儲所述預(yù)設(shè)格式的文件的邏輯地址;[0028]存儲所述任意一型號標(biāo)識與獲取得到的邏輯地址的對應(yīng)關(guān)系。[0029]結(jié)合第一方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述預(yù)設(shè)格式的文件的地址字段為初始預(yù)設(shè)值;在將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲之后,所述方法還包括:[0030]將所述預(yù)設(shè)格式的文件的地址字段中的所述初始預(yù)設(shè)值更改為所述邏輯地址。[0031]結(jié)合第一方面的第五或第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,具體包括:[0032]從存儲的關(guān)聯(lián)關(guān)系中確定與所述器件對應(yīng)的型號標(biāo)識對應(yīng)的邏輯地址;[0033]將確定的邏輯地址中存儲的預(yù)設(shè)格式的文件,作為與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序。[0034]結(jié)合第一方面的第六或第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,具體包括:[0035]確定所述驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存后的物理地址;[0036]將所述驅(qū)動程序中的地址字段從邏輯地址修改為所述物理地址。[0037]結(jié)合第一方面的第一至第八種可能的實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,包括:[0038]采用動態(tài)加載的方式通過所述最小運行系統(tǒng)鏡像將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存。[0039]結(jié)合第一方面的第九種可能的實現(xiàn)方式,在第十種可能的實現(xiàn)方式中,采用動態(tài)加載的方式通過所述最小運行系統(tǒng)鏡像將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,具體包括:[0040]利用所述最小運行系統(tǒng)鏡像中的函數(shù)和全局變量,將查找的驅(qū)動程序拷貝至所述嵌入式設(shè)備的內(nèi)存;[0041]基于所述最小運行系統(tǒng)鏡像采用函數(shù)指針的形式,調(diào)用所述查找到的驅(qū)動程序中的接口函數(shù),將拷貝至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序進(jìn)行鏈接。[0042]第二方面,提供一種加載驅(qū)動程序的嵌入式設(shè)備,包括:[0043]確定單元,用于確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識;所述器件為待加載驅(qū)動程序的器件;[0044]查找單元,用于查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;[0045]加載單元,用于將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,并控制加載至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)λ銎骷M(jìn)行驅(qū)動。[0046]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述查找單元具體用于:[0047]通過所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,其中,所述最小運行系統(tǒng)鏡像用于所述嵌入式設(shè)備的啟動、業(yè)務(wù)功能的運行,及所述嵌入式設(shè)備所包含的器件的驅(qū)動程序的加載。[0048]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,還包括生成單元,所述生成單元用于生成所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。[0049]結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述生成單元包括:[0050]編譯模塊,用于將基于所述嵌入式設(shè)備的業(yè)務(wù)功能開發(fā)的原始代碼編譯生成初始最小運行系統(tǒng)鏡像,所述初始最小運行系統(tǒng)鏡像包括可執(zhí)行文件及可執(zhí)行連接格式的文件;所述原始代碼是用于實現(xiàn)所述嵌入式設(shè)備的業(yè)務(wù)功能;[0051]抽取模塊,用于從所述初始最小運行系統(tǒng)鏡像所包括的可執(zhí)行連接格式的文件中抽取符號表;根據(jù)所述符號表生成C文件,并將生成的C文件添加至所述原始代碼;[0052]所述編譯模塊還用于,將添加所述C文件后的所述原始代碼進(jìn)行編譯,得到所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。[0053]結(jié)合第二方面,或者第二方面的第一至第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括存儲單元,所述存儲單元具體用于:[0054]確定與所述器件同類型的器件分別的型號標(biāo)識,以及所述同類型的器件分別對應(yīng)的驅(qū)動程序;其中,所述同類型的器件為與所述器件具有相同屬性或功能的器件;[0055]存儲確定出的每一個與所述器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系。[0056]結(jié)合第二方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述存儲單元具體用于:[0057]將每一個所述同類型器件的驅(qū)動程序編譯為預(yù)設(shè)格式的文件,所述預(yù)設(shè)格式的文件具有重定位的屬性;將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲,并獲取存儲所述預(yù)設(shè)格式的文件的邏輯地址;存儲所述任意一型號標(biāo)識與獲取得到的邏輯地址的對應(yīng)關(guān)系。[0058]結(jié)合第二方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述預(yù)設(shè)格式的文件的地址字段為初始預(yù)設(shè)值,所述存儲單元還用于:[0059]在將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲之后,將所述預(yù)設(shè)格式的文件的地址字段中的所述初始預(yù)設(shè)值更改為所述邏輯地址。[0060]結(jié)合第二方面的第五或第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,所述查找單元具體用于:[0061]從存儲的關(guān)聯(lián)關(guān)系中確定與所述器件對應(yīng)的型號標(biāo)識對應(yīng)的邏輯地址;[0062]將確定的邏輯地址中存儲的預(yù)設(shè)格式的文件,作為與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序。[0063]結(jié)合第二方面的第六或第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述加載單元具體用于:[0064]確定所述驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存后的物理地址;[0065]將所述驅(qū)動程序中的地址字段從邏輯地址修改為所述物理地址。[0066]結(jié)合第二方面的第一至第八種可能的實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,所述加載單元具體用于:[0067]利用所述最小運行系統(tǒng)鏡像中的函數(shù)和全局變量,將查找的驅(qū)動程序拷貝至所述嵌入式設(shè)備的內(nèi)存;[0068]基于所述最小運行系統(tǒng)鏡像采用函數(shù)指針的形式,調(diào)用所述查找到的驅(qū)動程序中的接口函數(shù),將拷貝至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序進(jìn)行鏈接。[0069]本發(fā)明有益效果如下:[0070]現(xiàn)有技術(shù)中,嵌入式設(shè)備在加載驅(qū)動程序時,去注冊表中查找與本嵌入式設(shè)備對應(yīng)的驅(qū)動程序標(biāo)識組合,然后,根據(jù)驅(qū)動程序標(biāo)識組合中包括的驅(qū)動程序的標(biāo)識,去查找每一個驅(qū)動程序的標(biāo)識對應(yīng)的驅(qū)動程序,由于驅(qū)動程序標(biāo)識組合也越來越多,因此,存在耗時較長、加載效率較低的缺陷,本發(fā)明實施例中,確定嵌入式設(shè)備包含的器件當(dāng)前對應(yīng)的型號標(biāo)識;器件為待加載驅(qū)動程序的器件;查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;將查找到的驅(qū)動程序加載至嵌入式設(shè)備的內(nèi)存,控制鏈接至嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)ζ骷M(jìn)行驅(qū)動,在該方案中,為待加載驅(qū)動程序的器件加載驅(qū)動程序時,根據(jù)該待加載驅(qū)動程序的器件的型號標(biāo)識去查找相關(guān)聯(lián)的驅(qū)動程序,進(jìn)而將該相關(guān)聯(lián)的驅(qū)動程序進(jìn)行加載即可,不需要生成多個驅(qū)動程序標(biāo)識組合,不需要去多個驅(qū)動程序標(biāo)識組合中去查找,也因此,降低了所消耗的時間,提高了加載效率。【專利附圖】【附圖說明】[0071]圖1A為本發(fā)明實施例中加載驅(qū)動程序的流程圖;[0072]圖1B為本發(fā)明實施例中生成最小運行系統(tǒng)鏡像的示意圖;[0073]圖1C為本發(fā)明實施例中驅(qū)動程序編譯為預(yù)設(shè)格式的文件的示意圖;[0074]圖1D為本發(fā)明實施例中加載的實現(xiàn)示意圖;[0075]圖2為本發(fā)明實施例中加載驅(qū)動程序的實施例;[0076]圖3為本發(fā)明實施例中嵌入式設(shè)備的功能結(jié)構(gòu)示意圖;[0077]圖4為本發(fā)明實施例中嵌入式設(shè)備的實體裝置結(jié)構(gòu)示意圖。【具體實施方式】[0078]使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。[0079]本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另夕卜,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。[0080]在實際應(yīng)用中,一個嵌入式設(shè)備通常包括多個器件,比如顯示器、傳感器、處理器、攝像頭等等,每一個器件在運行之前,都需要加載驅(qū)動程序,因此,本發(fā)明實施例中,提供一種加載驅(qū)動程序的方法,該方法中:確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識;器件為待加載驅(qū)動程序的器件;查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;將查找到的驅(qū)動程序加載至嵌入式設(shè)備的內(nèi)存,并控制加載至嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)ζ骷M(jìn)行驅(qū)動,在該方案中,為待加載驅(qū)動程序的器件加載驅(qū)動程序時,根據(jù)該待加載驅(qū)動程序的器件的型號標(biāo)識去查找相關(guān)聯(lián)的驅(qū)動程序,進(jìn)而將該相關(guān)聯(lián)的驅(qū)動程序進(jìn)行加載即可,不需要去多個器件的驅(qū)動程序的組合中去查找,也不需要生成多個器件的驅(qū)動程序?qū)?yīng)的標(biāo)識的組合,因此,降低了所消耗的時間,提高了加載效率。[0081]下面結(jié)合附圖對本發(fā)明優(yōu)選的實施方式進(jìn)行詳細(xì)說明。[0082]參閱圖1A所示,本發(fā)明實施例中提供一種加載驅(qū)動程序的方法,該方法的具體過程如下:[0083]步驟100:確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識;器件為待加載驅(qū)動程序的器件;[0084]步驟110:查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;[0085]步驟120:將查找到的驅(qū)動程序加載至嵌入式設(shè)備的內(nèi)存,并控制加載至嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)ζ骷M(jìn)行驅(qū)動。[0086]本發(fā)明實施例中,步驟100-步驟120的方案的觸發(fā)條件有多種,例如,在接收到加載驅(qū)動程序的指示時,開始執(zhí)行步驟100-步驟120,當(dāng)然,在實際應(yīng)用中,還有其他觸發(fā)條件,在此不再進(jìn)行詳述。[0087]本發(fā)明實施例中,接收到的加載驅(qū)動程序的指示有多種,例如,嵌入式設(shè)備初始化的指示可以作為加載驅(qū)動程序的指示,還例如,檢測到嵌入式設(shè)備插入外圍設(shè)備時,可以將檢測信息作為加載驅(qū)動程序的指示,當(dāng)然,在實際應(yīng)用中,還有多種其他形式,在此不再進(jìn)行詳述。[0088]本發(fā)明實施例中,型號標(biāo)識用于唯一標(biāo)識由某一廠家生產(chǎn)的同一種器件,不同廠家生產(chǎn)同類型器件由不同的型號標(biāo)識來區(qū)分,即型號標(biāo)識用于表征某一器件由某一廠家生產(chǎn),例如,型號標(biāo)識1:A10376BZH,用于表征陀螺儀由XX廠家生產(chǎn);型號標(biāo)識2:B10376ASD,用于表征重力傳感器由LLL廠家生產(chǎn),一般地,型號標(biāo)識的前兩位用于標(biāo)識器件,型號標(biāo)識的后三位用于表示廠家,型號標(biāo)識的其他位可以標(biāo)識器件的生產(chǎn)批次等,可以隨著應(yīng)用場景的不同而進(jìn)行變化,在此不再進(jìn)行詳述,同理,型號標(biāo)識也可以隨著應(yīng)用場景的不同而進(jìn)行變化,在此不再進(jìn)行詳述。[0089]本發(fā)明實施例中,查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序的方式有多種,可選的,可以采用如下形式:[0090]通過嵌入式設(shè)備的最小運行系統(tǒng)鏡像查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,其中,最小運行系統(tǒng)鏡像用于嵌入式設(shè)備的啟動、業(yè)務(wù)功能的運行,及嵌入式設(shè)備所包含的器件的驅(qū)動程序的加載,最小運行系統(tǒng)鏡像只包括BSP(BoardSupportPackage,板級支持包)、操作系統(tǒng)與應(yīng)用層軟件。[0091]需要說明的是,現(xiàn)在技術(shù)中的操作系統(tǒng)鏡像通常包括BSP、操作系統(tǒng)與應(yīng)用層軟件,除此之外還包括器件的驅(qū)動程序,因此,現(xiàn)有技術(shù)中,對器件的驅(qū)動程序的加載僅僅指的是將驅(qū)動程序的初始化,而本發(fā)明實施例中,最小運行系統(tǒng)鏡像只包括BSP、操作系統(tǒng)與應(yīng)用層軟件,因此,要先將驅(qū)動程序加載至嵌入式設(shè)備的內(nèi)存,然后,再對驅(qū)動程序的初始化,因此,本發(fā)明實施例中的最小運行系統(tǒng)鏡像的功能與現(xiàn)在技術(shù)中的操作系統(tǒng)鏡像的功能相比,多了驅(qū)動程序加載的功能。[0092]當(dāng)然,在實際應(yīng)用中,還可以通過其他方式實現(xiàn)查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,在此不再進(jìn)行一一詳述。[0093]此時,在查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前,還包括如下操作:[0094]生成嵌入式設(shè)備的最小運行系統(tǒng)鏡像。[0095]本發(fā)明實施例中,在生成嵌入式設(shè)備的最小運行系統(tǒng)鏡像時,要通過二次編譯來實現(xiàn),具體可以采用如下方式,如圖1B所示:[0096]將基于嵌入式設(shè)備的業(yè)務(wù)功能開發(fā)的原始代碼編譯生成初始最小運行系統(tǒng)鏡像,初始最小運行系統(tǒng)鏡像包括可執(zhí)行文件及可執(zhí)行連接格式的文件;原始代碼是用于實現(xiàn)嵌入式設(shè)備的業(yè)務(wù)功能;[0097]從初始最小運行系統(tǒng)鏡像所包括的可執(zhí)行連接格式的文件中抽取符號表;[0098]將符號表生成C文件,并將生成的C文件添加至原始代碼;[0099]將添加C文件后的原始代碼進(jìn)行編譯,得到嵌入式設(shè)備的最小運行系統(tǒng)鏡像。[0100]本發(fā)明實施例中,為了使第二次編譯后得到的最小運行系統(tǒng)鏡像中包括的函數(shù)和全局變量的執(zhí)行地址,與第一次編譯生成的最小運行系統(tǒng)鏡像中的符號表地址完全匹配,在第二次編譯過程中,在鏈接腳本段劃分的尾部新增兩個段空間,用來存放符號表中生成的data和字符串。[0101]在實際應(yīng)用中,查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前,應(yīng)該先存儲與待加載驅(qū)動程序的器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,因此,本發(fā)明實施例中,在查找與器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前之前,還包括如下操作:[0102]確定與器件同類型的器件分別的型號標(biāo)識,以及同類型的器件分別對應(yīng)的驅(qū)動程序;其中,同類型的器件為與器件具有相同屬性或功能的器件;[0103]存儲確定出的每一個與器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系。[0104]本發(fā)明實施例中,同類型的器件可以有多種形式,例如,可以是由不同廠家生產(chǎn)的具有相同功能或?qū)傩缘钠骷?,比如由A、B、C廠家分別生產(chǎn)的顯示屏,這三個廠家分別生產(chǎn)的顯示屏為同類型的器件,或者,由A、B、C廠家分別生產(chǎn)的重力傳感器,這三個廠家分別生產(chǎn)的重力傳感器為同類型的器件;又例如,也可以是同一廠家生產(chǎn)的不同批次或版本的具有相同功能或?qū)傩云骷?,比如由A廠家生產(chǎn)的500W像素的攝像頭、800W像素的攝像頭,這兩類攝像頭也為同類型的器件。[0105]例如:顯示屏S由三個生產(chǎn)廠家,其中,來自于廠家A的顯示屏S對應(yīng)的型號標(biāo)識為型號標(biāo)識1,對應(yīng)驅(qū)動程序I;來自于廠家B的顯示屏S對應(yīng)的型號標(biāo)識為型號標(biāo)識2,對應(yīng)驅(qū)動程序2;來自于廠家C的顯示屏S對應(yīng)的型號標(biāo)識為型號標(biāo)識3,對應(yīng)驅(qū)動程序3,那么,顯示屏S對應(yīng)于三個型號標(biāo)識,且每一個型號標(biāo)識對應(yīng)于一個驅(qū)動程序,那么針對于顯不屏S,記錄二條關(guān)聯(lián)關(guān)系:第一條關(guān)聯(lián)關(guān)系:型號標(biāo)識I與驅(qū)動程序I的關(guān)聯(lián)關(guān)系、第二條關(guān)聯(lián)關(guān)系:型號標(biāo)識2與驅(qū)動程序2的關(guān)聯(lián)關(guān)系、第三條關(guān)聯(lián)關(guān)系:型號標(biāo)識3與驅(qū)動程序3的關(guān)聯(lián)關(guān)系。[0106]本發(fā)明實施例中,存儲確定出的每一個與器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系的方式有多種,可選的,可以采用如下方式:[0107]將每一個同類型器件的驅(qū)動程序編譯為預(yù)設(shè)格式的文件,預(yù)設(shè)格式的文件具有重定位的屬性;[0108]將預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲,并獲取存儲預(yù)設(shè)格式的文件的邏輯地址;[0109]存儲任意一型號標(biāo)識與獲取得到的邏輯地址的對應(yīng)關(guān)系。[0110]本發(fā)明實施例中,預(yù)設(shè)格式的文件有多種,可選的,可以為ELF(ExecutableandLinkableFormat,可執(zhí)行連接格式)的文件,此時,預(yù)設(shè)格式的文件的后綴為.0,當(dāng)然,在實際應(yīng)用中,隨著應(yīng)用場景的不同,預(yù)設(shè)格式的文件還可以為其他形式,在此不再進(jìn)行詳述。[0111]本發(fā)明實施例中,將每一個同類型器件的驅(qū)動程序編譯為預(yù)設(shè)格式的文件的方式有多種,將驅(qū)動程序中包括的每一個后綴為.C的文件通過編譯命令編譯成預(yù)設(shè)格式的文件,再將編譯出的各個預(yù)設(shè)格式的文件,通過鏈接命令,鏈接成一個預(yù)設(shè)格式的文件,其中,該預(yù)設(shè)格式的文件可以為ELF文件。[0112]如圖1C所示,一個驅(qū)動程序中包括η個文件,在存儲之前每一個文件的后綴為.C,先通過編譯命令將驅(qū)動程序中的每一個后綴為.c的文件編譯成后綴為.ο的文件,再將編譯出的各個后綴為.0的文件,通過鏈接命令,鏈接成一個后綴為.0的為ELF文件格式,該ELF文件格式的文件具有重定位的屬性。[0113]本發(fā)明實施例中,可以通過如下方式將預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲,例如,通過打包工具imagebuild將驅(qū)動程序、和布局描述打包生成一個大鏡像,進(jìn)而將生成的大鏡像燒入Flash,當(dāng)然,還可以將最小運行系統(tǒng)鏡像、驅(qū)動程序、和布局描述打包生成一個大鏡像,此時,包括最小運行系統(tǒng)鏡像、驅(qū)動程序、和布局描述的大鏡像的數(shù)據(jù)存儲結(jié)構(gòu)描述格式如表1所不:[0114]表1大鏡像的數(shù)據(jù)存儲結(jié)構(gòu)描述[0115]【權(quán)利要求】1.一種加載驅(qū)動程序的方法,其特征在于,包括:確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識;所述器件為待加載驅(qū)動程序的器件;查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,并控制加載至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)λ銎骷M(jìn)行驅(qū)動。2.如權(quán)利要求1所述的方法,其特征在于,查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,具體包括:通過所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,其中,所述最小運行系統(tǒng)鏡像用于所述嵌入式設(shè)備的啟動、業(yè)務(wù)功能的運行,及所述嵌入式設(shè)備所包含的器件的驅(qū)動程序的加載。3.如權(quán)利要求2所述的方法,其特征在于,在查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前,還包括:生成所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。4.如權(quán)利要求3所述的方法,其特征在于,生成所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像,包括:將基于所述嵌入式設(shè)備的業(yè)務(wù)功能開發(fā)的原始代碼編譯生成初始最小運行系統(tǒng)鏡像,所述初始最小運行系統(tǒng)鏡像包括可執(zhí)行文件及可執(zhí)行連接格式的文件;所述原始代碼是用于實現(xiàn)所述嵌入式設(shè)備的業(yè)務(wù)功能;從所述初始最小運行系統(tǒng)鏡像所包括的可執(zhí)行連接格式的文件中抽取符號表;根據(jù)所述符號表生成C文件,并將生成的C文件添加至所述原始代碼;將添加所述C文件后的所述原始代碼進(jìn)行編譯,得到所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。5.如權(quán)利要求1-4任一項所述的方法,其特征在于,在查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序之前,還包括:確定與所述器件同類型的器件分別的型號標(biāo)識,以及所述同類型的器件分別對應(yīng)的驅(qū)動程序;其中,所述同類型的器件為與所述器件具有相同屬性或功能的器件;存儲確定出的每一個與所述器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系。6.如權(quán)利要求5所述的方法,其特征在于,存儲確定出的每一個與所述器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系,具體包括:將每一個所述同類型器件的驅(qū)動程序編譯為預(yù)設(shè)格式的文件,所述預(yù)設(shè)格式的文件具有重定位的屬性;將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲,并獲取存儲所述預(yù)設(shè)格式的文件的邏輯地址;存儲所述任意一型號標(biāo)識與獲取得到的邏輯地址的對應(yīng)關(guān)系。7.如權(quán)利要求6所述的方法,其特征在于,所述預(yù)設(shè)格式的文件的地址字段為初始預(yù)設(shè)值;在將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲之后,所述方法還包括:將所述預(yù)設(shè)格式的文件的地址字段中的所述初始預(yù)設(shè)值更改為所述邏輯地址。8.如權(quán)利要求6或7所述的方法,其特征在于,查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,具體包括:從存儲的關(guān)聯(lián)關(guān)系中確定與所述器件對應(yīng)的型號標(biāo)識對應(yīng)的邏輯地址;將確定的邏輯地址中存儲的預(yù)設(shè)格式的文件,作為與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序。9.如權(quán)利要求7或8所述的方法,其特征在于,將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,具體包括:確定所述驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存后的物理地址;將所述驅(qū)動程序中的地址字段從邏輯地址修改為所述物理地址。10.如權(quán)利要求2-任一項所述的方法,其特征在于,將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,包括:采用動態(tài)加載的方式通過所述最小運行系統(tǒng)鏡像將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存。11.如權(quán)利要求10所述的方法,其特征在于,采用動態(tài)加載的方式通過所述最小運行系統(tǒng)鏡像將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,具體包括:利用所述最小運行系統(tǒng)鏡像中的函數(shù)和全局變量,將查找的驅(qū)動程序拷貝至所述嵌入式設(shè)備的內(nèi)存;基于所述最小運行系統(tǒng)鏡像采用函數(shù)指針的形式,調(diào)用所述查找到的驅(qū)動程序中的接口函數(shù),將拷貝至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序進(jìn)行鏈接。12.—種加載驅(qū)動程序的嵌入式設(shè)備,其特征在于,包括:確定單元,用于確定嵌入式設(shè)備包含的器件對應(yīng)的型號標(biāo)識;所述器件為待加載驅(qū)動程序的器件;查找單元,用于查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序;加載單元,用于將查找到的驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存,并控制加載至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序?qū)λ銎骷M(jìn)行驅(qū)動。13.如權(quán)利要求12所述的嵌入式設(shè)備,其特征在于,所述查找單元具體用于:通過所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像查找與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序,其中,所述最小運行系統(tǒng)鏡像用于所述嵌入式設(shè)備的啟動、業(yè)務(wù)功能的運行,及所述嵌入式設(shè)備所包含的器件的驅(qū)動程序的加載。14.如權(quán)利要求13所述的嵌入式設(shè)備,其特征在于,還包括生成單元,所述生成單元用于生成所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。15.如權(quán)利要求14所述的嵌入式設(shè)備,其特征在于,所述生成單元包括:編譯模塊,用于將基于所述嵌入式設(shè)備的業(yè)務(wù)功能開發(fā)的原始代碼編譯生成初始最小運行系統(tǒng)鏡像,所述初始最小運行系統(tǒng)鏡像包括可執(zhí)行文件及可執(zhí)行連接格式的文件;所述原始代碼是用于實現(xiàn)所述嵌入式設(shè)備的業(yè)務(wù)功能;抽取模塊,用于從所述初始最小運行系統(tǒng)鏡像所包括的可執(zhí)行連接格式的文件中抽取符號表;根據(jù)所述符號表生成C文件,并將生成的C文件添加至所述原始代碼;所述編譯模塊還用于,將添加所述C文件后的所述原始代碼進(jìn)行編譯,得到所述嵌入式設(shè)備的最小運行系統(tǒng)鏡像。16.如權(quán)利要求12-15任一項所述的嵌入式設(shè)備,其特征在于,還包括存儲單元,所述存儲單元具體用于:確定與所述器件同類型的器件分別的型號標(biāo)識,以及所述同類型的器件分別對應(yīng)的驅(qū)動程序;其中,所述同類型的器件為與所述器件具有相同屬性或功能的器件;存儲確定出的每一個與所述器件同類型的器件的型號標(biāo)識與該同類型器件的驅(qū)動程序的關(guān)聯(lián)關(guān)系。17.如權(quán)利要求16所述的嵌入式設(shè)備,其特征在于,所述存儲單元具體用于:將每一個所述同類型器件的驅(qū)動程序編譯為預(yù)設(shè)格式的文件,所述預(yù)設(shè)格式的文件具有重定位的屬性;將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲,并獲取存儲所述預(yù)設(shè)格式的文件的邏輯地址;存儲所述任意一型號標(biāo)識與獲取得到的邏輯地址的對應(yīng)關(guān)系。18.如權(quán)利要求17所述的嵌入式設(shè)備,其特征在于,所述預(yù)設(shè)格式的文件的地址字段為初始預(yù)設(shè)值,所述存儲單元還用于:在將所述預(yù)設(shè)格式的文件,按照預(yù)設(shè)規(guī)則進(jìn)行存儲之后,將所述預(yù)設(shè)格式的文件的地址字段中的所述初始預(yù)設(shè)值更改為所述邏輯地址。19.如權(quán)利要求17或18所述的嵌入式設(shè)備,其特征在于,所述查找單元具體用于:從存儲的關(guān)聯(lián)關(guān)系中確定與所述器件對應(yīng)的型號標(biāo)識對應(yīng)的邏輯地址;并將確定的邏輯地址中存儲的預(yù)設(shè)格式的文件,作為與所述器件對應(yīng)的型號標(biāo)識相關(guān)聯(lián)的驅(qū)動程序。20.如權(quán)利要求18或19所述的嵌入式設(shè)備,其特征在于,所述加載單元具體用于:確定所述驅(qū)動程序加載至所述嵌入式設(shè)備的內(nèi)存后的物理地址,并將所述驅(qū)動程序中的地址字段從邏輯地址修改為所述物理地址。21.如權(quán)利要求13-20任一項所述的嵌入式設(shè)備,其特征在于,所述加載單元具體用于:利用所述最小運行系統(tǒng)鏡像中的函數(shù)和全局變量,將查找的驅(qū)動程序拷貝至所述嵌入式設(shè)備的內(nèi)存;基于所述最小運行系統(tǒng)鏡像采用函數(shù)指針的形式,調(diào)用所述查找到的驅(qū)動程序中的接口函數(shù),將拷貝至所述嵌入式設(shè)備的內(nèi)存的驅(qū)動程序進(jìn)行鏈接?!疚臋n編號】G06F9/445GK103942078SQ201410182979【公開日】2014年7月23日申請日期:2014年4月30日優(yōu)先權(quán)日:2014年4月30日【發(fā)明者】王大能,鐘光華,袁方申請人:華為技術(shù)有限公司