關注了這個概念有些日子了,這段時間總算有機會實戰==網路公升級應用韌體,這裡記錄下遇到的問題,及解決方案。
原理與網上流傳的串列埠作為傳輸手段 一致;不同之處,無非我這裡使用了網路裝置傳輸。==(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...