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

代码,网上就好多了,看着写吧

posted @   蘑菇王国大聪明  阅读(976)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示