[發明專利]一種單片機在線升級方法和系統有效
| 申請號: | 201810995065.2 | 申請日: | 2018-08-29 |
| 公開(公告)號: | CN109240730B | 公開(公告)日: | 2021-10-08 |
| 發明(設計)人: | 陳建宇;胡毅;張博 | 申請(專利權)人: | 武漢光迅科技股份有限公司 |
| 主分類號: | G06F8/654 | 分類號: | G06F8/654 |
| 代理公司: | 深圳市愛迪森知識產權代理事務所(普通合伙) 44341 | 代理人: | 何婷 |
| 地址: | 430074 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 單片機 在線 升級 方法 系統 | ||
1.一種單片機在線升級方法,其特征在于,將單片機的FLASH分為公用的中斷向量區、應用程序A區和應用程序B區,其中,所述中斷向量區為所述應用程序A區和所述應用程序B區的公用區域,且所述應用程序A區與所述應用程序B區均由各自的中斷向量區和程序代碼區組成,所述方法包括:
單片機接收到升級開始命令后初始化升級變量,并向上位機升級軟件回復當前運行的應用程序區域,以便上位機升級軟件根據單片機當前運行區域來決定生成需要傳送的升級Bin文件;
單片機接收由上位機升級軟件傳送來的升級Bin文件,并將所述升級Bin文件存儲在單片機FLASH當前未運行的應用程序區域;其中,升級程序的中斷向量區對應寫入單片機中當前未運行的應用程序區域的中斷向量區;
單片機接收升級跳轉命令后關閉中斷,并將寫入到當前未運行應用程序區域中的升級程序的中斷向量區復制到單片機中公用的中斷向量區,單片機軟重啟后運行新的程序,完成升級。
2.根據權利要求1所述的單片機在線升級方法,其特征在于,所述上位機升級軟件根據單片機當前運行區域來決定生成需要傳送的升級Bin文件,具體為:根據單片機回復的當前運行的應用程序區域,上位機升級軟件判斷升級程序是否與單片機當前運行區域同區,如果不同區,則直接將當前的升級Bin文件傳送給單片機;如果同區,則上位機升級軟件將當前的升級Bin文件轉換生成另一個區升級Bin文件,再將轉換后的升級Bin文件傳送給單片機。
3.根據權利要求2所述的單片機在線升級方法,其特征在于,所述上位機升級軟件將當前的升級Bin文件轉換成另一個區升級Bin文件,具體為:
根據轉換的區域計算地址偏移量;
讀取當前的升級Bin文件的一個字節,通過查表獲得對應指令包含的字節數N,并分析指令是否與地址有關;
如果指令與地址有關,則將指令對應的地址加上或者減去一個地址偏移量,生成新的地址并替換原地址字節;如果指令與地址無關,則直接將N個字節復制到新的Bin文件中去。
4.根據權利要求1所述的單片機在線升級方法,其特征在于,所述單片機接收由上位機升級軟件傳送來的升級Bin文件,并將所述升級Bin文件存儲在單片機FLASH當前未運行的應用程序區域,具體為:
單片機接收到由上位機升級軟件傳送來的升級Bin文件的數據包,計算并判斷所述數據包的校驗值是否正確,如果正確,將所述數據包寫入單片機FLASH當前未運行的應用程序區;其中,如果是第一個升級Bin文件數據包,則先判斷升級程序的區域是否正確,在正確的前提下再計算并判斷所述數據包的校驗值是否正確。
5.根據權利要求1所述的單片機在線升級方法,其特征在于,在所述單片機接收升級開始命令之前,所述方法還包括:將編譯器生成的Hex文件導入上位機升級軟件,上位機升級軟件將Hex文件轉換成升級所需的Bin文件。
6.根據權利要求1所述的單片機在線升級方法,其特征在于,所述升級Bin文件由中斷向量區和程序代碼區組成,所述升級Bin文件的中斷向量區內設有文件信息區,用于存儲所述升級Bin文件的文件長度和校驗值;所述升級Bin文件的程序代碼區內設有文件識別區,用于判斷所述升級Bin文件是否為需要的升級文件。
7.根據權利要求6所述的單片機在線升級方法,其特征在于,對于所述應用程序A區和所述應用程序B區,所述升級Bin文件的文件識別區位于固定地址,具體為:對于兩個應用程序區域的升級Bin文件,文件識別區的地址差值與兩個應用程序區域間的地址偏移量一致,且文件識別區的起始地址與各自應用程序區域的起始地址間的差值也一致。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢光迅科技股份有限公司,未經武漢光迅科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810995065.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種修復固件代碼的方法及系統
- 下一篇:一種基于靈活規則的流程編排方法





