首先下載官方STM32F10X的IAP Bootloader源碼,STM32F10x_AN2557_FW_V3.3.0。
用Keil4打開工程代碼STM32F10x_AN2557_FW_V3.3.0ProjectIAPMDK-ARMIAP.uvproj
工具/原料
-
電腦
-
stm32開發板
方法/步驟
-
第一步:因爲我們是用的STM32F103C8T6 是64K Flash,所以特別重要的是修改Flash宏,如下圖示,改爲:STM32F10X_MD。
-
代碼中對不同規格的Flash做了處理。
-
第二步:限定一下IAP BootLoader的Flash大小,如下圖示:爲 0x2FFF。所以應用層代碼在 0x8003000位置。
-
如上則完成了我們BOOT工程的修改,可以進行編譯燒錄了,燒入後,連接我們的串口助手,會顯示如下信息:如圖,輸入1,則是進行串口程序寫入,輸入2,則是串口程序讀出,輸入3,則是執行應用層程序。
-
接下來,我們編譯一個簡單的APP測試閃燈程序,需要注意程序幾個關鍵的配置操作。
第一步:設置APP程序的寫入位置,從0x8003000開始:
-
第二步:在程序開始處,重新設置一下中斷向量表的位置,如下圖示:初始化到0x8003000位置。
-
第三步,設置編譯出BIN文件,如下圖示,添加上一段編譯指令。
E:SoftwareKeil4.74ARMARMC\bi\fromelf.exe --bin -o ./output/test.bin ./output/test.axf
如果自己的路徑有問題的,需要自己做一下調整。以上完成了所有操作可以編譯後,會看到 test.bin文件。
-
最後,我們利用串口助手,以ymodem協議發送該bin文件,實現升級。
第一步:輸入1,進行文件發送狀態
-
完成後如圖,發送"3",檢查開發板指示燈是否閃爍,閃爍即代表成功執行了應用程序。