STM32串口IAP操作說明

對於大多數基於 Flash 的系統而言,在最終產品中安裝之後,能夠對固件進行更新,這一點非常重要。
這一功能被稱爲在應用中編程 (IAP   in-applicationprogramming)。 通過微處理器內置 Flash 的 IAP
(可以認爲是boot代碼),STM32F4xx 微控制器能夠運行用戶指定固件。藉助這一特性,在重新編程
過程中可以使用任意類型的通信協議。下面的例子是利用串口下載一個可以執行的bin文件程序到開發板,
由於開發板已經內置好IAP程序,下載完bin文件後,用戶就可以選擇跳轉到相應flash地址去執行這個程序。

IAR或者MDK生產bin文件看這個帖子:https://blog.csdn.net/u012572552/article/details/84570552

STM32F407有如下12個扇區,這裏我們把扇區0,扇區1,扇區2,扇區3用來存儲IAP代碼,其餘扇區
用於用戶flash區。

/* 各個扇區首地址 */
#define ADDR_FLASH_SECTOR_0     ((uint32_t)0x08000000) /* Base @ of Sector 0, 16 Kbyte */
#define ADDR_FLASH_SECTOR_1     ((uint32_t)0x08004000) /* Base @ of Sector 1, 16 Kbyte */
#define ADDR_FLASH_SECTOR_2     ((uint32_t)0x08008000) /* Base @ of Sector 2, 16 Kbyte */
#define ADDR_FLASH_SECTOR_3     ((uint32_t)0x0800C000) /* Base @ of Sector 3, 16 Kbyte */
#define ADDR_FLASH_SECTOR_4     ((uint32_t)0x08010000) /* Base @ of Sector 4, 64 Kbyte */
#define ADDR_FLASH_SECTOR_5     ((uint32_t)0x08020000) /* Base @ of Sector 5, 128 Kbyte */
#define ADDR_FLASH_SECTOR_6     ((uint32_t)0x08040000) /* Base @ of Sector 6, 128 Kbyte */
#define ADDR_FLASH_SECTOR_7     ((uint32_t)0x08060000) /* Base @ of Sector 7, 128 Kbyte */
#define ADDR_FLASH_SECTOR_8     ((uint32_t)0x08080000) /* Base @ of Sector 8, 128 Kbyte */
#define ADDR_FLASH_SECTOR_9     ((uint32_t)0x080A0000) /* Base @ of Sector 9, 128 Kbyte */
#define ADDR_FLASH_SECTOR_10    ((uint32_t)0x080C0000) /* Base @ of Sector 10, 128 Kbyte */
#define ADDR_FLASH_SECTOR_11    ((uint32_t)0x080E0000) /* Base @ of Sector 11, 128 Kbyte */


/*其中 扇區0 - 3用於IAP BOOT,  下面是用戶區首地址  */
#define APPLICATION_ADDRESS   (uint32_t)0x08010000 
下面我們要做的就是把可執行程序bin文件的首地址設置爲0x08010000 ,需要設置如下兩個地方再編譯:
 

 

 

第一步:打開超級終端,XP系統自帶超級終端,WIN7系統沒有自帶,可以下載這裏的超級終端:https://download.csdn.net/download/u012572552/10811177
           。由於這個例子用到了Ymodem文件傳輸協議,所以要
           使用超級終端,如果使用secureCRT的話,文件下載會失敗,主要是secureCRT使用的Ymodem協議與
           超級終端使用的稍有區別。

第二步:打開超級終端

點擊確定後選擇波特率,停止位等(注意自己電腦可以用的串口號是com幾,就選擇com幾,當前我這裏是com4)

 點擊確定後選擇波特率,停止位等選項,然後點擊應用,確定:

至此超級終端就設置完了。

第三步:下載固件

超級終端會顯示如下信息:

在鍵盤上面點擊數字1,彈出如下信息:

點擊菜單選項-->傳送-->發送文件:

點擊發送,彈出如下窗口:

發送完成後,上面的窗口會自動消息,並在超級終端顯示如下消息:

第四步:在電腦鍵盤上面點擊數字2,開發板就會執行前面下載的output.bin程序:

done

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章