STM32 IAP方案 實現網路公升級應用韌體

2021-07-08 17:42:54 字數 1209 閱讀 2271

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

原理與網上流傳的串列埠作為傳輸手段 一致;不同之處,無非我這裡使用了網路裝置傳輸。==(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 使用jlink,jtag等 器 這種方式簡單快捷 2 使用系統自帶bootloader,isp,這種方式需要更改stm32boot0 boot1引腳,以更改啟動方式。1 系統上電 2 bootloader引導程式 3 等待10s鍾以等待串列埠傳送程式 4 若串列埠傳送過來程式,此時更新程式 將接...

IAR環境下STM32 IAP方案的實現

關注了這個概念有些日子了,這段時間總算有機會實戰 網路公升級應用韌體,這裡記錄下遇到的問題,及解決方案。原理與網上流傳的串列埠作為傳輸手段 一致 不同之處,無非我這裡使用了網路裝置傳輸。lwip tftp客戶端的應用.參考 iar環境下stm32 iap方案的實現 stm32 之iap.pdf 基於...

STM32 IAP公升級工具

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