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