一種固件升級的方法和主機端裝置及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機技術領域,尤其涉及一種固件升級的方法和主機端裝置及系統(tǒng)。
【背景技術】
[0002]目前的平板電腦量產(chǎn)后進行升級的過程中,通常會采用如下方式進行固件升級:
[0003]I)利用一臺Windows PC對多臺平板電腦進行固件燒寫升級
[0004]采用Windows PC對平板電腦進行升級,通過向平板電腦發(fā)送命令和傳送固件升級程序,可以與平板電腦交互獲取升級的進度和是否成功信息。
[0005]但此方式需要裝載有Windows系統(tǒng)的PC來參與,因此在工廠的產(chǎn)線上面對成千上萬臺生產(chǎn)出來的平板電腦的時候,裝載有Windows系統(tǒng)的PC數(shù)量的多少會限制量產(chǎn)的速度,且配置多臺PC的成本也較高。
[0006]2)利用卡進行固件燒寫升級
[0007]將存儲卡插入平板電腦,通過讀取和運行存儲卡內(nèi)的固件升級程序進行固件升級,此方式的弊端在于不能實時反映量產(chǎn)的進度和是否成功的信息,量產(chǎn)如果失敗無法方便地反饋給生產(chǎn)人員失敗的原因等信息。
[0008]3)利用網(wǎng)絡下載固件燒寫升級
[0009]此方式要求被升級的平板電腦必須已經(jīng)有系統(tǒng)的運行,否則無法連接網(wǎng)絡,這對于剛剛生產(chǎn)出來還不帶系統(tǒng)固件的平板來說無法做到。且這種方式同樣存在升級的過程中無法方便地在另一方的平臺工具上顯示量產(chǎn)進度信息等問題。
【發(fā)明內(nèi)容】
[0010]本發(fā)明提供一種固件升級的方法和主機端裝置及系統(tǒng),可以提高固件升級的效率。
[0011]本發(fā)明提供一種固件升級的方法,包括:
[0012]主機端通過USB主機控制器驅動操作USB主機控制器檢測本地USB接口是否有待升級的客戶端插入;
[0013]若檢測到有待升級的客戶端插入,主機端通過固件升級應用程序將初始化程序和固件升級程序下載到所述客戶端,所述初始化程序用于初始化客戶端內(nèi)存,所述固件升級程序被下載到初始化后的內(nèi)存中,用于解析并執(zhí)行從所述主機端接收的各種命令;
[0014]主機端通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù),由所述客戶端接收到固件燒寫命令及固件數(shù)據(jù)后,通過所述客戶端上的固件升級程序根據(jù)固件燒寫命令將固件數(shù)據(jù)寫入存儲介質。
[0015]優(yōu)選地,所述主機端通過固件升級應用程序將初始化程序和固件升級程序下載到所述客戶端之后,通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù)之前,該方法還包括:
[0016]主機端通過固件升級應用程序向客戶端發(fā)送檢測掃描命令,由所述客戶端接收到所述檢測掃描命令后,通過所述客戶端上的固件升級程序根據(jù)檢測掃描命令掃描獲得硬件信息并反饋給主機端。
[0017]優(yōu)選地,主機端檢測到有待升級的客戶端插入,具體包括:
[0018]若USB主機控制器檢測到有新設備插入時,通過USB主機控制器驅動通知USB內(nèi)核,由USB內(nèi)核通過USB主機控制器驅動操作USB主機控制器獲取新設備的設備信息,并與USB量產(chǎn)設備驅動程序所存儲的設備信息相匹配,若匹配成功,則確定本地USB接口有待升級的客戶端插入;
[0019]所述USB內(nèi)核通知USB量產(chǎn)設備驅動程序有待升級的客戶端插入,USB量產(chǎn)設備驅動程序通知Linux用戶層,由Linux用戶層通知Java層的固件升級應用程序。
[0020]優(yōu)選地,主機端通過固件升級應用程序將初始化程序和固件升級程序下載到客戶端上,具體包括:
[0021]Java層的固件升級應用程序通過JNI接口向Linux用戶層的固件升級應用程序發(fā)送下載命令、初始化程序和固件升級程序;
[0022]Linux用戶層的固件升級應用程序向USB量產(chǎn)設備驅動程序發(fā)送下載命令、初始化程序和固件升級程序,所述USB量產(chǎn)設備驅動程序對下載命令進行解析后,通知USB內(nèi)核通過USB主機控制器驅動操作USB主機控制器將初始化程序和固件升級程序發(fā)送到待升級的客戶端。
[0023]優(yōu)選地,主機端通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù),具體包括:
[0024]Java層的固件升級應用程序通過JNI接口向Linux用戶層的固件升級應用程序發(fā)送固件燒寫命令及固件數(shù)據(jù);
[0025]Linux用戶層的固件升級應用程序向USB量產(chǎn)設備驅動程序發(fā)送固件燒寫命令及固件數(shù)據(jù),所述USB量產(chǎn)設備驅動程序對固件燒寫命令進行解析后,通知USB內(nèi)核通過USB主機控制器驅動操作USB主機控制器將固件燒寫命令及固件數(shù)據(jù)發(fā)送到待升級的客戶端。
[0026]優(yōu)選地,主機端通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù)之后,還包括:
[0027]所述主機端通過固件升級應用程序接收所述客戶端在燒寫完成后返回的是否燒寫成功的反饋信息,并將所述反饋信息進行顯示。
[0028]本發(fā)明提供一種固件升級的主機端裝置,包括:
[0029]檢測單元,用于通過USB主機控制器驅動操作USB主機控制器檢測本地USB接口是否有待升級的客戶端插入;
[0030]下載單元,用于若檢測到有待升級的客戶端插入,通過固件升級應用程序將初始化程序和固件升級程序下載到所述客戶端,所述初始化程序用于初始化客戶端內(nèi)存,所述固件升級程序被下載到初始化后的內(nèi)存中,用于解析并執(zhí)行從所述主機端接收的各種命令;
[0031]升級單元,用于通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù),由所述客戶端接收到固件燒寫命令及固件數(shù)據(jù)后,通過所述客戶端上的固件升級程序根據(jù)固件燒寫命令將固件數(shù)據(jù)寫入存儲介質。
[0032]優(yōu)選地,該主機端裝置還包括:
[0033]命令單元,用于在下載單元通過固件升級應用程序將初始化程序和固件升級程序下載到所述客戶端之后,在升級單元通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù)之前,通過固件升級應用程序向客戶端發(fā)送檢測掃描命令,由所述客戶端接收到所述檢測掃描命令后,通過所述客戶端上的固件升級程序根據(jù)檢測掃描命令掃描獲得硬件信息并反饋給主機端。
[0034]優(yōu)選地,檢測單元檢測到有待升級的客戶端插入,具體包括:
[0035]若由USB主機控制器檢測到有新設備插入時,通過USB主機控制器驅動通知USB內(nèi)核,由USB內(nèi)核通過USB主機控制器驅動操作USB主機控制器獲取新設備的設備信息,并與USB量產(chǎn)設備驅動程序所存儲的設備信息相匹配,若匹配成功,則確定本地USB接口有待升級的客戶端插入;
[0036]由所述USB內(nèi)核通知USB量產(chǎn)設備驅動程序有待升級的客戶端插入,USB量產(chǎn)設備驅動程序通知Linux用戶層,由Linux用戶層通知Java層的固件升級應用程序。
[0037]優(yōu)選地,下載單元通過固件升級應用程序將初始化程序和固件升級程序下載到客戶端上,具體包括:
[0038]由Java層的固件升級應用程序通過JNI接口向Linux用戶層的固件升級應用程序發(fā)送下載命令、初始化程序和固件升級程序;
[0039]由Linux用戶層的固件升級應用程序向USB量產(chǎn)設備驅動程序發(fā)送下載命令、初始化程序和固件升級程序,所述USB量產(chǎn)設備驅動程序對下載命令進行解析后,通知USB內(nèi)核通過USB主機控制器驅動操作USB主機控制器將初始化程序和固件升級程序發(fā)送到待升級的客戶端。
[0040]優(yōu)選地,升級單元通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù),具體包括:
[0041]由Java層的固件升級應用程序通過JNI接口向Linux用戶層的固件升級應用程序發(fā)送固件燒寫命令及固件數(shù)據(jù);
[0042]由Linux用戶層的固件升級應用程序向USB量產(chǎn)設備驅動程序發(fā)送固件燒寫命令及固件數(shù)據(jù),所述USB量產(chǎn)設備驅動程序對固件燒寫命令進行解析后,通知USB內(nèi)核通過USB主機控制器驅動操作USB主機控制器將固件燒寫命令及固件數(shù)據(jù)發(fā)送到待升級的客戶端。
[0043]本發(fā)明還提供一種固件升級的系統(tǒng),包括:
[0044]主機端,通過USB數(shù)據(jù)線連接客戶端,用于通過USB主機控制器驅動操作USB主機控制器檢測本地USB接口是否有待升級的客戶端插入;若檢測到有待升級的客戶端插入,主機端通過固件升級應用程序將初始化程序和固件升級程序下載到所述客戶端,所述初始化程序用于初始化客戶端內(nèi)存,所述固件升級程序被下載到初始化后的內(nèi)存中,用于解析并執(zhí)行從所述主機端接收的各種命令;主機端通過固件升級應用程序向客戶端發(fā)送固件燒寫命令及固件數(shù)據(jù);
[0045]客戶端,用于接收所述主機端發(fā)送的固件升級應用程序將初始化程序和固件升級程序,通過所述初始化程序初始化客戶端內(nèi)存,接收所述主機端發(fā)送的固件燒寫命令及固件數(shù)據(jù),通過所述客戶端上的固件升級程序根據(jù)固件燒寫命令將固件數(shù)據(jù)寫入存儲介質。
[0046]利用本發(fā)明提供的固件升級的方法和主機端裝置及系統(tǒng),具有以下有益效果:在Android系統(tǒng)上的主機端可對客戶端如平板電腦進行量產(chǎn)升級,可以不依賴于PC或卡等生產(chǎn)設備,只要有安裝了 Android系統(tǒng)并具有USB主機(USB Host)功能的設備,都可以用來進行量產(chǎn)升級,這樣如果已經(jīng)生產(chǎn)了 N臺Android平板電腦,就可以充分利用這N臺平板電腦來量產(chǎn)下一批平板電腦,可以有效地減低生產(chǎn)成本,并大大提高同一時間的量產(chǎn)數(shù)目,提高了生產(chǎn)效率。
當前第1頁
1 
2 
3 
4