天天看點

STM32的代碼更新-IAP---未完待續

一些嵌入式裝置有代碼更新的需求,對于單片機類的産品,IAP目前最常用,IAP即In Application Programming,在程式運作過程中對Flash進行燒寫。 這個功能實作的原理很簡單,就是将Flash換分為兩部分,一部分存儲用于IAP的程式,另外一部分存儲應用程式。使用過程中,裝置上電後可以通過檢測按鍵标志位、通信識别幀或是SD卡中的更新檔案等手段檢測是否需要更新應用程式,如果需要更新,則會調用相關程式接受資料,燒寫Flash。如果沒有不需要更新程式,則跳轉到相應位址執行應用程式。 這裡要注意的是:由于通常将執行IAP的代碼放在Flash低位元組,是以應用程式中需要将中斷向量表進行映射,将其置于應用程式的flash開始處。另外,應用程式通常使用BIN檔案進行燒錄,網上IAP的代碼中大部分使用了Ymodem協定進行通信。

1、在Keil中生成BIN檔案 如下圖所示,在【after build】後,調用fromelf.exe,前面的路徑替換為自己電腦中keil的安裝路徑,注意不同版本的keil中路徑不同,最好去目錄裡搜一下。後面的參數 --bin:輸出二進制檔案   -o:這裡用于制定輸出bin檔案的名字。後面的内容中,将test替換為自己工程中輸出檔案的名字,這個可以在output頁籤中看到。

STM32的代碼更新-IAP---未完待續
STM32的代碼更新-IAP---未完待續

2、具體程式設計