裝置遠程在線程序更新方法
【技術領域】
[0001]本發(fā)明屬于程序更新技術領域,尤其是涉及一種裝置遠程在線程序更新方法。
【背景技術】
[0002]在物聯(lián)網(wǎng)飛速發(fā)展的今天,移動終端設備、儀器儀表等得到廣泛的應用。這種終端裝置由于分布的區(qū)域比較廣,數(shù)量多,使得遠程程序更新功能成為其必不可少的重要功能之一?,F(xiàn)有的遠程程序更新方式一般是采用ARM嵌入式,其本身存在在線編程功能,但其成本高,設計電路復雜。而對于一些成本低的簡單的單片機沒有在線編程功能。
【發(fā)明內容】
[0003]本發(fā)明要解決的問題是提供一種裝置遠程在線程序更新方法。
[0004]為解決上述技術問題,本發(fā)明采用的技術方案是:
[0005]一種裝置遠程在線程序更新方法,其特征在于包含:
[0006]所述裝置的CPU的內部FLASH分兩塊,分別為存儲BooLoader自編程代碼的BooLoader存儲區(qū)和存儲APP應用程序代碼的APP存儲區(qū);
[0007]先通過與CPU連接的GPRS模塊將要替換的APP應用程序代碼,保存到與CPU連接的外部FLASH內;
[0008]程序全部下載完成后,校驗文件CRC校驗無誤后,將指向BooLoader存儲區(qū)的自編程代碼指針PC_Boot跳轉到BooLoader存儲區(qū),使其內的BootLoader自編程代碼運行啟動CPU的FLASH自編程功能,讀取外部FLASH內的代碼,替換到APP存儲區(qū);
[0009]替換結束后,再切換到指向APP存儲區(qū)的應用程序指針PC_APP運行新的APP應用程序代碼;FLASH自編程結束,實現(xiàn)代碼的遠程在線更新。
[0010]優(yōu)選的,所述GPRS模塊將要替換的APP應用程序代碼保存到與外部FLASH內的過程中代碼分塊下載:
[0011]先發(fā)送第N塊信息,后下載第N塊代碼,查驗第N塊代碼是否下載完:
[0012]若否則重新下載第N塊代碼;若是則查驗第N塊信息的是否正確:
[0013]若否則重新下載第N塊代碼,若是則查驗整個文件是否下載完:
[0014]若否則繼續(xù)發(fā)送第N+1塊信息,若是則查詢這個文件信息是否正確:
[0015]若否則重新下載,若是則啟動FLASH自編程。
[0016]本發(fā)明具有的優(yōu)點和積極效果是:
[0017]本發(fā)明方法實現(xiàn)了沒有在線編程功能的單片機的遠程程序更新,在控制端,執(zhí)行遠程命令運行更新遠程裝置的程序,且程序更新支持斷點續(xù)傳、文件校驗,可靠性好。
【附圖說明】
[0018]圖1是本發(fā)明裝置的結構原理圖;
[0019]圖2是本發(fā)明文件下載流程圖。
【具體實施方式】
[0020]下面結合附圖對本發(fā)明的具體實施例做詳細說明。
[0021]一種裝置遠程在線程序更新方法,包含:
[0022]所述裝置的CPU的內部FLASH分兩塊,如圖1所示,分別為存儲BooLoader自編程代碼的BooLoader存儲區(qū)和存儲APP應用程序代碼的APP存儲區(qū);
[0023]先通過與CPU連接的GPRS模塊將要替換的APP應用程序代碼,保存到與CPU連接的外部FLASH內;
[0024]程序全部下載完成后,校驗文件CRC校驗無誤后,將指向BooLoader存儲區(qū)的自編程代碼指針PC_Boot跳轉到BooLoader存儲區(qū),使其內的BootLoader自編程代碼運行啟動CPU的FLASH自編程功能,讀取外部FLASH內的代碼,替換到APP存儲區(qū);
[0025]替換結束后,再切換到指向APP存儲區(qū)的應用程序指針PC_APP運行新的APP應用程序代碼;FLASH自編程結束,實現(xiàn)代碼的遠程在線更新。
[0026]本發(fā)明所述GPRS模塊將要替換的APP應用程序代碼保存到與外部FLASH內的過程中代碼分塊下載,如圖2所示:
[0027]先發(fā)送第N塊信息,后下載第N塊代碼,查驗第N塊代碼是否下載完:
[0028]若否則重新下載第N塊代碼;若是則查驗第N塊信息的是否正確:
[0029]若否則重新下載第N塊代碼,若是則查驗整個文件是否下載完:
[0030]若否則繼續(xù)發(fā)送第N+1塊信息,若是則查詢這個文件信息是否正確:
[0031]若否則重新下載,若是則啟動FLASH自編程。
[0032]本發(fā)明方法實現(xiàn)了沒有在線編程功能的單片機的遠程程序更新,在控制端,執(zhí)行遠程命令運行更新遠程裝置的程序,且程序更新支持斷點續(xù)傳、文件校驗,可靠性好。
[0033]以上對本發(fā)明的一個實施例進行了詳細說明,但所述內容僅為本發(fā)明的較佳實施例,不能被認為用于限定本發(fā)明的實施范圍。凡依本發(fā)明申請范圍所作的均等變化與改進等,均應仍歸屬于本發(fā)明的專利涵蓋范圍之內。
【主權項】
1.一種裝置遠程在線程序更新方法,其特征在于包含: 所述裝置的CPU的內部FLASH分兩塊,分別為存儲BooLoader自編程代碼的BooLoader存儲區(qū)和存儲APP應用程序代碼的APP存儲區(qū); 先通過與CPU連接的GPRS模塊將要替換的APP應用程序代碼,保存到與CPU連接的外部FLASH內; 程序全部下載完成后,校驗文件CRC校驗無誤后,將指向BooLoader存儲區(qū)的自編程代碼指針PC_Boot跳轉到BooLoader存儲區(qū),使其內的BootLoader自編程代碼運行啟動CPU的FLASH自編程功能,讀取外部FLASH內的代碼,替換到APP存儲區(qū); 替換結束后,再切換到指向APP存儲區(qū)的應用程序指針PC_APP運行新的APP應用程序代碼;FLASH自編程結束,實現(xiàn)代碼的遠程在線更新。
2.根據(jù)權利要求1所述的裝置遠程在線程序更新方法,其特征在于:GPRS模塊將要替換的APP應用程序代碼保存到與外部FLASH內的過程中代碼分塊下載: 先發(fā)送第N塊信息,后下載第N塊代碼,查驗第N塊代碼是否下載完: 若否則重新下載第N塊代碼;若是則查驗第N塊信息的是否正確: 若否則重新下載第N塊代碼,若是則查驗整個文件是否下載完: 若否則繼續(xù)發(fā)送第N+1塊信息,若是則查詢這個文件信息是否正確: 若否則重新下載,若是則啟動FLASH自編程。
【專利摘要】本發(fā)明提供一種裝置遠程在線程序更新方法,包含:所述裝置的CPU的內部FLASH分兩塊,分別為存儲BooLoader自編程代碼的BooLoader存儲區(qū)和存儲APP應用程序代碼的APP存儲區(qū);先通過與CPU連接的GPRS模塊將要替換的APP應用程序代碼,保存到與CPU連接的外部FLASH內;全部下載完成后,將指向BooLoader存儲區(qū)的自編程代碼指針PC_Boot跳轉到BooLoader存儲區(qū),使其內的BootLoader自編程代碼運行啟動CPU的FLASH自編程功能,讀取外部FLASH內的代碼,替換到APP存儲區(qū);替換結束后,再切換到應用程序指針PC_APP運行新的APP應用程序代碼。本發(fā)明的優(yōu)點是:實現(xiàn)了沒有在線編程功能的單片機的遠程程序更新,在控制端,執(zhí)行遠程命令運行更新遠程裝置的程序,且程序更新支持斷點續(xù)傳、文件校驗,可靠性好。
【IPC分類】G06F9-445
【公開號】CN104572195
【申請?zhí)枴緾N201410853646
【發(fā)明人】靳建偉
【申請人】天津市飛躍兄弟測控技術有限公司
【公開日】2015年4月29日
【申請日】2014年12月31日