亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法及裝置的制作方法

文檔序號:6609944閱讀:126來源:國知局
專利名稱:一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及嵌入式系統(tǒng),尤其涉及一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟 動的方法及裝置。
背景技術(shù)
板級支持包(BSP, Board Support Package)文件在嵌入式系統(tǒng)初始化啟 動過程中扮演著重要的角色,BSP文件存在專門的只讀存儲器(ROM)中, 并且要求它具有4艮高的可靠性。隨著系統(tǒng)初始化(BOOT)程序功能的不斷增 強,BSP文件的大小也將不斷增加。目前,BSP文件升級的方法為在ROM中設(shè)置主存儲區(qū)和備存儲區(qū),升 級過程中,先在備存儲區(qū)中完成BSP文件的升級,然后以備存儲區(qū)的BSP文 件進(jìn)行啟動,如果備存儲區(qū)的BSP文件啟動失敗,設(shè)置標(biāo)志,再次重新啟動, 以恢復(fù)主存儲區(qū)啟動;如果備存儲區(qū)的BSP文件啟動成功,則將備存儲區(qū)的 BSP文件更新到主存儲區(qū)中。由于ROM器件的訪問速度存在限制,在對BSP文件進(jìn)行升級的過程中, 如果出現(xiàn)復(fù)位、掉電等故障,或者BSP文件所在的ROM空間位發(fā)生翻轉(zhuǎn)等錯 誤,將會使BSP文件受到破壞,為了恢復(fù)被破壞的BSP文件,往往需要采用 專門的燒寫工具重新對ROM進(jìn)行燒寫,完成對BSP文件的恢復(fù)。這種現(xiàn)有的 BSP文件自恢復(fù)技術(shù)除了具有成本高和不利于大批量產(chǎn)品維護(hù)的缺點夕卜,還存 在以下不足僅僅依靠定時器或者設(shè)置標(biāo)志來被動地判斷BSP文件啟動是否失敗,容 易導(dǎo)致誤判。比如,依靠在BSP文件啟動之后設(shè)置某種標(biāo)志,通過判斷該標(biāo) 志是否置位來確定板卡是否啟動正常,然而在實際使用嵌入式系統(tǒng)設(shè)備過程 中,用戶有時會在啟動階段就對設(shè)備進(jìn)行復(fù)位,這種復(fù)位將直接造成BSP文 件啟動異常的誤判,引起在主存儲區(qū)和備存儲區(qū)間不斷倒換選擇主、備存儲區(qū)內(nèi)的BSP文件,從而導(dǎo)致設(shè)備的多次頻繁復(fù)位。被動地依靠各種標(biāo)志或定時器來判斷BSP文件啟動是否正常,由于這種 判斷過程中可能出現(xiàn)異常情況,因而容易導(dǎo)致BSP文件的誤升級。例如,當(dāng) 出現(xiàn)異常時,為了使系統(tǒng)能夠切換到主存儲區(qū)啟動其內(nèi)部的BSP文件,就需 要在備存儲區(qū)的BSP文件中先設(shè)置標(biāo)志;然后再次重啟,復(fù)位以后,根據(jù)該 標(biāo)志決定是否啟動主存儲區(qū)的BSP文件。這種方式存在問題包括當(dāng)BSP文 件不能啟動時,BSP文件將不能自動觸發(fā)重啟,從而需要手工對設(shè)備進(jìn)行重啟, 難于維護(hù);另外,當(dāng)借助外部定時器通過定時^r查來觸發(fā)復(fù)位,這樣雖然解決 了重啟的觸發(fā)條件,但由于每次啟動定時器都需要做定時檢查,加大了定時器 工作異常的概率,同時定時器的定時檢查會增加對系統(tǒng)資源的長期占用。無法判斷BSP文件是否因某種原因而損壞,更不能主動發(fā)現(xiàn)BSP文件本 身是否被破壞。例如文件在傳輸過程中被修改,或者存放在ROM中的BSP 文件由于ROM存儲介質(zhì)的損壞而被破壞。BSP文件占用了很大的存儲區(qū)空間,限制了 BSP文件的可移植性,由于 BSP文件需要分別存儲在主存儲區(qū)和備存儲區(qū)中,因此占用了較大的ROM存 儲空間。如,嵌入式系統(tǒng)對于ROM的存儲空間非常敏感,總是期望盡可能少 的占用ROM的存儲空間。但是,隨著BSP文件的功能越來越強大,BSP文件 所占空間也相應(yīng)越來越大。不同的操作系統(tǒng),BSP文件的大小也有區(qū)別,例如, 在嵌入式實時多任務(wù)操作系統(tǒng)(VxWorks)下,BSP文件的大小為1M左右, 而在Linux操作系統(tǒng)下,BSP文件的大小往往更大,使得對存儲區(qū)的空間需求 就大,從而在一定意義上限制了 BSP文件的可移植性。最后,缺少相應(yīng)的系統(tǒng)告警措施,它沒有考慮對于在主存儲區(qū)和備存儲區(qū) 之間進(jìn)行切換的后續(xù)告警處理,當(dāng)發(fā)生版本回退等問題時,用戶無法及時發(fā)現(xiàn)。發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的在于提供一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的 方法及裝置,該方法及裝置達(dá)到了提高BSP文件升級的可靠性、減少對系統(tǒng) 資源的占用、以及提高系統(tǒng)的可維護(hù)性的目的。本發(fā)明提供了 一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法,其特征在于,該嵌入式系統(tǒng)的存儲區(qū)包括應(yīng)用程序區(qū)、BSP板級支持包壓縮程序區(qū)、BSP 主程序區(qū)和系統(tǒng)初始化程序區(qū),該方法包4舌以下步驟A. 替換BSP主程序區(qū)中的BSP文件;B. 對替換后的BSP文件進(jìn)行有效性;險測;C. 將通過有效性檢測的BSP文件替換到BSP壓縮程序區(qū)。 該方法所述步驟A包括Al.根據(jù)BSP文件計算出第二校驗信息;A2.判斷該BSP文件是否帶有第一校驗信息,如果是,進(jìn)入步驟A3,否 則,進(jìn)入步驟A4;A3.判斷第一校驗信息與第二校驗信息是否匹配,如果是,進(jìn)入步驟A4, 否則,進(jìn)入步驟A5;A4.將BSP文件寫入BSP主程序區(qū),替換BSP主程序區(qū)中的原BSP文件;A5.確定BSP文件替換失敗,上報告警信息。 該方法所述步驟A4與A5之間進(jìn)一步包括根據(jù)寫入BSP主程序區(qū)的BSP文件計算出第三校驗信息,判斷該第三校 驗信息與第二校驗信息是否匹配,如果是,確定BSP文件替換成功;否則, 進(jìn)入步驟A5。該方法所述步驟B包括Bl.設(shè)置硬件復(fù)位相關(guān)資源標(biāo)志,該標(biāo)志包括BSP文件有效性檢測標(biāo)志 和請求版本回退標(biāo)志;B2.進(jìn)行硬件無關(guān)重啟;B3.判斷硬件復(fù)位相關(guān)資源標(biāo)志類型是否為BSP文件有效性檢測標(biāo)志; 如果是,則進(jìn)入步驟B4;否則,進(jìn)入步驟B5;B4.進(jìn)行BSP文件有效性檢測,監(jiān)控BSP文件的啟動過程,進(jìn)入步驟B6;B5.啟動版本回退流程; B6.啟動用戶程序。該方法所述步驟B5與B6之間進(jìn)一步包括判斷BSP文件啟動是否成功,如果是,進(jìn)入步驟B6;否則,進(jìn)入步驟Bl。該方法所述判斷BSP文件啟動是否成功前進(jìn)一步包括 判斷BSP文件是否完整,如果是,判斷BSP文件啟動是否成功;否則, 進(jìn)入步驟B5。該方法所述步驟C包括Cl.判斷BSP主程序區(qū)中的BSP文件是否完整,如果是,進(jìn)入步驟C2; 否則,進(jìn)入步驟C5;C2.啟動監(jiān)控機制,并運行該BSP文件;C3.判斷該BSP文件啟動運行是否正常,如果是,進(jìn)入步驟C4;否則, 進(jìn)入步驟C5;C4.記錄正常啟動該BSP文件的結(jié)果,將該BSP文件進(jìn)行壓縮,將壓縮 后的BSP文件寫入BSP壓縮程序區(qū);C5.確定該BSP文件出現(xiàn)異常,上報告警信息。 該方法所述步驟C5后進(jìn)一步包括Dl.判斷BSP壓縮程序區(qū)是否存在BSP壓縮文件,如果是,進(jìn)入步驟 D2;否則,進(jìn)入步驟D5;D2.對BSP壓縮文件解壓縮,啟動運行解壓縮后的BSP文件;D3.判斷該BSP文件啟動運行是否正常,如果是,進(jìn)入步驟D4;否則, 進(jìn)入步驟D5;D4.將解壓縮后的BSP文件寫入到BSP主程序區(qū);D5.上報告警信息。該方法用于多處理器系統(tǒng)。該方法所述上報告警信息方式為分離式傳遞信息的啟動階段異常告警上 報方式,包括以下步驟將異常情況的信息通過全局變量或者內(nèi)存,以預(yù)定格式記錄,在用戶程序 啟動運行后,根據(jù)這些信息,以預(yù)定形式上凈艮告警信息。本發(fā)明還提供了 一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的裝置,其特征在 于,包括BSP主程序區(qū)BSP文件替換模塊、BSP文件有效性檢測模塊和BSP壓縮 程序區(qū)BSP文件替換模塊。該裝置所述BSP主程序區(qū)BSP文件替換模塊,用于根據(jù)BSP文件計算第 二校驗信息,判斷BSP文件是否帶有第一校驗信息,如果帶有第一校驗信息, 則進(jìn)一步判斷第一校驗信息與第二校驗信息是否匹配,如果匹配,則將BSP 文件寫入BSP主程序區(qū),替換BSP主程序區(qū)中的原BSP文件;如果不匹配, 則確定BSP文件替換失敗,上報告警信息;該裝置所述BSP文件有效性檢測模塊,用于設(shè)置硬件復(fù)位相關(guān)資源標(biāo)志, 進(jìn)行硬件無關(guān)重啟,如果硬件復(fù)位相關(guān)資源標(biāo)志類型為BSP文件有效性4企測 標(biāo)志,則進(jìn)行BSP文件有效性4企測,監(jiān)控BSP文件的啟動過程,啟動用戶程 序,上報告警信息;如果硬件復(fù)位相關(guān)資源標(biāo)志類型為請求版本回退標(biāo)志,則 啟動版本回退流程;該裝置所述BSP壓縮程序區(qū)BSP文件替換模塊,用于判斷BSP主程序區(qū) 中的BSP文件是否完整,如果完整,則啟動監(jiān)控機制,并運行該BSP文件; 如果不完整,則確定該BSP文件出現(xiàn)異常,上報告警信息;在運行該BSP文 件時,判斷該BSP文件啟動運行是否正常,如果正常,記錄正常啟動該BSP 文件的結(jié)果,將該BSP文件進(jìn)行壓縮,將壓縮后的BSP文件寫入BSP壓縮程 序區(qū);如果不正常,則確定BSP主程序區(qū)中的BSP文件出現(xiàn)異常,上報告警 信息。該裝置用于多處理器系統(tǒng)。本發(fā)明所述的一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法及裝置,達(dá)到的 有益效果如下采用主動檢測BSP文件是否出現(xiàn)不完整或被破壞的方式,做到事先發(fā)現(xiàn) 問題,而不用等到程序執(zhí)行異常之后才發(fā)現(xiàn)問題,避免了在下次啟動時進(jìn)行繁 瑣的異常判斷。在事先發(fā)現(xiàn)問題的基礎(chǔ)上,選擇可用的BSP文件,避免出現(xiàn) 誤判。從而較大地提高了 BSP文件的自我恢復(fù)能力,有效防止了升級失敗導(dǎo) 致系統(tǒng)無法啟動的問題,大大降低了使用專門工具燒寫B(tài)SP文件的需求,提 高了 BSP文件升級的可靠性。采用主動檢測和被動觸發(fā)相結(jié)合的版本回退機制,只需在升級完成之后的第一次啟動進(jìn)行版本有效性檢測,大大降低了對各種標(biāo)志、定時器等檢測手段的依賴。由于BSP文件功能相對簡單,如果BSP文件完成了一次正常啟動, 則只要該BSP文件內(nèi)容沒發(fā)生變化,其以后的每次執(zhí)行都應(yīng)該正常。因此, 在確認(rèn)升級完成之后的第一次啟動測試過程中,BSP升級文件能夠正常啟動, 則以后只要保證每次啟動時4企測文件未被破壞,就可以保證程序的有效性。在 本發(fā)明中,在完成升級后的第一次啟動過程中,先進(jìn)4亍BSP文件完整性校驗, 然后進(jìn)行BSP文件的有效性檢測。如果通過檢查,則以后的每次啟動只需進(jìn) 行BSP文件完整性校驗即可,而用于有效性檢測的系統(tǒng)資源在以后的每次啟 動中將不再使用,從而可以釋放給其他程序使用,進(jìn)而提高了 BSP的可移植 性,使該方法能夠廣泛用于數(shù)字信號處理器(DSP)或者一些外部資源較少的 系統(tǒng)。采用壓縮方式存儲備份BSP文件,降低了對ROM存儲容量的要求。 采用分離式傳遞信息的啟動階段異常告警上報方式,向用戶提供統(tǒng)一的告 警上報接口,從而不用關(guān)心用戶的告警處理方式,提高了 BSP文件的可移植 性;該告警上報方式能夠在啟動執(zhí)行過程中的任何階段進(jìn)行分離式告警上報, 如在版本回退或版本升級之后向用戶上報告警,從而打破了原來不能在啟動過 程中上報告警的限制,提高了系統(tǒng)的可維護(hù)性,同時為用戶主動發(fā)起版本回退 提供了條件。采用硬件復(fù)位相關(guān)資源作為是否為有效性檢測的標(biāo)志,利用不同的復(fù)位方 式控制檢測步驟的方法。避免了現(xiàn)有技術(shù)中BSP文件啟動時因為人工復(fù)位或 斷電引起的錯誤的版本回退操作,使操作更加簡單可靠。


