天天看點

不會寫Bootloader?看這裡,現成的!

前段時間要寫一個BootLoader程式,想起來好像在STM32的HAL庫裡面看到過相關的Demo,打算參考一下。打開相關的目錄看了一下,确實是有相關檔案:

不會寫Bootloader?看這裡,現成的!

但是沒找到工程檔案。沒辦法,那就自己百度吧,關鍵詞OpenBootloader一搜尋,發現這不是ST原創的,是一個開源的項目。簡稱OpenBLT,是一種開源引導加載程式,可以在任何微控制器上運作,并使用支援Usart、Can、USB、SD卡等多種類型的通信接口來執行軟體更新。

官網位址:

​​https://www.feaser.com/openblt/doku.php?id=homepage​​

下載下傳位址:

​​https://sourceforge.net/projects/openblt/files/​​

百度網盤:

連結:https://pan.baidu.com/s/1ZZV7AxGna5cwH_EkIDjftA?pwd=cdq1

提取碼:cdq1

下載下傳下來後發現,裡面有很多種單片機的Demo程式,還有不同的IDE。

不會寫Bootloader?看這裡,現成的!

正好手上有個STM32G0的開發闆,拿來試一下。打開G071的Keil目錄,裡面有Boot程式和使用者程式Prog兩個工程。

不會寫Bootloader?看這裡,現成的!

首先将Boot 程式用仿真器下載下傳到開發闆中,打開配套的上位機軟體MicroBoot v2.05,這裡使用的是序列槽更新,設定好序列槽号和波特率。

不會寫Bootloader?看這裡,現成的!
不會寫Bootloader?看這裡,現成的!

點選Browse選擇編譯好的使用者程式,這裡是.srec格式的檔案,點選選擇後會直接下載下傳程式。如下:

不會寫Bootloader?看這裡,現成的!

由于使用者程式不大,下載下傳過程還是挺快的。而且Boot程式編譯後隻有7KB左右,也不大。該單片機沒有CAN、USB等接口,對于其它一些單片機,可以配置為通過其它接口方式更新程式。例程裡幾乎有STM32全系列的Demo,用起來很友善。想移植到其它單片機的可能需要自己研究一下了,主要是接口和flash擦寫部分程式。

這裡說明一下,.srec格式的檔案的生成方式跟bin檔案類似,在Keil中設定如下:

不會寫Bootloader?看這裡,現成的!

另外,使用者程式的Flash起始位址是通過.sct檔案配置的:

不會寫Bootloader?看這裡,現成的!

也可以在IDE裡配置,兩種方式都可以。

不會寫Bootloader?看這裡,現成的!

繼續閱讀