前言
最近拿到了一塊APM32F103VC的MINI開發板,在學習了一段時間后發現其有非常豐富的外設資源,主頻能達到96Mhz。最近在項目中使用到了IAP(In Application Programming)功能,特來評估一下APM32F103的IAP實現方式。
在應用編程IAP(In-Application Programming)是應用在Flash程序存儲器的一種編程模式。它可以在應用程序正常運行的情況下,通過調用特定的IAP程序對另外一段程序Flash空間進行讀/寫操作,甚至可以控制對某段、某頁甚至某個字節的讀/寫操作,這為數據存儲和固件的現場升級帶來了更大的靈活性。
話接上回,我們學習了如何進行對目標Flash進行編程后,基本已經完成了IAP的知識儲備,隨時可以完成IAP功能。打個比方,會Flash編程,就是會向一個池塘里面倒水了,但是現在有一個問題,我們往池塘倒的水從哪里來?即我們的程序數據從那里給到我們。
那我們本章節就我們程序的來源以及處理的一些方式進行一起探討。
1 “水”的來源
我們的固件可以保存在云端,也可以保存在我們的PC上。這個主要取決于我們的應用場景。若我們的產品主要在客戶的手上,為了考慮客戶的使用便捷性,將固件保存在云端,然后在一個合適的時間推送至我們的產品進行升級,這是一種方式。若考慮到產品的穩定性,那我們可以要求客戶一定要在特定的場景下進行固件升級,如需要接入升級的主機設備(如PC),才能進行固件升級。
2 承載“水”的“路徑”
既然我們決定了我們程序的下發的源頭,我們一般也會選擇使用那種方式了傳輸我們的固件數據。就像運水到我們的池塘,是用空運還陸運還是海運等方式。如遠程升級的方式可以選擇以太網、WIFI、藍牙等方式。若使用有線傳輸的方式我們可以選擇USART、I2C、SPI、USB等。
升級方式的選擇也受限于我們的主控MCU,如APM32F103VCT6就沒有WIFI、藍牙等功能,所以我們可以選擇USART、I2C、SPI、USB等,若我們選擇APM32F407/107我們也可以選擇使用以太網。
3 運輸“水”的方式
就像運水到我們池塘,我們選擇使用陸運的方式后,依舊可以繼續選擇使用的是小汽車運,還是貨車運。不同的運輸方式會有不一樣的要求,這就是我們選擇傳輸固件的“協議”。
就比如我們選擇使用USART的方式進行固件升級,那我們也可以選擇使用Xmodem協議,還是Ymodem,或者是我們自創的協議。
而這個協議是保證我們固件傳輸數據的準確的。怎么說呢?比如帶校驗碼、環回重復發送等功能。
4 小結
說了那么多,總結下來就是我們在IAP升級過程中,升級使用的通信接口、通信協議也是我們需要關注的。一般而言,通信的接口限制我們的應用場景,通信協議是保證我們在IAP升級過程中固件數據準確的有力保證。
審核編輯 :李倩
-
編程
+關注
關注
88文章
3638瀏覽量
93997 -
開發板
+關注
關注
25文章
5123瀏覽量
98237 -
IAP
+關注
關注
2文章
164瀏覽量
24393
原文標題:APM32芯得 EP.14 | APM32F103_IAP的簡單實現_固件傳輸
文章出處:【微信號:geehysemi,微信公眾號:Geehy極海半導體】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
極海基于APM32F035的屏蔽泵參考方案
APM805F應用于太陽能草坪燈升壓芯片
STM32F103xC,STM32F103xD,STM32F103xE中文資料
32位基于ARM核心的帶512K字節閃存的微控制器STM32F103xC, STM32F103xD, STM32F103xE數據手冊
請問怎么基于stm32實現IAP功能?
芯海通用 MCU 應用筆記 :CS32F103 系列 MCU IAP 升級指南
STM32F1 IAP操作讀保護選項字節設置,APP使用系統復位跳轉后無法運行IAP的原因?
通過iap的方式對stm32f405進行升級,usb dfu數據傳輸出錯的原因?
STM32F103RE只有掛調試器IAP程序才能正常跳轉嗎?
CKS32F4xx系列產品的串口IAP功能詳解
![CKS32<b class='flag-5'>F</b>4xx系列產品的串口<b class='flag-5'>IAP</b>功能詳解](https://file1.elecfans.com/web2/M00/C6/72/wKgZomYJDdGAcQXSAABMWyXBJQY124.png)
評論