首先下載官方STM32F10X的IAP Bootloader源碼,STM32F10x_AN2557_FW_V3.3.0。
源碼包地址:http://download.csdn.net/download/yunyin_link/10151170
用Keil4打開(kāi)工程代碼STM32F10x_AN2557_FW_V3.3.0\Project\IAP\MDK-ARM\IAP.uvproj
第一步:因?yàn)槲覀兪怯玫腟TM32F103C8T6 是64K Flash,所以特別重要的是修改Flash宏,如下圖示,改為:STM32F10X_MD。
代碼中對(duì)不同規(guī)格的Flash做了處理。
第二步:限定一下IAP BootLoader的Flash大小,如下圖示:為 0x2FFF。所以應(yīng)用層代碼在 0x8003000位置。
如上則完成了我們BOOT工程的修改,可以進(jìn)行編譯燒錄了,燒入后,連接我們的串口助手,會(huì)顯示如下信息:
如上圖,輸入1,則是進(jìn)行串口程序?qū)懭?,輸?,則是串口程序讀出,輸入3,則是執(zhí)行應(yīng)用層程序。
接下來(lái),我們編譯一個(gè)簡(jiǎn)單的APP測(cè)試閃燈程序,需要注意程序幾個(gè)關(guān)鍵的配置操作。
第一步:設(shè)置APP程序的寫(xiě)入位置,從0x8003000開(kāi)始:
第二步:在程序開(kāi)始處,重新設(shè)置一下中斷向量表的位置,如下圖示:初始化到0x8003000位置。
第三步,設(shè)置編譯出BIN文件,如下圖示,添加上一段編譯指令。
E:\Software\Keil4.74\ARM\ARMCC\bin\fromelf.exe --bin -o ./output/test.bin ./output/test.axf
如果自己的路徑有問(wèn)題的,需要自己做一下調(diào)整。以上完成了所有操作可以編譯后,會(huì)看到 test.bin文件。
最后,我們利用串口助手,以ymodem協(xié)議發(fā)送該bin文件,實(shí)現(xiàn)升級(jí)。
第一步:輸入1,進(jìn)行文件發(fā)送狀態(tài)
完成后如上圖,發(fā)送'3',檢查開(kāi)發(fā)板指示燈是否閃爍,閃爍即代表成功執(zhí)行了應(yīng)用程序。
接下來(lái),將利用esp8266實(shí)現(xiàn)云端升級(jí)stm32f103c8t6固件,請(qǐng)大家繼續(xù)關(guān)注,謝謝。
聯(lián)系客服