專利名稱:帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用于嵌入式產(chǎn)品的帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法、設(shè)備及系統(tǒng)。
背景技術(shù):
系統(tǒng)引導(dǎo)程序(boot)是嵌入式系統(tǒng)上電啟動(dòng)運(yùn)行的第一段代碼(該代碼通常被固化到芯片的bootrom中),是在用戶應(yīng)用程序運(yùn)行之前,運(yùn)行的一段子程序。通過這段子程序,可以初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,為最終下載用戶應(yīng)用程序準(zhǔn)備好正確的運(yùn)行環(huán)境。嵌入式系統(tǒng)應(yīng)用軟件一般由設(shè)備開發(fā)商在試制或生產(chǎn)時(shí)通過EJTAG調(diào)試器或編程器燒錄到外部存儲(chǔ)介質(zhì)(NOR FLASH或EEPR0M)中,其boot功能很弱,尤其對(duì)于多外設(shè)嵌入式系統(tǒng)而言,對(duì)應(yīng)boot的方式很多。在系統(tǒng)調(diào)試的過程中,往往會(huì)因?yàn)榻涌诘奈锢磉B接錯(cuò)誤、應(yīng)用程序異常、芯片異常等原因,導(dǎo)致boot過程失敗。此種情形下,則需要專門的儀器設(shè)備或仿真器進(jìn)行調(diào)試分析,由于普通的客戶不具備上述條件,而且調(diào)試和錯(cuò)誤定位時(shí)間較長,增加了售后成本和維修周期。目前,雖然存在少數(shù)支持多種外設(shè)的嵌入式系統(tǒng),但是其不具備可靠性檢測(cè)功能, 在出現(xiàn)不確定因素問題的情況下,容易導(dǎo)致boot過程失敗。因此,支持多外設(shè)的boot技術(shù)有待改進(jìn)和發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法、設(shè)備及系統(tǒng),旨在為多外設(shè)嵌入式產(chǎn)品的boot引導(dǎo)程序提供可靠性檢測(cè),提高系統(tǒng)使用性能。本發(fā)明提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法,包括外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。優(yōu)選地,所述命令傳輸協(xié)議包括服務(wù)器發(fā)送命令的命令描述信息、命令數(shù)據(jù)包信息以及外部設(shè)備的命令應(yīng)答信息;所述命令描述信息包含命令標(biāo)識(shí)符、數(shù)據(jù)包長度、命令類型以及命令內(nèi)容;所述命令數(shù)據(jù)包信息包含所述命令類型確定的命令數(shù)據(jù);所述命令應(yīng)答信息包含應(yīng)答標(biāo)識(shí)符、應(yīng)答類型、應(yīng)答內(nèi)容以及命令執(zhí)行狀態(tài)。優(yōu)選地,所述命令類型包括代碼下載、測(cè)試、斷點(diǎn)續(xù)傳和/或設(shè)置發(fā)送固定數(shù)據(jù)。優(yōu)選地,所述根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot 下載過程的檢測(cè)的步驟包括
接收服務(wù)器發(fā)送的命令;當(dāng)所述命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)所述命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)所述命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)所述測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。優(yōu)選地,所述外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式的步驟之前還包括根據(jù)外設(shè)接口制定服務(wù)器與外部設(shè)備之間的所述命令傳輸協(xié)議。本發(fā)明還提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備,包括boot模式選擇模塊,用于通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;初始化模塊,用于當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);boot檢測(cè)模塊,根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì) boot下載過程的檢測(cè)。優(yōu)選地,所述boot檢測(cè)模塊包括命令接收單元,用于接收服務(wù)器發(fā)送的命令;命令應(yīng)答單元,用于當(dāng)所述命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)所述命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;以及當(dāng)所述命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)所述測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。優(yōu)選地,所述設(shè)備還包括傳輸協(xié)議制定模塊,用于根據(jù)外設(shè)接口制定服務(wù)器與外部設(shè)備之間的所述命令傳輸協(xié)議。本發(fā)明還提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)系統(tǒng),包括外部設(shè)備以及與所述外部設(shè)備通過外設(shè)接口連接的服務(wù)器,其中所述外部設(shè)備,用于與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù); 根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè);所述服務(wù)器,用于根據(jù)約定的命令傳輸協(xié)議與外部設(shè)備進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。優(yōu)選地,所述服務(wù)器,還用于向所述外部設(shè)備發(fā)送命令;以及接收外部設(shè)備根據(jù)所述命令返回的命令應(yīng)答信息;所述外部設(shè)備,還用于接收服務(wù)器發(fā)送的命令,當(dāng)所述命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)所述命令為代碼下載完畢時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;以及當(dāng)所述命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)所述測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。本發(fā)明提出的一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法、設(shè)備及系統(tǒng),通過根據(jù)多外設(shè)接口的特點(diǎn)制定相應(yīng)的命令傳輸協(xié)議,根據(jù)用戶選擇的外設(shè)接口類型選擇相應(yīng)的boot啟動(dòng)模式,并按照制定的命令傳輸協(xié)議在外部設(shè)備與主機(jī)服務(wù)器之間進(jìn)行命令數(shù)據(jù)的交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè),從而確保在出現(xiàn)不確定因素的情況下,保證系統(tǒng)引導(dǎo)程序的正確運(yùn)行,該實(shí)現(xiàn)方法簡單、可靠。
圖1是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法一實(shí)施例流程示意圖;圖2是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法一實(shí)施例中根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)的流程示意圖;圖3是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法另一實(shí)施例流程示意圖;圖4是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備一實(shí)施例結(jié)構(gòu)示意圖;圖5是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備一實(shí)施例中boot檢測(cè)模塊的結(jié)構(gòu)示意圖;圖6是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備另一實(shí)施例結(jié)構(gòu)示意圖;圖7是本發(fā)明帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)系統(tǒng)一實(shí)施例結(jié)構(gòu)示意圖。為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進(jìn)一步詳述。
具體實(shí)施例方式本發(fā)明實(shí)施例解決方案主要是根據(jù)多外設(shè)接口的特點(diǎn)制定相應(yīng)的命令傳輸協(xié)議, 根據(jù)用戶選擇的外設(shè)接口類型選擇相應(yīng)的boot啟動(dòng)模式,并按照制定的命令傳輸協(xié)議在外部設(shè)備與主機(jī)服務(wù)器之間進(jìn)行命令數(shù)據(jù)的交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。如圖1所示,本發(fā)明一實(shí)施例提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法,包括步驟S101,外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;在本實(shí)施例中,外設(shè)接口可以為SPlGerial Peripheral Interface,串行外設(shè)接口)、USB (Universal Serial BUS,通用串行總線)接口以及 SDIO (SecureDigital Input and Output Card,安全數(shù)字輸入輸出卡)接口等。服務(wù)器可以為嵌入式系統(tǒng)中設(shè)置有多個(gè)外設(shè)接口的主機(jī),比如PC機(jī)、筆記本等, 外部設(shè)備可以帶有多種外設(shè)接口,并可以根據(jù)服務(wù)器的外設(shè)接口來選擇確定自己的外設(shè)接口,與服務(wù)器進(jìn)行連接。在嵌入式系統(tǒng)中,在用戶應(yīng)用程序運(yùn)行之前,需要運(yùn)行系統(tǒng)引導(dǎo)程序(boot),以初始化外部設(shè)備,建立內(nèi)存空間的映射圖,為最終下載用戶應(yīng)用程序準(zhǔn)備好正確的運(yùn)行環(huán)境。為了保證boot下載的成功運(yùn)行,本實(shí)施例通過服務(wù)器與外部設(shè)備之間預(yù)定的命令傳輸協(xié)議進(jìn)行服務(wù)器與外部設(shè)備之間的命令交互,從而達(dá)到對(duì)boot下載過程進(jìn)行檢測(cè)的目的。首先,在外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,需要選擇相應(yīng)的boot啟動(dòng)模式,boot啟動(dòng)模式根據(jù)用戶選擇的外設(shè)接口而定,用戶可以根據(jù)自身的需求,通過外部裝置設(shè)置boot啟動(dòng)模式,包括使用何種外設(shè)接口、主/從模式、時(shí)鐘等。通過外部裝置的設(shè)置,用戶可以根據(jù)實(shí)際需要選擇相應(yīng)的服務(wù)器進(jìn)行代碼下載,從而選擇相應(yīng)的boot啟動(dòng)模式, 以便后續(xù)過程中系統(tǒng)上電后,根據(jù)相應(yīng)的外設(shè)接口對(duì)外部設(shè)備進(jìn)行初始化操作。步驟S102,當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);系統(tǒng)上電之后,外部設(shè)備便進(jìn)入等待接收命令狀態(tài)。 步驟S103,根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。在本實(shí)施例中,服務(wù)器與外部設(shè)備之間有約定的命令傳輸協(xié)議,由于在boot階段,對(duì)數(shù)據(jù)傳輸?shù)恼_性的要求遠(yuǎn)大于傳輸速度的要求,而且在boot階段,外設(shè)驅(qū)動(dòng)要求精簡,因此可使用普通傳輸模式。該命令傳輸協(xié)議可以分為命令描述、命令數(shù)據(jù)包、命令應(yīng)答三個(gè)階段。命令傳輸協(xié)議具體包括服務(wù)器發(fā)送命令的命令描述信息、命令數(shù)據(jù)包信息以及外部設(shè)備的命令應(yīng)答信息。其中,命令描述信息包含命令標(biāo)識(shí)符、數(shù)據(jù)包長度、命令類型以及命令內(nèi)容等,其中,命令內(nèi)容比如命令描述校驗(yàn)和、下載代碼地址等。命令數(shù)據(jù)包信息包含命令類型確定的命令數(shù)據(jù);命令類型包括代碼下載、測(cè)試、斷點(diǎn)續(xù)傳和/或設(shè)置發(fā)送固定數(shù)據(jù)等。命令應(yīng)答信息包含應(yīng)答標(biāo)識(shí)符、應(yīng)答類型、應(yīng)答內(nèi)容以及命令執(zhí)行狀態(tài)等。其中, 對(duì)于代碼下載命令而言,應(yīng)答內(nèi)容為反饋所有下載數(shù)據(jù)的校驗(yàn)和。由于命令描述信息可以指定數(shù)據(jù)包長度,因此,在服務(wù)器發(fā)送數(shù)據(jù)包階段,可以一次性傳輸數(shù)據(jù)包長度字段指定長度的數(shù)據(jù),在外部設(shè)備命令應(yīng)答階段時(shí),再讀取數(shù)據(jù)包階段數(shù)據(jù)的校驗(yàn)和,如果校驗(yàn)結(jié)果正確,則服務(wù)器傳送下一階段數(shù)據(jù)包,反之,則重傳此數(shù)據(jù)包。為了實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè),外部設(shè)備與服務(wù)器根據(jù)約定的命令傳輸協(xié)議進(jìn)行boot命令交互,根據(jù)用戶的選擇,服務(wù)器向外部設(shè)備發(fā)送命令,外部設(shè)備接收到服務(wù)器發(fā)送的命令,根據(jù)命令進(jìn)行相應(yīng)的處理。如果接收的命令為下載代碼命令時(shí),則下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息,其中代碼程序的下載可以分段下載;若接收的命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;若命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)測(cè)試功能命令進(jìn)行相應(yīng)處理并返回命令應(yīng)答信息。服務(wù)器可以根據(jù)外部設(shè)備返回的命令應(yīng)答信息中的命令執(zhí)行狀態(tài)得知,其所發(fā)的命令的執(zhí)行成功與失敗情況,從而將執(zhí)行結(jié)果反饋給用戶。如圖2所示,步驟S103包括步驟S1031,接收服務(wù)器發(fā)送的命令;步驟S1032,當(dāng)命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答 fn息;其中,代碼程序的下載可以分段下載。步驟S1033,當(dāng)命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;步驟S1034,當(dāng)命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。
測(cè)試功能命令比如可以為讀寫寄存器等。本實(shí)施例通過根據(jù)多外設(shè)接口的特點(diǎn)制定相應(yīng)的命令傳輸協(xié)議,根據(jù)用戶選擇的外設(shè)接口類型選擇相應(yīng)的boot啟動(dòng)模式,并按照制定的命令傳輸協(xié)議在外部設(shè)備與主機(jī)服務(wù)器之間進(jìn)行命令數(shù)據(jù)的交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè),從而確保在出現(xiàn)不確定因素的情況下,保證系統(tǒng)引導(dǎo)程序的正確運(yùn)行,該實(shí)現(xiàn)方法簡單、可靠。如圖3所示,本發(fā)明另一實(shí)施例提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法,包括步驟S300,根據(jù)外設(shè)接口制定服務(wù)器與外部設(shè)備之間的命令傳輸協(xié)議;步驟S301,外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;步驟S302,當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù); 步驟S303,根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。本實(shí)施例與上述實(shí)施例的區(qū)別在于,服務(wù)器與外部設(shè)備之間的命令傳輸協(xié)議由外部設(shè)備所制定。在制定命令傳輸協(xié)議時(shí),需要考慮各個(gè)外部設(shè)備的特點(diǎn),包括各種外部設(shè)備的FIF0(First In First Out,先進(jìn)先出)的深度、命令傳輸正確性的保證等。其他與上述實(shí)施例相同,在此不再贅述。同理,服務(wù)器與外部設(shè)備之間的命令傳輸協(xié)議還可由服務(wù)器制定。如圖4所示,本發(fā)明一實(shí)施例提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備,包括boot模式選擇模塊401、初始化模塊402以及boot檢測(cè)模塊403,其中boot模式選擇模塊401,用于通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;在本實(shí)施例中,外設(shè)接口可以為SPI、USB接口以及SDIO接口等。服務(wù)器可以為嵌入式系統(tǒng)中設(shè)置有多個(gè)外設(shè)接口的主機(jī),比如PC機(jī)、筆記本等, 外部設(shè)備可以帶有多種外設(shè)接口,并可以根據(jù)服務(wù)器的外設(shè)接口來選擇確定自己的外設(shè)接口,與服務(wù)器進(jìn)行連接。在嵌入式系統(tǒng)中,在用戶應(yīng)用程序運(yùn)行之前,需要運(yùn)行系統(tǒng)引導(dǎo)程序(boot),以初始化外部設(shè)備,建立內(nèi)存空間的映射圖,為最終下載用戶應(yīng)用程序準(zhǔn)備好正確的運(yùn)行環(huán)境。為了保證boot下載的成功運(yùn)行,本實(shí)施例通過服務(wù)器與外部設(shè)備之間預(yù)定的命令傳輸協(xié)議進(jìn)行服務(wù)器與外部設(shè)備之間的命令交互,從而達(dá)到對(duì)boot下載過程進(jìn)行檢測(cè)的目的。首先,在外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,由boot模式選擇模塊401選擇相應(yīng)的boot啟動(dòng)模式,boot啟動(dòng)模式根據(jù)用戶選擇的外設(shè)接口而定,用戶可以根據(jù)自身的需求,通過外部裝置設(shè)置boot啟動(dòng)模式,包括使用何種外設(shè)接口、主/從模式、時(shí)鐘等。通過外部裝置的設(shè)置,用戶可以根據(jù)實(shí)際需要選擇相應(yīng)的服務(wù)器進(jìn)行代碼下載,從而選擇相應(yīng)的boot啟動(dòng)模式,以便后續(xù)過程中系統(tǒng)上電后,根據(jù)相應(yīng)的外設(shè)接口對(duì)外部設(shè)備進(jìn)行初始化操作。初始化模塊402,當(dāng)外部設(shè)備與服務(wù)器連接后,用于根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);
boot檢測(cè)模塊403,根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。在本實(shí)施例中,服務(wù)器與外部設(shè)備之間有約定的命令傳輸協(xié)議,由于在boot階段,對(duì)數(shù)據(jù)傳輸?shù)恼_性的要求遠(yuǎn)大于傳輸速度的要求,而且在boot階段,外設(shè)驅(qū)動(dòng)要求精簡,因此可使用普通傳輸模式。該命令傳輸協(xié)議可以分為命令描述、命令數(shù)據(jù)包、命令應(yīng)答三個(gè)階段。命令傳輸協(xié)議具體包括服務(wù)器發(fā)送命令的命令描述信息、命令數(shù)據(jù)包信息以及外部設(shè)備的命令應(yīng)答信息。其中,命令描述信息包含命令標(biāo)識(shí)符、數(shù)據(jù)包長度、命令類型以及命令內(nèi)容等,其中,命令內(nèi)容比如命令描述校驗(yàn)和、下載代碼地址等。命令數(shù)據(jù)包信息包含命令類型確定的命令數(shù)據(jù);命令類型包括代碼下載、測(cè)試、斷點(diǎn)續(xù)傳和/或設(shè)置發(fā)送固定數(shù)據(jù)等。命令應(yīng)答信息包含應(yīng)答標(biāo)識(shí)符、應(yīng)答類型、應(yīng)答內(nèi)容以及命令執(zhí)行狀態(tài)等。其中, 對(duì)于代碼下載命令而言,應(yīng)答內(nèi)容為反饋所有下載數(shù)據(jù)的校驗(yàn)和。由于命令描述信息可以指定數(shù)據(jù)包長度,因此,在服務(wù)器發(fā)送數(shù)據(jù)包階段,可以一次性傳輸數(shù)據(jù)包長度字段指定長度的數(shù)據(jù),在外部設(shè)備命令應(yīng)答階段時(shí),再讀取數(shù)據(jù)包階段數(shù)據(jù)的校驗(yàn)和,如果校驗(yàn)結(jié)果正確,則服務(wù)器傳送下一階段數(shù)據(jù)包,反之,則重傳此數(shù)據(jù)包。為了實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè),外部設(shè)備與服務(wù)器根據(jù)約定的命令傳輸協(xié)議進(jìn)行boot命令交互,根據(jù)用戶的選擇,服務(wù)器向外部設(shè)備發(fā)送命令,外部設(shè)備接收到服務(wù)器發(fā)送的命令,根據(jù)命令進(jìn)行相應(yīng)的處理。如果接收的命令為下載代碼命令時(shí),則下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息,其中代碼程序的下載可以分段下載;若接收的命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;若命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)測(cè)試功能命令進(jìn)行相應(yīng)處理并返回命令應(yīng)答信息。服務(wù)器可以根據(jù)外部設(shè)備返回的命令應(yīng)答信息中的命令執(zhí)行狀態(tài)得知,其所發(fā)的命令的執(zhí)行成功與失敗情況,從而將執(zhí)行結(jié)果反饋給用戶。如圖5所示,boot檢測(cè)模塊403包括命令接收單元4031以及命令應(yīng)答單元4032, 其中命令接收單元4031,用于接收服務(wù)器發(fā)送的命令;命令應(yīng)答單元4032,用于當(dāng)命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;以及當(dāng)命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。如圖6所示,本發(fā)明另一實(shí)施例提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備,包括傳輸協(xié)議制定模塊600、boot模式選擇模塊601、初始化模塊602以及boot檢測(cè)模塊603,其中傳輸協(xié)議制定模塊600,用于根據(jù)外設(shè)接口制定服務(wù)器與外部設(shè)備之間的所述命令傳輸協(xié)議;boot模式選擇模塊601,用于通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;初始化模塊602,用于當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);boot檢測(cè)模塊603,根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。在本實(shí)施例中,boot模式選擇模塊601、初始化模塊602以及boot檢測(cè)模塊603 與上述實(shí)施例中boot模式選擇模塊401、初始化模塊402以及boot檢測(cè)模塊403功能結(jié)構(gòu)對(duì)應(yīng)相同,在此不再贅述。在本實(shí)施例中,由外部設(shè)備中傳輸協(xié)議制定模塊600制定服務(wù)器與外部設(shè)備之間的命令傳輸協(xié)議,在制定命令傳輸協(xié)議時(shí),需要考慮各個(gè)外部設(shè)備的特點(diǎn),包括各種外部設(shè)備的FIFO的深度、命令傳輸正確性的保證等。如圖7所示,本發(fā)明一實(shí)施例提出一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)系統(tǒng),包括外部設(shè)備701以及與外部設(shè)備701通過外設(shè)接口連接的服務(wù)器702,其中外部設(shè)備701,用于與服務(wù)器702連接前,選擇相應(yīng)的boot啟動(dòng)模式;當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);根據(jù)約定的命令傳輸協(xié)議與服務(wù)器702進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè);服務(wù)器702,用于根據(jù)約定的命令傳輸協(xié)議與外部設(shè)備701進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。進(jìn)一步的,服務(wù)器702還用于向外部設(shè)備701發(fā)送命令;以及接收外部設(shè)備701根據(jù)命令返回的命令應(yīng)答信息;外部設(shè)備701還用于接收服務(wù)器702發(fā)送的命令,當(dāng)命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器702返回命令應(yīng)答信息;當(dāng)所述命令為代碼下載完畢時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;以及當(dāng)命令為測(cè)試功能命令時(shí),對(duì)測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。在本實(shí)施例中,外設(shè)接口可以為SPI、USB接口以及SDIO接口等。本發(fā)明實(shí)施例提出的一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法、設(shè)備及系統(tǒng),通過根據(jù)多外設(shè)接口的特點(diǎn)制定相應(yīng)的命令傳輸協(xié)議,根據(jù)用戶選擇的外設(shè)接口類型選擇相應(yīng)的boot啟動(dòng)模式,并按照制定的命令傳輸協(xié)議在外部設(shè)備與主機(jī)服務(wù)器之間進(jìn)行命令數(shù)據(jù)的交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè),從而確保在出現(xiàn)不確定因素的情況下, 保證系統(tǒng)引導(dǎo)程序的正確運(yùn)行,該實(shí)現(xiàn)方法簡單、可靠。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法,其特征在于,包括 外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述命令傳輸協(xié)議包括服務(wù)器發(fā)送命令的命令描述信息、命令數(shù)據(jù)包信息以及外部設(shè)備的命令應(yīng)答信息;所述命令描述信息包含命令標(biāo)識(shí)符、數(shù)據(jù)包長度、命令類型以及命令內(nèi)容;所述命令數(shù)據(jù)包信息包含所述命令類型確定的命令數(shù)據(jù);所述命令應(yīng)答信息包含應(yīng)答標(biāo)識(shí)符、應(yīng)答類型、應(yīng)答內(nèi)容以及命令執(zhí)行狀態(tài)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述命令類型包括代碼下載、測(cè)試、斷點(diǎn)續(xù)傳和/或設(shè)置發(fā)送固定數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)的步驟包括接收服務(wù)器發(fā)送的命令;當(dāng)所述命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息; 當(dāng)所述命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息; 當(dāng)所述命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)所述測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式的步驟之前還包括根據(jù)外設(shè)接口制定服務(wù)器與外部設(shè)備之間的所述命令傳輸協(xié)議。
6.一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)設(shè)備,其特征在于,包括boot模式選擇模塊,用于通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式; 初始化模塊,用于當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);boot檢測(cè)模塊,根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述boot檢測(cè)模塊包括 命令接收單元,用于接收服務(wù)器發(fā)送的命令;命令應(yīng)答單元,用于當(dāng)所述命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)所述命令為代碼下載完畢命令時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;以及當(dāng)所述命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)所述測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。
8.根據(jù)權(quán)利要求6或7所述的設(shè)備,其特征在于,所述設(shè)備還包括傳輸協(xié)議制定模塊, 用于根據(jù)外設(shè)接口制定服務(wù)器與外部設(shè)備之間的所述命令傳輸協(xié)議。
9.一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)系統(tǒng),其特征在于,包括外部設(shè)備以及與所述外部設(shè)備通過外設(shè)接口連接的服務(wù)器,其中所述外部設(shè)備,用于與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè);所述服務(wù)器,用于根據(jù)約定的命令傳輸協(xié)議與外部設(shè)備進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì) boot下載過程的檢測(cè)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述服務(wù)器,還用于向所述外部設(shè)備發(fā)送命令;以及接收外部設(shè)備根據(jù)所述命令返回的命令應(yīng)答信息;所述外部設(shè)備,還用于接收服務(wù)器發(fā)送的命令,當(dāng)所述命令為下載代碼命令時(shí),下載代碼程序,并向服務(wù)器返回命令應(yīng)答信息;當(dāng)所述命令為代碼下載完畢時(shí),運(yùn)行下載代碼,并向服務(wù)器返回命令應(yīng)答信息;以及當(dāng)所述命令為測(cè)試功能命令時(shí),根據(jù)測(cè)試功能類型對(duì)所述測(cè)試功能命令進(jìn)行相應(yīng)處理并向服務(wù)器返回命令應(yīng)答信息。
全文摘要
本發(fā)明涉及一種帶可靠性檢測(cè)功能的多外設(shè)boot實(shí)現(xiàn)方法、設(shè)備及系統(tǒng),其方法包括外部設(shè)備通過外設(shè)接口與服務(wù)器連接前,選擇相應(yīng)的boot啟動(dòng)模式;當(dāng)外部設(shè)備與服務(wù)器連接后,根據(jù)選擇的boot啟動(dòng)模式進(jìn)行初始化操作,并注冊(cè)相應(yīng)的數(shù)據(jù)收、發(fā)函數(shù);根據(jù)約定的命令傳輸協(xié)議與服務(wù)器進(jìn)行boot命令交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè)。本發(fā)明通過根據(jù)多外設(shè)接口的特點(diǎn)制定相應(yīng)的命令傳輸協(xié)議,根據(jù)用戶選擇的外設(shè)接口類型選擇相應(yīng)的boot啟動(dòng)模式,并按照制定的命令傳輸協(xié)議在外部設(shè)備與主機(jī)服務(wù)器之間進(jìn)行命令數(shù)據(jù)的交互,實(shí)現(xiàn)對(duì)boot下載過程的檢測(cè),從而確保在出現(xiàn)不確定因素的情況下,保證系統(tǒng)引導(dǎo)程序的正確運(yùn)行,該實(shí)現(xiàn)方法簡單、可靠。
文檔編號(hào)G06F11/36GK102455970SQ201010511539
公開日2012年5月16日 申請(qǐng)日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者孫恒 申請(qǐng)人:中興通訊股份有限公司