高手教你如何編寫STM32 bootloader
今天教大家編寫STM32的bootloader,其實編寫bootloader主要事項有以下:
1、為你的bootloader程序選擇存儲器地址,因為STM32的存儲器FLASH存儲程序代碼空間為512K,需要進行劃分。
2、如果需要使用JTAG在線調(diào)試,則需要配置區(qū)域:
3、為您的用戶程序選擇合適的存儲空間:
同時配置在線調(diào)試區(qū)域:
4、bootloader程序編寫基本流程如下:
1)檢測有無需要更新的標志,用戶可自定義。比如說讀取flash某位置存儲的字節(jié)作為標志位。
2)如需更新,則調(diào)用STM32的FLASH程序擦鞋用戶代碼部分。
3)將新的bin文件(即2進制文件直接燒寫進去,需要將keil生成的hex文件轉(zhuǎn)換為bin文件,然后存儲到外擴展的flash中)寫入到STM32自帶的FLASH中去,記住需要與上述設置的用戶代碼存儲區(qū)一致。
4)更新成功后再跳轉(zhuǎn)至用戶程序。
5、用戶程序需要注意一點,需要在程序運行前重新設置中斷向量表,即:NVIC_SetVectorTable()。
6、用STM32自帶的燒錄軟件進行燒錄時,需要修改項目如下:
1)打開安裝后目標文件中的map文件夾,我們所用的STM32為512Kflash,所以選取STM32_High-density_512K.STmap,將其分解為兩個STmap文件(此文件可用記事本 打開)
STmap文件中,扇區(qū)是以每2K為一page來顯示的,所以boot區(qū)我們只需要到page7,用戶區(qū)我們需要page8到最后。
修改完成后再次打開此軟件會發(fā)現(xiàn)多出了兩個flash選項,可以根據(jù)此處來選擇需要存儲的代碼區(qū)。
然后還有一處需要修改:

編輯:admin 最后修改時間:2018-05-18