圖1為本發(fā)明中嵌入式系統(tǒng)自動檢測和恢復(fù)啟動裝置的結(jié)構(gòu)框圖; 圖2為本發(fā)明具體實施例中ROM存儲區(qū)域劃分示意圖; 圖3為本發(fā)明具體實施例中BSP主程序區(qū)文件替換流程圖; 圖4為本發(fā)明具體實施例中BSP文件有效性檢測流程圖; 圖5為本發(fā)明具體實施例中BSP主程序區(qū)與BSP壓縮程序區(qū)互為冗余的 BSP文件替換流程圖。
具體實施方式
本發(fā)明所述的嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法,通過程序完整性校驗驗證BSP文件是否遭到破壞,通過程序有效性檢測驗證BSP文件是否存在 重大問題,利用分離式啟動階段告警方式將BSP文件的缺陷即啟動過程中的 各種異常上報用戶,并支持由用戶主動觸發(fā)的BSP文件版本回退。其中,導(dǎo) 致BSP文件版本回退的原因包括BSP文件存在重大缺陷;BSP文件本身因 為傳輸或存儲介質(zhì)的原因被破壞;BSP文件能正常啟動,但對應(yīng)于實現(xiàn)某些功 能的部分BSP文件存在缺陷。下面結(jié)合附圖來說明本發(fā)明的具體實施方式
。圖1為本發(fā)明中嵌入式系統(tǒng)自動檢測和恢復(fù)啟動裝置的結(jié)構(gòu)框圖,圖中嵌 入式系統(tǒng)自動檢測和恢復(fù)啟動裝置1包括BSP主程序區(qū)BSP文件替換模塊101,用于根據(jù)BSP文件計算第二校驗信息,判斷BSP文件是否帶有第一校驗信息,如果帶有第一校驗信息,則進(jìn) 一步判斷第一校驗信息與第二校驗信息是否匹配,如果匹配,則將BSP文件 寫入BSP主程序區(qū),替換BSP主程序區(qū)中的原BSP文件;如果不匹配,則確 定BSP文件替換失敗,上報告警信息;BSP文件有效性檢測模塊102,用于設(shè)置硬件復(fù)位相關(guān)資源標(biāo)志,進(jìn)行硬 件無關(guān)重啟,如果硬件復(fù)位相關(guān)資源標(biāo)志類型為BSP文件有效性檢測標(biāo)志, 則進(jìn)行BSP文件有效性檢測,監(jiān)控BSP文件的啟動過程,啟動用戶程序,上 報告警信息;如果硬件復(fù)位相關(guān)資源標(biāo)志類型為請求版本回退標(biāo)志,則啟動版 本回退流程;BSP壓縮程序區(qū)BSP文件替換模塊103,用于判斷BSP主程序區(qū)中的BSP 文件是否完整,如果完整,則啟動監(jiān)控機制,并運行該BSP文件;如果不完 整,則確定該BSP文件出現(xiàn)異常,上報告警信息;在運行該BSP文件時,判 斷該BSP文件啟動運行是否正常,如果正常,記錄正常啟動該BSP文件的結(jié) 果,將該BSP文件進(jìn)行壓縮,將壓縮后的BSP文件寫入BSP壓縮程序區(qū);如 果不正常,則確定BSP主程序區(qū)中的BSP文件出現(xiàn)異常,上報告警信息。圖2為本發(fā)明中ROM存儲區(qū)劃分示意圖,圖中ROM存儲區(qū)2包括應(yīng)用 程序區(qū)201 、 BSP壓縮程序區(qū)202、 BSP主程序區(qū)203和系統(tǒng)初始化(BOOT)程序區(qū)204。其中,應(yīng)用程序區(qū)201用于存^L高層用戶程序。BSP壓縮程序區(qū)202用于存放經(jīng)過壓縮的BSP主程序。BSP主程序區(qū)203用于存放BSP主程序。BOOT程序區(qū)204用于存放BOOT程序。BOOT程序和BSP主程序具體描述如下完整的BSP文件包括BOOT程序和BSP主程序兩部分,其中,BOOT程 序負(fù)責(zé)最小硬件環(huán)境的初始化,以及啟動BSP主程序。BSP主程序包含的內(nèi) 容一般來說是和嵌入式系統(tǒng)有關(guān)的驅(qū)動和程序,如與系統(tǒng)中網(wǎng)絡(luò)協(xié)議有關(guān)的網(wǎng) 絡(luò)驅(qū)動,與系統(tǒng)下載調(diào)試有關(guān)的串口驅(qū)動等。BOOT程序相對BSP主程序而言,更為簡單,其所需的存儲空間也較小, 大約在10Kb到200Kb范圍內(nèi)。另外,BOOT程序與高層用戶程序無關(guān),只與 硬件基本配置相關(guān),這就意味著BOOT程序幾乎是不會因為軟件需求或者大 多數(shù)BSP功能而被升級的,因此可以將BOOT程序和BSP主程序分別存儲在 ROM存儲區(qū)的不同位置中。為了描述方便,下文所述BSP文件特指BSP主程 序。BSP自動檢測和恢復(fù)啟動過程包括BSP主程序區(qū)文件替換、BSP文件有 效性檢測和BSP壓縮程序區(qū)文件替換。圖3為本發(fā)明具體實施例中BSP主程序區(qū)文件替換流程圖,具體步驟如下步驟301,根據(jù)BSP文件計算出第二校驗信息。該第二校驗信息用于BSP文件啟動過程中的完整性4交驗,其計算方法可 以采用CRC校驗等方法,以便通過校驗信息驗證文件的完整性。無論采用何 種算法,其所使用的校驗方法都需要和第一校驗信息、第三校驗信息的校驗方 法一致。步驟302,判斷該BSP文件是否帶有第一校驗信息,如果是,進(jìn)入步驟 303;否則,進(jìn)入步驟304。 '步驟303,判斷第一校驗信息與第二校驗信息是否匹配,如果是,則進(jìn)入 步驟304,否則,進(jìn)入步驟308。200710117702.8說明書第9/12頁步驟304,將BSP文件寫入BSP主程序區(qū),替換BSP主程序區(qū)中的原BSP 文件。步驟305,根據(jù)寫入的BSP文件計算出第三校驗信息。步驟306,判斷第二校驗信息與第三校驗信息是否匹配,如果是,則進(jìn)入步驟307;否則,進(jìn)入步驟308。步驟307,確定BSP主程序區(qū)文件替換成功。'步驟308,確定BSP主程序區(qū)文件替換失敗,上報告警。該步驟中,將BSP主程序區(qū)文件替換過程中出現(xiàn)的異常情況以告警方式上報給用戶,用戶收到告警之后,可以根據(jù)不同的告警原因進(jìn)行相應(yīng)的處理,如檢查BSP升級文件,主動觸發(fā)版本回退或再次升級BSP文件等。上述步驟通過對升級的BSP文件在其寫入BSP主程序區(qū)之前以及寫入BSP主程序區(qū)之后的兩次文件完整性校驗,^v而更加全面的確保BSP文件升級的正確性。在BSP主程序區(qū)文件替換完成之后,對BSP文件進(jìn)行有效性檢測,該檢 測通過對BSP文件進(jìn)行一次啟動測試來實現(xiàn),需要強調(diào)的是僅僅通過一次啟 動測試就可完成有效性檢測。圖4為本發(fā)明具體實施例中BSP文件有效性檢 測流程圖,具體步驟如下步驟401 ,設(shè)置硬件復(fù)位相關(guān)資源標(biāo)志。硬件復(fù)位相關(guān)資源標(biāo)志包括兩種類型 一種為BSP文件有效性檢測標(biāo)志, 另 一種為請求版本回退標(biāo)志。為了防止因為人工復(fù)位或斷電引起的錯誤的版本回退操作,在復(fù)位前,采 用硬件復(fù)位相關(guān)資源記錄復(fù)位參數(shù)。硬件復(fù)位相關(guān)資源指的是受到硬件復(fù)位影 響的資源,例如寄存器。步驟402,進(jìn)行硬件無關(guān)重啟。硬件無關(guān)重啟是指不會對硬件復(fù)位相關(guān)資源產(chǎn)生影響的復(fù)位,相對于硬件 相關(guān)重啟,硬件無關(guān)重啟能夠向下次啟動傳遞是否需要進(jìn)行有效性檢測的信 息。具體的說,可以通過寄存器記錄復(fù)位參數(shù),指針跳轉(zhuǎn)來實現(xiàn)本操作。通過 硬件無關(guān)重啟,在下一次啟動運行BSP文件時,通過^^更件無關(guān)重啟獲得的信 息判斷是否需要進(jìn)行有效性測試。步驟403,判斷硬件復(fù)位相關(guān)資源標(biāo)志類型是否為BSP文件有效性檢測標(biāo) 志;如果是,則進(jìn)入步驟404;否則,進(jìn)入步驟405。步驟404,進(jìn)行BSP文件有效性檢測,監(jiān)控BSP文件的啟動過程,進(jìn)入 步驟406。步驟405,啟動版本回退流程,進(jìn)入步驟408。如果程序文件在進(jìn)行有效性檢測時,沒有成功啟動,則觸發(fā)一次版本回退, 并上報告警。版本回退流程為將BSP壓縮程序區(qū)中的BSP壓縮文件解壓后, 通過BOOT程序啟動解壓后的BSP文件,啟動成功后,爿奪該解壓后的BSP文 件寫入BSP主程序區(qū),替換BSP主程序區(qū)的原BSP文件。步驟406,判斷BSP文件是否完整,如果是,進(jìn)入步驟407;否則,進(jìn)入 步驟405。BOOT程序首先要進(jìn)行BSP文件完整性的,即對BSP文件計算校驗信息, 然后與原先記錄的校驗信息進(jìn)行匹配比較。如果匹配,說明BSP文件沒有被 破壞。步驟407,判斷BSP文件啟動是否成功,如果是,進(jìn)入步驟408;否則, 進(jìn)入步驟401。通過啟動標(biāo)志或者定時檢測功能對文件啟動過程進(jìn)行監(jiān)控,如果本次啟動 正常,則表明該BSP文件通過有效性檢測;如果本次啟動異常,則表明該BSP 文件的有效性檢測失敗。步驟408,啟動用戶程序,上報告警信息。在整個有效性檢測過程中可能會出現(xiàn)異常情況,因此需要上報告警信息通 知用戶。對于不同系統(tǒng),用戶程序?qū)Ω婢奶幚斫涌诤吞幚矸椒ㄓ兴煌T?本發(fā)明中,采用分離方式的告警方式,即在BSP文件自動檢測和恢復(fù)啟動過 程中,將各個階段出現(xiàn)的異常情況的各種信息通過全局變量或者內(nèi)存,以特定的格式記錄,待用戶軟件運行起來之后,獲取這些信息,組織各自的告警形式 進(jìn)行告警。這種告警方式,擴(kuò)展了告警階段,并且不會影響用戶程序。上述過程中,本發(fā)明僅僅使用一個硬件復(fù)位相關(guān)資源作為是否為有效性檢 測的標(biāo)志,利用不同的復(fù)位方式控制有效性檢測,避免了現(xiàn)有技術(shù)中啟動時因 為人工復(fù)位或斷電引起的錯誤的版本回退操作,而且更加簡單可靠。在BSP文件有效性檢測過程完成后,進(jìn)行BSP壓縮程序區(qū)文件替換,具 體過程為在確認(rèn)BSP主程序區(qū)的新BSP文件能夠正常啟動后,;險查BSP壓縮程序 區(qū)中BSP文件的版本是否與BSP主程序區(qū)的BSP文件片反本相同,如果是,則 不動作;否則,將BSP主程序區(qū)的BSP文件進(jìn)4亍壓縮后,寫入BSP壓縮程序 區(qū),替換BSP壓縮程序區(qū)中原有的BSP文件,以使得BSP壓縮程序區(qū)的BSP 文件版本與BSP主程序區(qū)的BSP文件版本始終保持一致。其中,BSP壓縮程 序區(qū)的BSP文件可以在板卡端動態(tài)生成,另外,在替換過程中還可加入校驗 機制,以確保BSP壓縮程序區(qū)的文件的替換可靠。對于上述的BSP主程序區(qū)和BSP壓縮程序區(qū),在實際的BSP自啟動檢測 過程中互為冗余,當(dāng)其中一者存儲的BSP文件出現(xiàn)異常時,將自動選擇其中 另一者存儲的BSP文件來完成嵌入式系統(tǒng)的啟動。圖5為本發(fā)明具體實施例 中BSP主程序區(qū)與BSP壓縮程序區(qū)互為冗余的BSP文件替換流程圖,具體步 驟如下步驟501和502,對BSP主程序區(qū)中的BSP文件進(jìn)4亍完整性校驗,判斷 BSP文件是否完整,如果是,進(jìn)入步驟503;否則,進(jìn)入步驟506。步驟503,啟動監(jiān)控機制,并運行BSP主程序區(qū)中的BSP文件。步驟504,判斷該BSP文件啟動運行是否正常,如果是,進(jìn)入步驟505; 否則,進(jìn)入步驟506。步驟505,記錄正常啟動該文件的結(jié)果,并將該文件進(jìn)行壓縮后,將壓縮 后的BSP文件寫入BSP壓縮程序區(qū),替換BSP壓縮程序區(qū)中原有的BSP壓 縮文件。步驟506,確定BSP主程序區(qū)中的BSP文件出現(xiàn)異常,上報告警信息, 并判斷BSP壓縮程序區(qū)是否存在BSP壓縮文件,如果是,進(jìn)入步驟507;否 則,進(jìn)入步驟410。步驟507,對BSP壓縮文件解壓縮,啟動運行解壓縮后的BSP文件。步驟508,判斷該BSP文件啟動運行是否正常,如果是,進(jìn)入步驟509; 否則進(jìn)入步驟510。步驟509,將解壓縮后的BSP文件寫入到BSP主程序區(qū)。步驟510,上報告警信息。上述步驟506至510主要針對當(dāng)BSP主程序區(qū)的BSP文件出現(xiàn)異常時, 將備份在BSP壓縮區(qū)的BSP壓縮文件解壓縮后,在確定該解壓縮后的BSP文 件啟動運行正常后,將該BSP文件寫入BSP主程序區(qū),替4戈出現(xiàn)異常的原BSP 文件。由于本發(fā)明降低了對標(biāo)識或定時器等啟動4企測手^殳的依賴,因此,還可將 本發(fā)明移植到多處理器系統(tǒng)中,如對于一個有主處理器和協(xié)處理器的系統(tǒng),協(xié) 處理器的啟動程序每次由主處理器對其進(jìn)行加載,通過本發(fā)明提供的方法能較 好地保證啟動的可靠性。下述為本發(fā)明在分布式處理器系統(tǒng)中的一個具體實施 例。多處理器系統(tǒng)包括一個主處理器和一個協(xié)處理器,其中,主處理器為計算 機,協(xié)處理器為數(shù)字信號處理器(DSP, Digital Signal Processor),作為協(xié)處理 器的DSP在功能上比較單一,無法提供富余的啟動檢測機制資源,如定時器 等,這些資源往往被專用程序使用;另外,也無法提供足夠的空間存放兩份啟 動程序。采用本發(fā)明提供的嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法,由主處理 器管理協(xié)處理器DSP的BSP文件,在進(jìn)行BSP文件版本更新時,由主處理器 對BSP文件進(jìn)行完整性校驗,即在主處理器上完成替換BSP文件的過程,通 過專門的鏈路將用于啟動DSP的BSP文件發(fā)送給協(xié)處理器DSP。另外,對 BSP文件只作一次有效性4企測,在有效性檢測完成后,以后的BSP文件啟動 將不再使用這些資源,從而可以將這些資源歸還給協(xié)處理器,從而減少對協(xié)處 理器資源的占用。對BSP文件啟動運行狀況進(jìn)行監(jiān)控,如果升級后的BSP文 件啟動運行不正常,則將BSP壓縮程序區(qū)的文件解壓縮后恢復(fù)到協(xié)處理器中; 如果升級后的BSP文件啟動運行正常,將BSP主程序區(qū)的文件進(jìn)行壓縮后, 寫入到BSP壓縮程序區(qū),替換BSP壓縮程序區(qū)中原有的文件。在本發(fā)明的具體實施例中,用于升級的BSP文件的存放方式既可以是二 進(jìn)制目標(biāo)程序,也可以是文件方式。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā) 明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法,其特征在于,該嵌入式系統(tǒng)的存儲區(qū)包括應(yīng)用程序區(qū)、BSP板級支持包壓縮程序區(qū)、BSP主程序區(qū)和系統(tǒng)初始化程序區(qū),該方法包括以下步驟A.替換BSP主程序區(qū)中的BSP文件;B.對替換后的BSP文件進(jìn)行有效性檢測;C.將通過有效性檢測的BSP文件替換到BSP壓縮程序區(qū)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A包括 Al.根據(jù)BSP文件計算出第二校驗信息;A2.判斷該BSP文件是否帶有第一校驗信息,如果是,進(jìn)入步驟A3,否 則,進(jìn)入步驟A4;A3.判斷第一校驗信息與第二校驗信息是否匹配,如果是,進(jìn)入步驟A4, 否則,進(jìn)入步驟A5;A4.將BSP文件寫入BSP主程序區(qū),替換BSP主程序區(qū)中的原BSP文件;A5.確定BSP文件替換失敗,上報告警信息。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟A4與A5之間進(jìn) 一步包括根據(jù)寫入BSP主程序區(qū)的BSP文件計算出第三校驗信息,判斷該第三校 驗信息與第二校驗信息是否匹配,如果是,確定BSP文件替換成功;否則, 進(jìn)入步驟A5。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B包括Bl.設(shè)置硬件復(fù)位相關(guān)資源標(biāo)志,該標(biāo)志包括BSP文件有效性;險測標(biāo)志 和請求版本回退標(biāo)志;B2.進(jìn)^^更件無關(guān)重啟;B3.判斷硬件復(fù)位相關(guān)資源標(biāo)志類型是否為BSP文件有效性檢測標(biāo)志; 如果是,則進(jìn)入步驟B4;否則,進(jìn)入步驟B5;B4.進(jìn)行BSP文件有效性4企測,監(jiān)控BSP文件的啟動過程,進(jìn)入步驟B5.啟動纟反本回退流程; B6.啟動用戶程序。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟B5與B6之間進(jìn) 一步包括判斷BSP文件啟動是否成功,如果是,進(jìn)入步-驟B6;否則,進(jìn)入步驟Bl。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述判斷BSP文件啟動是 否成功前進(jìn)一步包括判斷BSP文件是否完整,如果是,判斷BSP文件啟動是否成功;否則, 進(jìn)入步驟B5。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C包括Cl.判斷BSP主程序區(qū)中的BSP文件是否完整,如果是,進(jìn)入步驟C2; 否則,進(jìn)入步驟C5;C2.啟動監(jiān)控機制,并運行該BSP文件;C3.判斷該BSP文件啟動運行是否正常,如果是,進(jìn)入步驟C4;否則, 進(jìn)入步驟C5;C4.記錄正常啟動該BSP文件的結(jié)果,將該BSP文件進(jìn)行壓縮,將壓縮 后的BSP文件寫入BSP壓縮程序區(qū);C5.確定該BSP文件出現(xiàn)異常,上報告警信息。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟C5后進(jìn)一步包括Dl.判斷BSP壓縮程序區(qū)是否存在BSP壓縮文件,如果是,進(jìn)入步驟 D2;否則,進(jìn)入步驟D5;D2.對BSP壓縮文件解壓縮,啟動運行解壓縮后的BSP文件;D3.判斷該BSP文件啟動運行是否正常,如果是,進(jìn)入步驟D4;否則,進(jìn)入步驟D5;D4.將解壓縮后的BSP文件寫入到BSP主程序區(qū);D5.上報告警信息。
9. 根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法用于多處理器系統(tǒng)。
10. 根據(jù)權(quán)利要求2、 7或8所述的方法,其特征在于,所述上報告警信 息方式為分離式傳遞信息的啟動階段異常告警上報方式,包括以下步驟將異常情況的信息通過全局變量或者內(nèi)存,以預(yù)定^^式記錄,在用戶程序 啟動運行后,根據(jù)這些信息,以預(yù)定形式上報告警信息。
11. 一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的裝置,其特征在于,包括 BSP主程序區(qū)BSP文件替換模塊、BSP文件有效性檢測模塊和BSP壓縮程序區(qū)BSP文件替換模塊。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述BSP主程序區(qū)BSP文件替換模塊,用于根據(jù)BSP文件計算第二校驗 信息,判斷BSP文件是否帶有第一校驗信息,如果帶有第一校驗信息,則進(jìn) 一步判斷第一校驗信息與第二校驗信息是否匹配,如果匹配,則將BSP文件 寫入BSP主程序區(qū),替換BSP主程序區(qū)中的原BSP文件;如果不匹配,則確 定BSP文件替換失敗,上報告警信息;所述BSP文件有效性檢測模塊,用于設(shè)置硬件復(fù)位相關(guān)資源標(biāo)志,進(jìn)行 硬件無關(guān)重啟,如果硬件復(fù)位相關(guān)資源標(biāo)志類型為BSP文件有效性檢測標(biāo)志, 則進(jìn)行BSP文件有效性檢測,監(jiān)控BSP文件的啟動過程,啟動用戶程序,上 報告警信息;如果硬件復(fù)位相關(guān)資源標(biāo)志類型為請求版本回退標(biāo)志,則啟動版 本回退流程;所述BSP壓縮程序區(qū)BSP文件替換模塊,用于判斷BSP主程序區(qū)中的 BSP文件是否完整,如果完整,則啟動監(jiān)控才幾制,并運4于該BSP文件;如果 不完整,則確定該BSP文件出現(xiàn)異常,上報告警信息;在運行該BSP文件時, 判斷該BSP文件啟動運行是否正常,如果正常,記錄正常啟動該BSP文件的 結(jié)果,將該BSP文件進(jìn)行壓縮,將壓縮后的BSP文件寫入BSP壓縮程序區(qū); 如果不正常,則確定BSP主程序區(qū)中的BSP文件出現(xiàn)異常,上報告警信息。
13. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,該裝置用于多處理器系統(tǒng)。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的方法將存儲區(qū)劃分為應(yīng)用程序區(qū)、BSP壓縮程序區(qū)、BSP主程序區(qū)和系統(tǒng)初始化程序區(qū);替換BSP主程序區(qū)中的BSP文件;對替換后的BSP文件進(jìn)行有效性檢測;將通過有效性檢測的BSP文件替換到BSP壓縮程序區(qū)。同時還公開了一種嵌入式系統(tǒng)自動檢測和恢復(fù)啟動的裝置,包括BSP主程序區(qū)BSP文件替換模塊、BSP文件有效性檢測模塊和BSP壓縮程序區(qū)BSP文件替換模塊。通過本發(fā)明提供的方法和裝置,提高了BSP文件升級的可靠性和系統(tǒng)的可維護(hù)性,減少了對系統(tǒng)資源的占用。
文檔編號G06F11/36GK101329631SQ20071011770
公開日2008年12月24日 申請日期2007年6月21日 優(yōu)先權(quán)日2007年6月21日
發(fā)明者文 李, 禹 笪 申請人:大唐移動通信設(shè)備有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1