1. 程式人生 > >花兩天時間寫的stm32f103串列埠BootLoader(有keil工程)

花兩天時間寫的stm32f103串列埠BootLoader(有keil工程)

因為在論壇和官網都沒搜到完全合適的BootLoader,所以自己移植完成了一個BootLoader工程。另外附APP檔案工程,可做實驗。用良心保證,看完後可以做一個成功的實驗。

上位機選用SecureCrt,微控制器用的stm32f103vet6。

首先搞清楚BootLoader過程步驟,程式碼可以再根據自己需要修改:

步驟一:初始化IO口,初始化uart串列埠,初始化定時器等等

步驟二:進入BootLoader選擇介面,如果選擇1是燒寫程式,然後用上位機發送ymodem格式的bin檔案。(bin檔案就是應用程式的編譯後的二進位制程式碼),傳送完成後,微控制器已經把它存進flash中一塊區域,並跳轉執行此區域。

步驟二:進入BootLoader選擇介面,如果選擇2是直接跳轉到應用程式區。

步驟二:進入BootLoader選擇介面,如果不選擇,不做任何操作,3秒後直接跳轉到應用程式區。

實際SecureCRT效果圖:

補充:bootloader佔用整個flash的前0x000-0x3000空間,從flash的第0x3000空間開始存的是應用程式。

BootLoader和app分別建立兩個工程,那麼在app工程中需要修改中斷向量起始地址為0x3000,和keil的target的IROM1,然後編譯得到bin,怎麼在keil得到bin?在user中fromelf.exe --bin -o "[email protected]

" "#L"

我是這樣做的暫時沒有發現問題,編了幾個簡單的APP程式(流水燈,外部中斷等)測試沒有問題。也請有興趣的朋友提出補充和糾正。需要keil工程壓縮包,留下郵箱