IAR環境下STM32 IAP方案的實現

2021-08-22 11:51:08 字數 1225 閱讀 8127

關注了這個概念有些日子了,這段時間總算有機會實戰==網路公升級應用韌體,這裡記錄下遇到的問題,及解決方案。

原理與網上流傳的串列埠作為傳輸手段 一致;不同之處,無非我這裡使用了網路裝置傳輸。==(lwip)tftp客戶端的應用.

參考:iar環境下stm32+iap方案的實現

stm32**之iap.pdf

基於iap和keil mdk的遠端公升級設計

keil mdk中如何生成*.bin格式的檔案

__set_msp(*(__io uint32_t*) user_flash_first_page_address);

#define user_flash_first_page_address 0x08009000

需要兩處的更改,不然錯誤未知

irom設定如圖:

中斷向量表偏移:

nvic_setvectortable(nvic_vecttab_flash,vectortable_offset);
其中:

#define nvic_vecttab_flash           ((uint32_t)0x08000000)

#define vectortable_offset 0x9000

void nvic_setvectortable(uint32_t nvic_vecttab, uint32_t offset);

void systeminit (void);

scb->vtor = flash_base | vect_tab_offset;

1、如需要.hex檔案轉.bin,參見上邊的文章

當然,就算使用.hex檔案,同樣可以公升級,只是需要修改iap中判定已經公升級的檔案是否有效,檔案條件部分的**,

if(((*(__io uint32_t*)user_flash_first_page_address) & 0x2ffe0000 ) == 0x20000000)

STM32 IAP公升級工具

1 內部包含了crc mode的檢驗 2 檔案包含了頭尾 長度的資料,確保公升級操作的可靠性 3 win32串列埠查詢功能getseriallist 4 regkey.open hkey local machine,t hardware devicemap serialcomm key read e...

STM32 iap移植筆記

對於大多數基於 flash 的系統而言,在最終產品中安裝之後,能夠對韌體進行更新,這一點非常重要。這一功能被稱為在應用中程式設計 iap stm32f4xx 微控制器能夠執行使用者指定的韌體,從而執行微處理器內建 flash 的 iap。借助這一特性,在重新程式設計過程中可以使用任意型別的通訊協議。...

stm32 IAP程式燒寫方案

1 使用jlink,jtag等 器 這種方式簡單快捷 2 使用系統自帶bootloader,isp,這種方式需要更改stm32boot0 boot1引腳,以更改啟動方式。1 系統上電 2 bootloader引導程式 3 等待10s鍾以等待串列埠傳送程式 4 若串列埠傳送過來程式,此時更新程式 將接...