本發(fā)明涉及驅(qū)動技術(shù)領(lǐng)域,特別涉及一種驅(qū)動自適應(yīng)加載系統(tǒng)。
背景技術(shù):
目前,公知的驅(qū)動加載有以下兩種:1、靜態(tài)加載,即把驅(qū)動程序直接編譯進(jìn)內(nèi)核。2、動態(tài)加載,即把驅(qū)動和內(nèi)核獨(dú)立開來,在需要的時(shí)候手動加載驅(qū)動到內(nèi)核中去。但是,目前這兩種方法都有各自的缺陷和不足。
靜態(tài)加載的方法有以下幾點(diǎn)不足:1)調(diào)試不便,每次進(jìn)行驅(qū)動修改都需要重新編譯和下載內(nèi)核,效率低下。2)若靜態(tài)加載的驅(qū)動較多,會導(dǎo)致內(nèi)核容量很大,浪費(fèi)存儲空間。3)僅支持已知器件,對未知的新型器件不支持,老設(shè)備無法對新開發(fā)的器件做到支持。
動態(tài)加載雖然克服了靜態(tài)加載的以上幾點(diǎn)的不足,但本身也有缺陷,具體有如下幾點(diǎn):1)對于批量化生產(chǎn),增加了操作步驟,易增加出錯(cuò)率,需要工程師現(xiàn)場維護(hù)。2)若器件型號較多,驅(qū)動版本與操作系統(tǒng)版本維護(hù)困難。3)嵌入式領(lǐng)域接口子卡和工作總線綁定緊密,外設(shè)驅(qū)動都是和固定總線編碼綁定,無法跨廠家編寫。4)僅對現(xiàn)有設(shè)備提供支持,對將來發(fā)展的新器件不能形成支持。驅(qū)動的獲取和上傳不便利,嵌入式領(lǐng)域很多時(shí)候沒有多余的通訊接口,即使編寫了對應(yīng)得外設(shè)驅(qū)動,也很難向系統(tǒng)上傳。5)現(xiàn)在的嵌入式單板普遍存在設(shè)備不支持熱插拔,即跟換對應(yīng)的外設(shè)類型后,需要重啟嵌入式單板,那么對一些不能重啟的關(guān)鍵設(shè)備來說,是沒有辦法進(jìn)行單板接口的擴(kuò)展和更換。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的旨在至少解決所述技術(shù)缺陷之一。
為此,本發(fā)明的目的在于提出一種驅(qū)動自適應(yīng)加載系統(tǒng),不僅減少了驅(qū)動手動加載的步驟,而且能夠支持新型器件驅(qū)動的動態(tài)加載,且支持熱插拔和驅(qū)動自適應(yīng),解決設(shè)備驅(qū)動和總線強(qiáng)相關(guān)的問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種驅(qū)動自適應(yīng)加載系統(tǒng),包括:mcu主板、多個(gè)子模塊、設(shè)備仲裁器、譯碼器,且每個(gè)子模塊都包括存儲器和功能器件;
所述mcu主板通過數(shù)據(jù)線與每個(gè)子模塊內(nèi)的存儲器和功能器件連接,所述mcu主板還分別連接設(shè)備仲裁器、譯碼器,所述設(shè)備仲裁器通過預(yù)設(shè)總線分別連接每個(gè)子模塊,所述譯碼器通過本地總線分別連接每個(gè)子模塊的存儲器和功能器件,其中存儲器內(nèi)部至少存放當(dāng)前器件的驅(qū)動程序、設(shè)備識別碼、版本碼、設(shè)備類型;其中,mcu主板內(nèi)部設(shè)有可支持熱插拔的總線系統(tǒng);
當(dāng)子模塊插入預(yù)設(shè)總線的時(shí)候,設(shè)備仲裁器以中斷方式通知mcu主板,mcu主板通過設(shè)備仲裁器讀取到新插入子模塊的地址然后運(yùn)算得到該子模塊的存儲器地址,然后mcu主板通過譯碼器,選中新插入子模塊的存儲器地址,按照該存儲器地址mcu主板通過數(shù)據(jù)線讀取存儲器的內(nèi)容,接著判斷所讀取的內(nèi)容里是否存在驅(qū)動,如果不存在,則繼續(xù)讀取后續(xù)存儲器的驅(qū)動內(nèi)容,直到讀取到驅(qū)動為止,mcu主板讀取驅(qū)動完成后,使用讀取驅(qū)動的總線作為參數(shù)加載新插入子模塊攜帶的驅(qū)動,完成設(shè)備的啟動。
進(jìn)一步的,所述mcu主板支持熱插的步驟如下:
步驟s11,mcu主板在內(nèi)核態(tài)下有一專門檢測總線管腳變化的線程;
步驟s12,當(dāng)檢測到變化后,mcu主板讀取總線設(shè)備類型;
步驟s13,讀取到設(shè)備類型后,在mcu主板的內(nèi)核態(tài)調(diào)用系統(tǒng)對應(yīng)的驅(qū)動程序,在系統(tǒng)上創(chuàng)建當(dāng)前的設(shè)備;
步驟s14,完成設(shè)備驅(qū)動,內(nèi)核熱插拔線程會發(fā)送模塊插入信號給關(guān)注的應(yīng)用進(jìn)程;
步驟s15,應(yīng)用進(jìn)程收到子模塊插入信號后,即可使用新插入的子模塊,從而完成設(shè)備的熱插接入。
進(jìn)一步的,所述mcu主板支持熱拔的步驟如下:
步驟s21,mcu主板使用驅(qū)動的應(yīng)用程序,上電的時(shí)候會注冊一個(gè)該驅(qū)動的插拔事件;
步驟s22,當(dāng)子模塊被拔掉的時(shí)候,內(nèi)核熱插拔線程通過檢測總線管腳會感知到;
步驟s23,當(dāng)感知到模塊被拔走后,內(nèi)核熱插拔線程會發(fā)送模塊拔出事件信號給注冊的應(yīng)用線程;
步驟s24,應(yīng)用線程收到模塊拔走信號,然后關(guān)閉對子模塊的使用,從而完成設(shè)備的熱拔隔離。
進(jìn)一步的,所述mcu主板是通過子模塊的存儲使能端與功能使能端來決定當(dāng)前mcu主板是和哪個(gè)器件進(jìn)行通信的;
mcu主板通過存儲使能端能夠行使設(shè)備功能碼的讀取和驅(qū)動的讀取功能,當(dāng)設(shè)備識別完成,mcu主板能夠通過功能使能端與功能器件進(jìn)行通信,并在驅(qū)動程序的工作下完成器件的功能。
進(jìn)一步的,所述mcu主板讀取子模塊的存儲器內(nèi)存儲的驅(qū)動內(nèi)容的步驟如下:
步驟s31,mcu主板讀取應(yīng)用腳本編號和應(yīng)用腳本長度;
步驟s32,然后從存儲器中讀取應(yīng)用執(zhí)行腳本內(nèi)容;
步驟s33,將應(yīng)用腳本編號和系統(tǒng)碼結(jié)合保存為應(yīng)用腳本文件;
步驟s34,然后根據(jù)存儲字節(jié)頭信息獲取應(yīng)用程序編號和應(yīng)用程序長度;
步驟s35,使用應(yīng)用程序編號和系統(tǒng)碼結(jié)合保存應(yīng)用程序文件;
步驟s36,然后根據(jù)生產(chǎn)的應(yīng)用程序名稱,修改應(yīng)用執(zhí)行腳本里面的執(zhí)行程序名稱;
步驟s37,然后執(zhí)行應(yīng)用執(zhí)行腳本,完成應(yīng)用程序啟動;
步驟s38,應(yīng)用程序啟動,實(shí)現(xiàn)自動驅(qū)動加載。
進(jìn)一步的,所述存儲器內(nèi)至少存儲應(yīng)用程序、應(yīng)用腳本、驅(qū)動內(nèi)容、保留內(nèi)容、應(yīng)用程序編號、應(yīng)用程序長度、應(yīng)用腳本編號、應(yīng)用腳本長度、存儲器存儲驅(qū)動的內(nèi)容長度、驅(qū)動版本碼、子設(shè)備類型、設(shè)備類型。
進(jìn)一步的,所述mcu主板讀取子模塊的存儲器內(nèi)存儲的驅(qū)動內(nèi)容時(shí)還包括掉電自動恢復(fù)程序,掉電自動恢復(fù)程序包括以下步驟:
判斷首次獲取驅(qū)動是否成功,如果不成功,則不登記驅(qū)動完整碼,如果成功則在操作系統(tǒng)登記完整碼;
上電發(fā)現(xiàn)驅(qū)動不需要更新后,檢查登記碼是否完整,如果完整則繼續(xù)工作,如果不完整則啟動驅(qū)動重新下載流程,如果獲取驅(qū)動成功則在操作系統(tǒng)登記完整碼,如果獲取驅(qū)動不成功則不登記驅(qū)動完整碼。
進(jìn)一步的,所述存儲器內(nèi)還存儲系統(tǒng)安全密鑰,mcu主板在讀取驅(qū)動前會讀取系統(tǒng)安全密鑰,然后由mcu主板解析該系統(tǒng)安全密鑰,如果發(fā)現(xiàn)系統(tǒng)安全密鑰不合法,則不繼續(xù)下載驅(qū)動及其后續(xù)程序,如果發(fā)現(xiàn)系統(tǒng)安全密鑰合法,則繼續(xù)下載驅(qū)動及其后續(xù)程序。
本發(fā)明解決了驅(qū)動動態(tài)加載問題、驅(qū)動自適應(yīng)問題、設(shè)備和總線綁定問題。工作時(shí),當(dāng)外部接口設(shè)備通過本地總線和mcu主板進(jìn)行連接后mcu主板通過掃描或者等待中斷的方法獲取通知,mcu主板首先會發(fā)送命令獲取外部器件存儲器中的功能碼,如果對應(yīng)功能碼的驅(qū)動已存在于系統(tǒng)中,選擇當(dāng)前讀取功能碼的總線信息作為參數(shù),運(yùn)行該功能碼的驅(qū)動來驅(qū)動該器件,若沒有匹配到對應(yīng)的驅(qū)動,則從該器件的存儲器中讀取驅(qū)動程序,并加載到系統(tǒng)內(nèi)核中,從而驅(qū)動該器件。通過這種驅(qū)動加載方案可省去動態(tài)加載中的手動加載這一步驟,并且提供了對新型未知設(shè)備驅(qū)動的動態(tài)加載支持,而且支持熱插拔,用戶增加或者更換接口設(shè)備不需要重啟,另外讓設(shè)備驅(qū)動脫離了總線的綁定,用戶開發(fā)標(biāo)準(zhǔn)的設(shè)備流程,總線信息作為參數(shù)來動態(tài)的控制設(shè)備驅(qū)動的讀寫。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明的結(jié)構(gòu)連接框圖;
圖2為本發(fā)明的驅(qū)動自適應(yīng)加載流程圖;
圖3為本發(fā)明的mcu主板支持熱插的工作流程圖;
圖4為本發(fā)明的mcu主板支持熱拔的工作流程圖;
圖5為本發(fā)明的mcu主板讀取子模塊的存儲器內(nèi)存儲的驅(qū)動內(nèi)容工作流程圖;
圖6為本發(fā)明的存儲器內(nèi)存儲的數(shù)據(jù)示意圖;
圖7為本發(fā)明的掉電安全保護(hù)工作流程圖;
圖8為本發(fā)明的驅(qū)動安全認(rèn)證實(shí)現(xiàn)工作流程圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
本發(fā)明提供一種驅(qū)動自適應(yīng)加載系統(tǒng),參考附圖1-8所示,包括:mcu主板1、多個(gè)子模塊4、設(shè)備仲裁器2、譯碼器3,且每個(gè)子模塊4都包括存儲器41和功能器件42。
如圖1所示,mcu主板1通過數(shù)據(jù)線與每個(gè)子模塊4內(nèi)的存儲器41和功能器件42連接,mcu主板1還分別連接設(shè)備仲裁器2、譯碼器3,設(shè)備仲裁器1通過預(yù)設(shè)總線分別連接每個(gè)子模塊4,譯碼器3通過本地總線分別連接每個(gè)子模塊4的存儲器41和功能器件42,其中存儲器41內(nèi)部至少存放當(dāng)前器件的驅(qū)動程序、設(shè)備識別碼、版本碼、設(shè)備類型;其中,mcu主板內(nèi)部設(shè)有可支持熱插拔的總線系統(tǒng)。
如圖2所示為驅(qū)動自適應(yīng)加載流程圖,當(dāng)子模塊41插入預(yù)設(shè)總線的時(shí)候,設(shè)備仲裁器2以中斷方式通知mcu主板1,mcu主板1通過設(shè)備仲裁器2讀取到新插入子模塊的地址然后運(yùn)算得到該子模塊41的存儲器地址,然后mcu主板1通過譯碼器2,選中新插入子模塊的存儲器地址,按照該存儲器地址mcu主板1通過數(shù)據(jù)線讀取存儲器的內(nèi)容,接著判斷所讀取的內(nèi)容里是否存在驅(qū)動,如果不存在,則繼續(xù)讀取后續(xù)存儲器的驅(qū)動內(nèi)容,直到讀取到驅(qū)動為止,mcu主板1讀取驅(qū)動完成后,使用讀取驅(qū)動的總線作為參數(shù)加載新插入子模塊攜帶的驅(qū)動,然后判斷系統(tǒng)存在的版本是否是最新的,如果是則監(jiān)測是否有相關(guān)驅(qū)動程序運(yùn)行,如果沒有則加載驅(qū)動程序,如果有則監(jiān)測運(yùn)行相關(guān)驅(qū)動版本是否是最新的,如果不是則停止老的驅(qū)動程序,啟動新的驅(qū)動程序,最后完成設(shè)備的啟動,如圖2所示。
mcu主板不綁定總線的實(shí)現(xiàn)驅(qū)動加載的具體方法如下:
在一般的嵌入式大型操作系統(tǒng)里面,動態(tài)驅(qū)動加載編寫程序分成2個(gè)部分,一:總線驅(qū)動的安裝,二:總線上的設(shè)備創(chuàng)建,這兩部分代碼都是直接使用編碼直接耦合實(shí)現(xiàn)的。
本發(fā)明的不綁定總線的實(shí)現(xiàn)驅(qū)動加載是基于sylixos的設(shè)備驅(qū)動模型來實(shí)現(xiàn)的,在sylixos操作系統(tǒng)中,動態(tài)驅(qū)動加載編寫程序分成4個(gè)部分:一:總線驅(qū)動的編寫,二:總線設(shè)備的創(chuàng)建,三:總線上的設(shè)備驅(qū)動編寫,四:總線上的設(shè)備創(chuàng)建。
比如spi抽象為總線設(shè)備為“/bus/spi/0”,總線上的掛載的設(shè)備,它的驅(qū)動里面有參數(shù)可以填寫是基于那個(gè)總線設(shè)備(比如“/bus/spi/0”,表示當(dāng)前設(shè)備是掛載在spi0總線上的)。
在該方案里面當(dāng)前總線作為讀取驅(qū)動的總線,總線設(shè)備名稱是確定的。在編寫子模塊的驅(qū)動時(shí)候,總線名稱可以以變量形式傳入進(jìn)去,在執(zhí)行內(nèi)核模塊加載的時(shí)候帶入總線名稱即可實(shí)現(xiàn)總線設(shè)備和指定總線解除綁定。
在以往的系統(tǒng)中編寫驅(qū)動程序總線和設(shè)備是綁定編寫(原因既有別的操作系統(tǒng)總線沒有抽象成設(shè)備,動態(tài)加載的時(shí)候無法拿到參數(shù)傳入,也有使用習(xí)慣的問題,習(xí)慣設(shè)備與總線一起編寫),所以編寫出來的設(shè)備驅(qū)動只能使用在指定的mcu主板上面。
其中,sylixos是一款由中國人自主設(shè)計(jì)開發(fā)的大型嵌入式硬實(shí)時(shí)操作系統(tǒng)(rtos),支持smp多核,具有豐富的文件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)以及眾多設(shè)備驅(qū)動支持,并提供完善的集成開發(fā)環(huán)境。
mcu主板支持熱插拔也是基于sylixos實(shí)現(xiàn)的,因?yàn)樵诂F(xiàn)有的其他嵌入式系統(tǒng)中,內(nèi)核中沒有一個(gè)內(nèi)核線程用于檢測工業(yè)總線的接口的變化,而驅(qū)動部分代碼必須運(yùn)行在內(nèi)核線程下面。
如圖3所示,mcu主板支持熱插的步驟如下:
步驟s11,mcu主板在內(nèi)核態(tài)下有一專門檢測總線管腳變化的線程;
步驟s12,當(dāng)檢測到變化后,mcu主板讀取總線設(shè)備類型;
步驟s13,讀取到設(shè)備類型后,在mcu主板的內(nèi)核態(tài)調(diào)用系統(tǒng)對應(yīng)的驅(qū)動程序,在系統(tǒng)上創(chuàng)建當(dāng)前的設(shè)備;
步驟s14,完成設(shè)備驅(qū)動,內(nèi)核熱插拔線程會發(fā)送模塊插入信號給關(guān)注的應(yīng)用進(jìn)程;
步驟s15,應(yīng)用進(jìn)程收到子模塊插入信號后,即可使用新插入的子模塊,從而完成設(shè)備的熱插接入。
如圖4所示,mcu主板支持熱拔的步驟如下:
步驟s21,mcu主板使用驅(qū)動的應(yīng)用程序,上電的時(shí)候會注冊一個(gè)該驅(qū)動的插拔事件;
步驟s22,當(dāng)子模塊被拔掉的時(shí)候,內(nèi)核熱插拔線程通過檢測總線管腳會感知到;
步驟s23,當(dāng)感知到模塊被拔走后,內(nèi)核熱插拔線程會發(fā)送模塊拔出事件信號給注冊的應(yīng)用線程;
步驟s24,應(yīng)用線程收到模塊拔走信號,然后關(guān)閉對子模塊的使用,從而完成設(shè)備的熱拔隔離。
傳統(tǒng)的總線是只和功能器件通信,所有驅(qū)動的上傳都是通過另外的通信口進(jìn)行上傳,在該方案中,驅(qū)動存儲器件和功能器件在同一個(gè)子模塊板子上,而本發(fā)明中mcu主板通過驅(qū)動通信接口的復(fù)用實(shí)現(xiàn)驅(qū)動上傳,實(shí)現(xiàn)總線復(fù)用。
具體為,mcu主板是通過子模塊的存儲使能端與功能使能端來決定當(dāng)前mcu主板是和哪個(gè)器件進(jìn)行通信的。
mcu主板通過存儲使能端能夠行使設(shè)備功能碼的讀取和驅(qū)動的讀取功能,當(dāng)設(shè)備識別完成,mcu主板能夠通過功能使能端與功能器件進(jìn)行通信,并在驅(qū)動程序的工作下完成器件的功能。
如圖5所示,mcu主板讀取子模塊的存儲器內(nèi)存儲的驅(qū)動內(nèi)容的步驟如下:
步驟s31,mcu主板讀取應(yīng)用腳本編號和應(yīng)用腳本長度;
步驟s32,然后從存儲器中讀取應(yīng)用執(zhí)行腳本內(nèi)容;
步驟s33,將應(yīng)用腳本編號和系統(tǒng)碼結(jié)合保存為應(yīng)用腳本文件;
步驟s34,然后根據(jù)存儲字節(jié)頭信息獲取應(yīng)用程序編號和應(yīng)用程序長度;
步驟s35,使用應(yīng)用程序編號和系統(tǒng)碼結(jié)合保存應(yīng)用程序文件;
步驟s36,然后根據(jù)生產(chǎn)的應(yīng)用程序名稱,修改應(yīng)用執(zhí)行腳本里面的執(zhí)行程序名稱;
步驟s37,然后執(zhí)行應(yīng)用執(zhí)行腳本,完成應(yīng)用程序啟動;
步驟s38,應(yīng)用程序啟動,實(shí)現(xiàn)自動驅(qū)動加載。
如圖6所示,存儲器內(nèi)至少存儲應(yīng)用程序、應(yīng)用腳本、驅(qū)動內(nèi)容、保留內(nèi)容、應(yīng)用程序編號、應(yīng)用程序長度、應(yīng)用腳本編號、應(yīng)用腳本長度、存儲器存儲驅(qū)動的內(nèi)容長度、驅(qū)動版本碼、子設(shè)備類型、設(shè)備類型。
在從子模塊上獲取驅(qū)動的時(shí)候,需要一個(gè)時(shí)間過程,如果在這個(gè)過程中出現(xiàn)掉電異常,在常規(guī)嵌入式系統(tǒng)中存儲驅(qū)動文件過程中,會導(dǎo)致?lián)p壞文件系統(tǒng),導(dǎo)致系統(tǒng)崩潰。而本發(fā)明的驅(qū)動自適應(yīng)加載系統(tǒng)在獲取驅(qū)動,存儲驅(qū)動的過程中,如果出現(xiàn)掉電情況,只會丟失或者損壞當(dāng)前的驅(qū)動文件,不會損壞其他文件或者文件系統(tǒng),從而保證系統(tǒng)的安全性。
具體為,如圖7所示,mcu主板讀取子模塊的存儲器內(nèi)存儲的驅(qū)動內(nèi)容時(shí)還包括掉電自動恢復(fù)程序,掉電自動恢復(fù)程序包括以下步驟:
判斷首次獲取驅(qū)動是否成功,如果不成功,則不登記驅(qū)動完整碼,如果成功則在操作系統(tǒng)登記完整碼;
上電發(fā)現(xiàn)驅(qū)動不需要更新后,檢查登記碼是否完整,如果完整則繼續(xù)工作,如果不完整則啟動驅(qū)動重新下載流程,如果獲取驅(qū)動成功則在操作系統(tǒng)登記完整碼,如果獲取驅(qū)動不成功則不登記驅(qū)動完整碼。
如圖8所示,存儲器內(nèi)還存儲系統(tǒng)安全密鑰,mcu主板在讀取驅(qū)動前會讀取系統(tǒng)安全密鑰,然后由mcu主板解析該系統(tǒng)安全密鑰,如果發(fā)現(xiàn)系統(tǒng)安全密鑰不合法,則不繼續(xù)下載驅(qū)動及其后續(xù)程序,如果發(fā)現(xiàn)系統(tǒng)安全密鑰合法,則繼續(xù)下載驅(qū)動及其后續(xù)程序,從而保證系統(tǒng)程序的安全性,防止終端被非法注入非法程序,對系統(tǒng)的安全性造成影響。
本發(fā)明解決了驅(qū)動動態(tài)加載問題、驅(qū)動自適應(yīng)問題、設(shè)備和總線綁定問題。工作時(shí),當(dāng)外部接口設(shè)備通過本地總線和mcu主板進(jìn)行連接后mcu主板通過掃描或者等待中斷的方法獲取通知,mcu主板首先會發(fā)送命令獲取外部器件存儲器中的功能碼,如果對應(yīng)功能碼的驅(qū)動已存在于系統(tǒng)中,選擇當(dāng)前讀取功能碼的總線信息作為參數(shù),運(yùn)行該功能碼的驅(qū)動來驅(qū)動該器件,若沒有匹配到對應(yīng)的驅(qū)動,則從該器件的存儲器中讀取驅(qū)動程序,并加載到系統(tǒng)內(nèi)核中,從而驅(qū)動該器件。通過這種驅(qū)動加載方案可省去動態(tài)加載中的手動加載這一步驟,并且提供了對新型未知設(shè)備驅(qū)動的動態(tài)加載支持,而且支持熱插拔,用戶增加或者更換接口設(shè)備不需要重啟,另外讓設(shè)備驅(qū)動脫離了總線的綁定,用戶開發(fā)標(biāo)準(zhǔn)的設(shè)備流程,總線信息作為參數(shù)來動態(tài)的控制設(shè)備驅(qū)動的讀寫。
本發(fā)明的有益效果如下:
1、自動獲取新器件的驅(qū)動,簡化mcu主板和接口設(shè)備的版本維護(hù)關(guān)系。
2、mcu主板可以支持未來開發(fā)的接口設(shè)備,提高mcu主板的利用率,降低因接口不支持導(dǎo)致的mcu主板更新?lián)Q代的成本。
3、驅(qū)動自動獲取支持熱插拔,更換、升級、增加接口設(shè)備,不需要重啟系統(tǒng),增加系統(tǒng)的可靠性。
4、剝離總線和設(shè)備的關(guān)系,使驅(qū)動復(fù)用成為可能,且能增加各個(gè)廠家的協(xié)作。
5、省去手動加載方式,降低因人為錯(cuò)誤導(dǎo)致的系統(tǒng)異常。
6、器件能自動適配自己的驅(qū)動,省去了為了升級驅(qū)動而特地留的調(diào)試通信接口,節(jié)約器件成本。
盡管上面已經(jīng)示出和描述了本發(fā)明的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在不脫離本發(fā)明的原理和宗旨的情況下在本發(fā)明的范圍內(nèi)可以對上述實(shí)施例進(jìn)行變化、修改、替換和變型。本發(fā)明的范圍由所附權(quán)利要求極其等同限定。