stm32加入BootLoader實現串口燒寫方法


1. 簡介

主要針對使用cube編程的同學,(或者還有更好的辦法)。就是使用cube生成代碼后,有的地方的代碼給刪除掉了,而加入BootLoader是肯定要改源碼的,所以每次使用cube代碼的時候這段自己加的必然白給,所以寫了一個筆記吧!
我使用的芯片是stm32f103rgt6,項目需要內存大一點的,原來64KB的RAM都用到頭了,這勾八玩意是真的貴。
介紹一下rgt6的參數:64引腳+96KB RAM+1024KB FLASH

2. 修改步驟

首先保證你的芯片的boot0和boot1都接地,一般我們都這么干,boot0接地就可以了好像,boot1我記得是隨便,所以可以當個gpio玩。
cube生成完你的業務代碼,打開keil的設定:
image
右邊是你的RAM起始地址和偏移量,可以看到,偏移量你算算就是96KB。
左邊是FLASH起始地址和偏移量,原來的起始地址是0x8000000,偏移量是0x100000(1024KB),起始地址改為0x8020000,就是留了128KB的空間給BootLoader,所以程序還剩0xE0000左右大小(是的,我截圖的時候忘改了)

  • 修改中斷向量表偏移
    既然程序啟動位置都不對了,中斷向量表也得跟着偏移
    image
    image
    你可以把后面的改成20000,但最好別改系統文件,在main的開頭可以加一句
    image

代碼,網上就好多了,看着寫吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM