【云隐】STM32F103C8T6实现串口IAP方式升级固件
首先下載官方STM32F10X的IAP Bootloader源碼,STM32F10x_AN2557_FW_V3.3.0。
源碼包地址:http://download.csdn.net/download/yunyin_link/10151170
用Keil4打開工程代碼STM32F10x_AN2557_FW_V3.3.0\Project\IAP\MDK-ARM\IAP.uvproj
第一步:因?yàn)槲覀兪怯玫腟TM32F103C8T6 ?是64K Flash,所以特別重要的是修改Flash宏,如下圖示,改為:STM32F10X_MD。
代碼中對不同規(guī)格的Flash做了處理。
?
第二步:限定一下IAP BootLoader的Flash大小,如下圖示:為 0x2FFF。所以應(yīng)用層代碼在 0x8003000位置。
如上則完成了我們BOOT工程的修改,可以進(jìn)行編譯燒錄了,燒入后,連接我們的串口助手,會顯示如下信息:
?
如上圖,輸入1,則是進(jìn)行串口程序?qū)懭?#xff0c;輸入2,則是串口程序讀出,輸入3,則是執(zhí)行應(yīng)用層程序。
?
接下來,我們編譯一個(gè)簡單的APP測試閃燈程序,需要注意程序幾個(gè)關(guān)鍵的配置操作。
第一步:設(shè)置APP程序的寫入位置,從0x8003000開始:
第二步:在程序開始處,重新設(shè)置一下中斷向量表的位置,如下圖示:初始化到0x8003000位置。
第三步,設(shè)置編譯出BIN文件,如下圖示,添加上一段編譯指令。
E:\Software\Keil4.74\ARM\ARMCC\bin\fromelf.exe --bin -o ./output/test.bin ./output/test.axf
?
如果自己的路徑有問題的,需要自己做一下調(diào)整。以上完成了所有操作可以編譯后,會看到 test.bin文件。
?
最后,我們利用串口助手,以ymodem協(xié)議發(fā)送該bin文件,實(shí)現(xiàn)升級。
第一步:輸入1,進(jìn)行文件發(fā)送狀態(tài)
完成后如上圖,發(fā)送“3”,檢查開發(fā)板指示燈是否閃爍,閃爍即代表成功執(zhí)行了應(yīng)用程序。
?
接下來,我將利用esp8266實(shí)現(xiàn)云端升級stm32f103c8t6固件。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【云隐】STM32F103C8T6实现串口IAP方式升级固件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求助啊,被STM32的CAN折磨的疯了
- 下一篇: STM32 CAN 过滤器、滤波屏蔽器配