花兩天時間寫的stm32f103串列埠BootLoader(有keil工程)
阿新 • • 發佈:2019-01-03
因為在論壇和官網都沒搜到完全合適的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]
我是這樣做的暫時沒有發現問題,編了幾個簡單的APP程式(流水燈,外部中斷等)測試沒有問題。也請有興趣的朋友提出補充和糾正。需要keil工程壓縮包,留下郵箱