[發明專利]一種對單片機軟件錯誤進行恢復的方法及系統有效
| 申請號: | 201410357317.0 | 申請日: | 2014-07-24 |
| 公開(公告)號: | CN105279043B | 公開(公告)日: | 2018-07-27 |
| 發明(設計)人: | 葛寧;殷柳國;張浩;陸建華 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/10 | 分類號: | G06F11/10;G06F11/14 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 李相雨 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 單片機 軟件 錯誤 進行 恢復 方法 系統 | ||
1.一種對單片機軟件錯誤進行恢復的方法,其特征在于,所述方法包括以下步驟:
將單片機軟件中的主程序進行備份,得到主程序的多個軟件備份,并對所述多個軟件備份進行排序;
將所述多個軟件備份保存在單片機程序存儲空間;
當所述單片機軟件發生錯誤時,對所述單片機軟件的多個軟件備份進行校驗并獲取校驗結果;
根據所述校驗結果,將通過校驗的軟件備份的備份序號保存在內存空間中;
根據所述備份序號引導所述單片機軟件跳轉到某一個通過校驗的軟件備份,實現單片機軟件錯誤的恢復。
2.如權利要求1所述的方法,其特征在于,所述單片機軟件中添加有初始化程序、校驗引導程序和中斷函數的選擇性跳轉程序。
3.如權利要求1所述的方法,其特征在于,所述將單片機軟件中的主程序進行備份具體包括:
將單片機軟件中的主函數備份為多個函數內容相同的函數備份,并對多個所述函數備份以不同的備份序號進行命名;
為函數備份組中每一個函數備份分別備份單片機軟件中對應的子函數,得到以對應的函數備份的備份序號命名的子函數備份;
為函數備份組中每一個函數備份分別備份單片機軟件中對應的中斷服務函數,得到以對應的函數備份的備份序號命名的中斷服務函數備份。
4.如權利要求3所述的方法,其特征在于,所述將所述多個軟件備份保存在單片機程序存儲空間具體包括:
將所述函數備份、所述函數備份對應的子函數備份以及所述函數備份對應的中斷服務函數備份作為一個函數組聲明在連續的單片機程序存儲空間內;
分別獲取每一個函數備份的存儲空間起始地址和結束地址,將其填充到對應的軟件備份的起始地址變量和結束地址變量;
分別獲取每一個函數備份的中斷源對應的中斷服務函數備份的程序存儲空間起始地址,將其填充到所述單片機軟件中不同中斷源所對應的中斷服務函數備份的起始地址變量。
5.如權利要求1所述的方法,其特征在于,所述對單片機軟件的多個軟件備份進行校驗并獲取校驗結果具體包括:
獲取預先設定的校驗值的正確值;
采用CRC循環冗余校驗方式或和校驗方式計算所述多個軟件備份的校驗值;
判斷所述預先設定的校驗值的正確值與計算出的某個軟件備份的校驗值是否一致,若一致,則校驗結果為正確,當前軟件備份通過校驗,若不一致,則校驗結果為錯誤,當前軟件備份不能通過校驗。
6.如權利要求4所述的方法,其特征在于,所述引導單片機軟件跳轉到某一個通過校驗的軟件備份具體包括:
獲取通過校驗的軟件備份的備份序號;
獲取與所述備份序號對應的軟件備份的起始地址;
將程序計數器PC指向所述軟件備份的起始地址。
7.如權利要求6所述的方法,其特征在于,所述方法還包括:
當發生中斷時,根據通過校驗的軟件備份的備份序號,查找所述單片機軟件中不同中斷源所對應的與所述備份序號對應的中斷服務函數備份的起始地址;
將程序計數器PC指向所述中斷服務函數備份起始地址。
8.一種對單片機軟件錯誤進行恢復的系統,其特征在于,所述系統包括:
備份模塊,用于將單片機軟件中的主程序進行備份,得到主程序的多個軟件備份,并對所述多個軟件備份進行排序;
程序存儲模塊,用于將所述多個軟件備份保存在單片機程序存儲空間;
校驗模塊,用于當所述單片機軟件發生錯誤時,對所述單片機軟件的多個軟件備份進行校驗并獲取校驗結果;
數據存儲模塊,根據所述校驗結果,將通過校驗的軟件備份的備份序號保存在內存空間中;
引導跳轉模塊,用于根據所述備份序號引導所述單片機軟件跳轉到某一個通過校驗的軟件備份,實現單片機軟件錯誤的恢復。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201410357317.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:自動化測試方法和裝置
- 下一篇:一致性緩存控制系統和方法





