//在官方軟體庫的 core_cm3.h 檔案裡 直接提供了 系統復位的函式
void softreset(void)
方式一:stm32 ram足夠大的情況下使用ram來快取新的程式 一般程式的bin檔案大小只有幾十k
第一步自定義乙個協議
例:
第二步 接收到進入boot程式命令即呼叫softreset軟體復位(復位後預設先啟動boot程式)
第四步 上位機傳送結束後會傳送乙個結束命令加校驗碼,boot程式校驗後返回結果,如果正確則將程式覆蓋到內部flash指定區域。
第五步 複製到flash指定區域並讀出校驗後(如果ram不足 可以唯讀最後1k資料進行比對),跳轉到新程式的開始位址。
int main(void)
{scb->vtor = flash_base | 0x3c00;//15k´¦//程式開始的地方
STM32實現IAP程式公升級
1.寫在前面 對於stm32來說,晶元出廠時已經預置了一段bootloader,但是啟動bootloader需要設定微控制器的boot引腳 boot1 0,boot0 1,並復位後才能進入系統bootloader。boot引腳的設定可通過硬體來實現自動設定和復位,從而利用系統bootloader實現...
STM32的IAP韌體公升級
an2606 system memory boot mode an3155 usart for bootloader 指令集詳解 an2557 iap using usart 將0x08000000開始的main memory空間劃分為兩部分,其中低位址空間用於儲存iap driver,剩餘空間用於...
IAP公升級日記(STM32晶元)
就是我們的使用者區程式 以我使用的stm32f030cct6為例,其有256kb的flash記憶體空間,m0的核心,其記憶體對映圖如下 從圖中可以看出 該mcu的主flash位址是從0x08000000處開始,又因該款mcu的flash大小為256kb,所以該款mcu的位址區間為0x08000000...