同時更新監控程序和應用程序及后續更新應用程序的方法
【技術領域】
[0001]本發明涉及電池管理系統技術領域,具體涉及一種同時更新監控程序和應用程序及后續更新應用程序的方法。
【背景技術】
[0002]在電池管理系統(BMS,BATTERY MANAGEMENT SYSTEM)在前期的生產測試過程中,為了能夠滿足在線更新程序要求,在生產出貨前需要先用PE燒錄器燒錄監控程序,然后再通過CAN總線在線更新應用程序。此方法在程序代碼量較大時,其以下幾個缺陷非常明顯:
[0003](I)程序更新的步驟繁瑣,需要先用PE燒錄器燒錄監控程序,再通過CAN總線更新應用程序,而且順序不能改變,增加了生產環節的工位,影響生產效率;
[0004](2)在生產過程中,通過CAN總線更新應用程序時間較長,如更新一塊電池管理系統的主控板(BCU)應用程序的更新大約需要3?4分鐘,從控板(BMU)應用程序的更新大約需要2?3分鐘,應用程序更新時間長,因此,監控程序及應用程序的燒錄耗時長,生產效率低。
【發明內容】
[0005]本發明的目的是克服現有技術的不足和缺陷,提供一種通過PE燒錄器同時更新監控程序和應用程序的方法。
[0006]本發明的目的是通過以下技術方案來實現的:
[0007]同時更新監控程序和應用程序的方法,包括以下步驟:
[0008]SI為監控程序分配固定的Flash地址空間和RAM地址空間;
[0009]S2為應用程序分配與監控程序地址空間不重合的Flash地址空間和RAM地址空間;
[0010]S3將監控程序與應用程序合并為合并程序;
[0011 ] S4通過PE燒錄器將合并程序進行燒錄。
[0012]具體地,所述將監控程序與應用程序合并為合并程序的步驟具體為:
[0013]S31按照特定的設計規則將應用程序的.S19文件和監控程序的.S19文件進行合并。
[0014]具體地,所述按照特定的設計規則將應用程序的.S19文件和監控程序的.S19文件進行合并的步驟具體如下:
[0015]S311按照特定的命名方式分別給監控程序的.S19文件和應用程序的.S19文件進行命名;
[0016]S312分別在命名后的監控程序的.S19文件和應用程序的.S19文件后面增加MD碼;
[0017]S313將監控程序的.S19文件中除SO和S9兩條程序代碼外的內容復制到應用程序的.S19文件中,實現監控程序的.S19文件與應用程序的.S19文件的合并,得到合并.S19文件;
[0018]S314修改合并后的合并.S19文件。
[0019]具體地,所述修改合并后的合并文件的步驟S314具體如下:
[0020]A將合并.S19文件中監控程序的地址OxEAFO后面的一個字節的內容修改為OxAA,并將最后的校驗和從S104EAF055CC改為S104EAF0AA77;
[0021 ] B修改合并.S19文件中應用程序的內容。
[0022]具體地,所述修改合并.S19文件中應用程序的內容的步驟具體為:修改中斷向量表的地址,并修改每一條中斷向量表地址的校驗和。
[0023]具體地,所述修改中斷向量表的地址的步驟具體為:將中斷向量表的地址從OxFFlO ?OxFFFE 修改為 OxEBlO ?OxEBFF。
[0024]具體地,所述通過PE燒錄器將合并程序進行燒錄的步驟如下:
[0025](I)將PE燒錄器分別與上位機、待燒錄設備連接,并上電;
[0026](2)在上位機打開刷寫環境;
[0027](3)在上位機的刷寫環境選擇待燒錄的設備;
[0028](4)在上位機的刷寫環境裝載合并.S19文件;
[0029](5)將合并.S19文件下載到待燒錄設備中。
[0030]具體地,所述通過PE燒錄器將合并程序進行燒錄的步驟還包括進行防錯校驗的步驟(6),具體為:
[0031 ] (61)上位機裝載合并.S19文件后將合并.S19文件的每條程序代碼的內容進行疊加得到累加值,并將累加值的前6個字節下發到待燒錄設備中;
[0032](62)待燒錄設備將所接收的合并.S19文件的每條程序代碼的內容進行疊加得到校驗和;
[0033](63)將待燒錄設備計算的校驗和的6個字節與上位機計算的累加值的前6個字節進行比較,以判斷整個合并.S19文件是否燒錄成功。
[0034]具體地,所述通過PE燒錄器將合并程序進行燒錄的步驟還包括進行防錯校驗的步驟(6-0),具體是對合并.S19文件的每條程序代碼的校驗和進行驗證。
[0035]具體地,所述對合并.S19文件的每條程序代碼的校驗和進行驗證的步驟(6-0)具體如下:
[0036](6-01)上位機裝載合并.S19文件后分別截取合并.S19文件的每條程序代碼的前6個字節,并將每條程序代碼的前6個字節下發到待燒錄設備中;
[0037](6-02)待燒錄設備分別截取所接收的合并.S19文件的每條程序代碼的前6個字
-K-
T ;
[0038](6-03)將上位機截取的每條程序代碼的前6個字節與待燒錄設備截取的每條程序代碼的前6個字節分別進行比較,以判斷每條程序代碼是否燒錄成功。
[0039]本發明的另一目的在于提供一種經所述的同時更新監控程序和應用程序的方法燒錄應用程序后更新應用程序的方法,該更新應用程序的方法通過CAN更新應用程序,過程如下:
[0040]al進入復位程序;
[0041 ] a2判斷是否進入應用程序,若是則執行步驟a3,否則執行步驟a5;
[0042]a3 設置 IVBR = OxEB;
[0043]a4跳轉至應用程序的Startup函數;
[0044]a5進入監控程序的main函數;
[0045]a6按照固件更新通信協議進入更新過程;
[0046]a7判斷是否更新成功,若更新成功,則執行步驟a8,否則執行步驟a9;
[0047]a8將應用程序有效標志位寫入OxAA;
[0048]a9應用程序請求boot loader更新標志清零。
[0049]具體地,所述判斷是否更新成功的步驟具體如下:
[0050]判斷是否同時滿足以下三個條件:
[0051]a71文件校驗成功;
[0052]a72擦除應用程序flash區成功;
[0053]a73新更新的應用程序的.S19文件每條程序代碼寫入flash成功。
[0054]具體地,所述判斷是否進入應用程序的步驟具體為:
[°°55] 判斷是否同時滿足應用程序請求bootloader更新標志不等于0x55AA及應用程序有效標志位等于OxAA。
[0056]本發明相比現有技術包括以下優點及有益效果:
[0057]本發明將監控程序和應用程序合并為合并程序后,通過PE燒錄器進行燒錄,減少生產過程中程序燒錄的步驟,提高程序燒錄效率,且后續更新應用程序直接通過CAN更新即可,應用程序更新效率高、操作簡單、方便。
【附圖說明】
[0058]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0059]圖1為實施例1通過PE燒錄器同時更新監控程序和應用程序的方法流程圖;
[0000]圖2為實施例2中經過bootloader更新后的存儲區示意圖;
[0061 ]圖3為實施例2中應用程序的.S19文件和監控程序的.S19文件合并流程圖;
[0062]圖4為實施例2中監控程序與應用程序的合成界面;
[0063]圖5為實施例2中通過PE燒錄器將合并程序進行燒錄的流程圖;
[0064]圖6為實施例2中對整個合并.S19文件進行防錯校驗的流程圖;
[0065]圖7為實施例2中對合并.S19文件每條程序代碼進行防錯校驗的流程圖;
[0066]圖8為實施例3中更新應用程序的方法流程圖。
【具體實施方式】
[0067]下面結合實施例及附圖對本發明