• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種嵌入式系統(tǒng)bootrom自動備份及切換技術(shù)

    一種嵌入式系統(tǒng)bootrom自動備份及切換技術(shù)

    作者: 時間:2012-03-13 來源:網(wǎng)絡(luò) 收藏

    ③如果FlashA中的代碼已經(jīng)損壞,CPU將無法啟動。此時,CPLD等待5 s后檢測到的啟動寄存器值仍為初始值,CPLD認為FlashA已損壞,boot_cs信號輸出到FlashB,然后發(fā)送一個復(fù)位信號給CPU,CPU重新開始啟動過程。CPU從FlashB中啟動代碼,啟動完成后,軟件向CPLD的啟動寄存器中寫入值B。此時輸出CS1給FlashA,軟件檢測FlashA中代碼的完整性。如果完整,則不處理。如果發(fā)現(xiàn)FlashA中代碼不完整,則更新FlashA中的代碼,更新完畢后通知CPLD復(fù)位CPU,并輸出boot_cs給FlashA,從FlashA重新啟動。
    更新時,首先改寫FlashA中的代碼,并重新啟動;然后驗證FlashA中代碼的完整性,如果FlashA中代碼完整,則更新到FlashB中。

    2 實現(xiàn)
    由軟件和CPLD配合實現(xiàn),其中CPLD根據(jù)軟件反饋的狀態(tài)來確定片選的分配以及系統(tǒng)的復(fù)位。軟件則在啟動后對cpld Bootrom_run寄存器進行置位,并對兩片F(xiàn)lash的代碼進行CRC校驗。如果有錯誤,則修復(fù)相應(yīng)的Flash代碼,并記錄相關(guān)錯誤信息。
    CPLD工作流程如圖2所示。

    本文引用地址:http://www.czjhyjcfj.com/article/149452.htm

    b.jpg


    本系統(tǒng)采用了Altera公司的MAXII CPLD實現(xiàn),編譯通過后僅占用124個邏輯單元,很方便就可以把相關(guān)的代碼添加到產(chǎn)品現(xiàn)有的CPLD中,實現(xiàn)bootrom功能。

    結(jié)語
    本文提出了一種基于CPLD實現(xiàn)軟件bootrom功能的方法。該方法在PowerPC處理器MPC5200、MIPS處理器RM7000A和ARM處理器ATM9200的平臺上都得到了驗證,均能保證系統(tǒng)的正常啟動,并能完成bootrom的恢復(fù),為產(chǎn)品軟件更新升級提供了強有力的保證。本設(shè)計由于采用了兩片F(xiàn)lash,因此增加了一定的設(shè)計難度和成本。但相對于可靠的bootrom更新機制、自動化和可靠性所帶來的維護成本的降低,這個代價是值得的。

    linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 广丰县| 蒙山县| 阜阳市| 桐梓县| 天长市| 甘肃省| 论坛| 临西县| 威宁| 龙里县| 专栏| 新干县| 榕江县| 郴州市| 耿马| 师宗县| 汾阳市| 隆德县| 瑞丽市| 孝感市| 寿宁县| 沂水县| 阿克苏市| 兴山县| 水城县| 陆川县| 南安市| 廉江市| 依兰县| 卫辉市| 秦皇岛市| 江阴市| 察雅县| 南昌市| 博野县| 无为县| 仁布县| 平罗县| 明溪县| 瓦房店市| 赤峰市|