專利名稱:基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法
技術(shù)領(lǐng)域:
本發(fā)明屬于程序控制技術(shù)領(lǐng)域,具體地說是一種基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法。
背景技術(shù):
嵌入式系統(tǒng)因?yàn)榭紤]到穩(wěn)定性、可靠性,一般都是封閉的系統(tǒng),一旦需要更新硬件或應(yīng)用軟件就需要重新建立整個(gè)軟件系統(tǒng)。陳衛(wèi)華等在公開的嵌入式操作系統(tǒng)半自動(dòng)升級方案中采用了每次硬件改動(dòng)就從外部寫入硬件驅(qū)動(dòng)和升級標(biāo)記,然后由系統(tǒng)完成升級的方法,但是很多時(shí)候可能只是有限幾種硬件的更換,每次用外部程序?qū)懭敫滦畔⑼耆珱]有必要,而且作為嵌入式操作系統(tǒng)應(yīng)當(dāng)盡量減少以外掛方式向系統(tǒng)寫入數(shù)據(jù),以保證系統(tǒng)的安全性。
發(fā)明內(nèi)容
為克服上述不足,本發(fā)明的目的是提供一種基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法,當(dāng)發(fā)生硬件或軟件更新時(shí),它可以盡可能少地從外界獲取升級信息,盡量在封閉的環(huán)境中完成相應(yīng)的硬件驅(qū)動(dòng)更新和軟件更新。
為完成上述目的,本發(fā)明采用的技術(shù)方案為基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法,其步驟包括(a)在嵌入式系統(tǒng)中劃出一專門區(qū)域做升級保留區(qū),在升級保留區(qū)中保留一張已初始化的可擴(kuò)充的備選驅(qū)動(dòng)表;(b)在升級保留區(qū)存放可升級硬件的驅(qū)動(dòng)信息和說明信息、可升級應(yīng)用程序的版本;(c)在系統(tǒng)內(nèi)集成一個(gè)專門用于升級的能掛接升級保留區(qū)的可執(zhí)行升級程序;(d)當(dāng)需要更新硬件或軟件時(shí),用戶使用該升級程序?qū)τ脩羲x擇的硬件或軟件進(jìn)行更新,如果要更新的硬件是備選驅(qū)動(dòng)表中沒有的,則退出系統(tǒng),直接向系統(tǒng)升級保留區(qū)寫入全新的驅(qū)動(dòng)文件,同時(shí)擴(kuò)充備選驅(qū)動(dòng)表。
需要更新的硬件驅(qū)動(dòng)和軟件必須在其加載前進(jìn)行升級。
升級程序按以下步驟進(jìn)行升級(a)進(jìn)行身份校驗(yàn);(b)若校驗(yàn)通過,則掛接升級保留區(qū)并讀取備選驅(qū)動(dòng)表,否則重啟動(dòng)系統(tǒng);(c)詢問是否升級并顯示結(jié)果供選擇,若升級則按用戶選擇的結(jié)果安裝升級包,并按需要進(jìn)行必要配置文件修改,若不升級則繼續(xù)下一步驟;(d)卸載升級保留區(qū);(e)完成升級,重啟動(dòng)系統(tǒng)。
本發(fā)明使用一套軟件平臺(tái),經(jīng)過簡單選擇配置即可適應(yīng)多個(gè)不同的硬件平臺(tái),它增強(qiáng)了系統(tǒng)的可重用性,在備選驅(qū)動(dòng)表建立比較充分的情況下,所有操作只是在系統(tǒng)內(nèi)部完成,無需任何外部數(shù)據(jù)支持,具有較高的安全保證,同時(shí),備選驅(qū)動(dòng)表的可擴(kuò)展性使得系統(tǒng)擁有對未知硬件的擴(kuò)展接口。
圖1是本發(fā)明備選驅(qū)動(dòng)表的分區(qū)結(jié)構(gòu)圖;圖2是本發(fā)明的升級程序的流程圖;圖3是實(shí)施例操作流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。
以X86嵌入式系統(tǒng)實(shí)現(xiàn)個(gè)人電腦家電化,硬件平臺(tái)基本元素是普通個(gè)人電腦的硬件,但同種類硬件擁有幾個(gè)不同的型號或者類型,這樣排列組合的結(jié)果有數(shù)十種,如果針對每和組合都設(shè)計(jì)一套軟件平臺(tái),顯然開發(fā)和維護(hù)成本過高。
參閱圖1,本發(fā)明在該嵌入式系統(tǒng)中設(shè)有一個(gè)分區(qū)做升級保留區(qū),該升級保留區(qū)在默認(rèn)情況下不掛接。升級保留區(qū)中保留一張已初始化的可擴(kuò)充的備選驅(qū)動(dòng)表,并存放了可升級硬件的驅(qū)動(dòng)信息和說明信息、可升級應(yīng)用程序的版本。
在系統(tǒng)內(nèi)集成一個(gè)專門用于升級的能掛接升級保留區(qū)的可執(zhí)行升級程序,當(dāng)需要更新硬件或軟件時(shí),用戶使用該升級程序?qū)τ脩羲x擇的硬件或軟件進(jìn)行更新,如果要更新的硬件是備選驅(qū)動(dòng)表中沒有的,則退出系統(tǒng),直接向系統(tǒng)升級保留區(qū)寫入全新的驅(qū)動(dòng)文件,同時(shí)擴(kuò)充備選驅(qū)動(dòng)表。
驅(qū)動(dòng)升級程序?yàn)橐蛔址缑娉绦?,在?nèi)核啟動(dòng)后即可以用轉(zhuǎn)換鍵加U鍵呼出。所有需要更新的驅(qū)動(dòng)必須在其加載前進(jìn)行升級。以更新顯卡驅(qū)動(dòng)為例,我們通過啟動(dòng)時(shí)發(fā)送鍵碼在系統(tǒng)啟動(dòng)時(shí)預(yù)置了兩種方式一種是直接啟動(dòng)到操作系統(tǒng),此種顯卡驅(qū)動(dòng)已加載,不能進(jìn)行更新,正常運(yùn)行時(shí)都是這種情況,高級用戶可以啟動(dòng)到字符界面然后手動(dòng)啟動(dòng)操作系統(tǒng),對顯卡驅(qū)動(dòng)的更新需要在這種情況下才能進(jìn)行。同樣的,對任何其他硬件驅(qū)動(dòng)模塊也需要在加載前更新。另一種是呼出驅(qū)動(dòng)升級程序,該程序在高級用戶模式下自動(dòng)掛接上升級保留區(qū),然后它按照備選驅(qū)動(dòng)表的結(jié)構(gòu)分別讀取出當(dāng)前可獲得的備選驅(qū)動(dòng)列表并列表顯示給用戶。
一個(gè)可能的界面為當(dāng)前顯卡和要用的顯卡,想換個(gè)驅(qū)動(dòng)的方法是首先定義驅(qū)動(dòng)的名稱、路徑等,安裝當(dāng)前顯卡驅(qū)動(dòng)包,運(yùn)行附加升級程序,某些硬件需要對相應(yīng)的配置文件進(jìn)行一些關(guān)鍵字的修改,升級驅(qū)動(dòng)程序以當(dāng)前顯卡為參數(shù),修改顯卡驅(qū)動(dòng)配置說明,包括添加段和修改當(dāng)前使用驅(qū)動(dòng)為要用顯卡等,具體硬件各不相同,需要分別給出附加升級程序,完成功能和手工修改配置文件相同。
系統(tǒng)重啟后默認(rèn)進(jìn)入正常應(yīng)用中,驅(qū)動(dòng)更新完成。需要注意的是,所有的驅(qū)動(dòng)包應(yīng)該在實(shí)驗(yàn)平臺(tái)驗(yàn)證無誤后再使用。
如圖2所示,升級程序作為隱藏的應(yīng)用集成在系統(tǒng)中可以由轉(zhuǎn)換鍵加B鍵呼出,其操作流程是先進(jìn)行身份校驗(yàn),若校驗(yàn)通過,則掛接升級保留區(qū)并讀取備選驅(qū)動(dòng)表,詢問是否升級,然后按用戶選擇安裝升級包,并按需要進(jìn)行必要配置文件修改,卸載升級保留區(qū),最后完成升級,重啟動(dòng)系統(tǒng)。若身份校驗(yàn)通不過,則直接啟動(dòng)系統(tǒng)。
下面是一個(gè)實(shí)例1.在X86嵌入式系統(tǒng)中設(shè)立一個(gè)升級保留分區(qū)hda18,其結(jié)構(gòu)如下
其中BackupDriverList.tab是《備選驅(qū)動(dòng)表》Tnt2_nv.rpm是驅(qū)動(dòng)程序包,tnt2_nv.txt是驅(qū)動(dòng)版本說明。
Application1.exe是一個(gè)應(yīng)用程序?!秱溥x驅(qū)動(dòng)表》BackupDriverList.tab的單元結(jié)構(gòu)如下Typedef struct HWInfoUnit{int HWType; //硬件類型 如LX_VGA或APPLICATIONchar HWName[80];//硬件名稱 如tnt2_nv或applicationlchar HWDriverLocat[256];//升級包或程序的位置如/Driver/LX_VGA/tnt2_nv.rpm或/Exe/Application1.exe};2.升級程序Update.exe作為隱藏的應(yīng)用集成在系統(tǒng)中,其操作流程如圖3(a)進(jìn)行身份校驗(yàn);(b)若校驗(yàn)通過,則掛接升級保留區(qū)并讀取備選驅(qū)動(dòng)表,否則重啟動(dòng)系統(tǒng);(c)詢問是否升級并顯示結(jié)果供選擇,若升級則按用戶選擇的結(jié)果安裝升級包,并按需要進(jìn)行必要配置文件修改,若不升級則繼續(xù)下一步驟;(d)卸載升級保留區(qū);(e)完成升級,重啟動(dòng)系統(tǒng)。
權(quán)利要求
1.基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法,其特征在于它包括以下步驟(a)在嵌入式系統(tǒng)中劃出一專門區(qū)域做升級保留區(qū),在升級保留區(qū)中保留一張已初始化的可擴(kuò)充的備選驅(qū)動(dòng)表;(b)在升級保留區(qū)存放可升級硬件的驅(qū)動(dòng)信息和說明信息、可升級應(yīng)用程序的版本;(c)在系統(tǒng)內(nèi)集成一個(gè)專門用于升級的能掛接升級保留區(qū)的可執(zhí)行升級程序;(d)當(dāng)需要更新硬件或軟件時(shí),用戶使用該升級程序?qū)τ脩羲x擇的硬件或軟件進(jìn)行更新,如果要更新的硬件是備選驅(qū)動(dòng)表中沒有的,則退出系統(tǒng),直接向系統(tǒng)升級保留區(qū)寫入全新的驅(qū)動(dòng)文件,同時(shí)擴(kuò)充備選驅(qū)動(dòng)表。
2.根據(jù)權(quán)利要求1所述的基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法,其特征在于需要更新的硬件驅(qū)動(dòng)和軟件必須在其加載前進(jìn)行升級。
3.根據(jù)權(quán)利要求1所述的基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法,其特征在于升級程序按以下步驟進(jìn)行升級(a)進(jìn)行身份校驗(yàn);(b)若校驗(yàn)通過,則掛接升級保留區(qū)并讀取備選驅(qū)動(dòng)表,否則重啟動(dòng)系統(tǒng);(c)詢問是否升級并顯示結(jié)果供選擇,若升級則按用戶選擇的結(jié)果安裝升級包,并按需要進(jìn)行必要配置文件修改,若不升級則繼續(xù)下一步驟;(d)卸載升級保留區(qū);(e)完成升級,重啟動(dòng)系統(tǒng)。
全文摘要
本發(fā)明是一種基于可擴(kuò)充表單的可復(fù)用嵌入式系統(tǒng)的硬件驅(qū)動(dòng)和軟件更新方法。它包括在嵌入式系統(tǒng)中劃出一小塊專門區(qū)域做升級保留區(qū),在升級保留區(qū)中保留一張已初始化的可擴(kuò)充的備選驅(qū)動(dòng)表,在升級保留區(qū)存放可升級硬件的驅(qū)動(dòng)信息、說明信息和可升級應(yīng)用程序的版本,在系統(tǒng)內(nèi)集成一個(gè)專門用于升級并能掛接升級保留區(qū)的可執(zhí)行升級程序,用戶使用該升級程序?qū)λx擇的硬件或軟件進(jìn)行更新,如果要更新的硬件是備選驅(qū)動(dòng)表中沒有的,那么退出系統(tǒng),直接向系統(tǒng)升級保留區(qū)寫入全新的驅(qū)動(dòng)文件,同時(shí)擴(kuò)充備選驅(qū)動(dòng)表的步驟。本發(fā)明方法可重用性強(qiáng),具有較高安全保證,擁有對未知硬件的擴(kuò)展接口,使用一套軟件平臺(tái)可適應(yīng)多個(gè)不同的硬件平臺(tái)。
文檔編號G06F11/00GK1506822SQ03109370
公開日2004年6月23日 申請日期2003年4月8日 優(yōu)先權(quán)日2002年12月9日
發(fā)明者陳衛(wèi)華 申請人:聯(lián)想(北京)有限公司