stm32加入BootLoader实现串口烧写方法
1. 简介
主要针对使用cube编程的同学,(或者还有更好的办法)。就是使用cube生成代码后,有的地方的代码给删除掉了,而加入BootLoader是肯定要改源码的,所以每次使用cube代码的时候这段自己加的必然白给,所以写了一个笔记吧!
我使用的芯片是stm32f103rgt6,项目需要内存大一点的,原来64KB的RAM都用到头了,这勾八玩意是真的贵。
介绍一下rgt6的参数:64引脚+96KB RAM+1024KB FLASH
2. 修改步骤
首先保证你的芯片的boot0和boot1都接地,一般我们都这么干,boot0接地就可以了好像,boot1我记得是随便,所以可以当个gpio玩。
cube生成完你的业务代码,打开keil的设定:
右边是你的RAM起始地址和偏移量,可以看到,偏移量你算算就是96KB。
左边是FLASH起始地址和偏移量,原来的起始地址是0x8000000,偏移量是0x100000(1024KB),起始地址改为0x8020000,就是留了128KB的空间给BootLoader,所以程序还剩0xE0000左右大小(是的,我截图的时候忘改了)
- 修改中断向量表偏移
既然程序启动位置都不对了,中断向量表也得跟着偏移
你可以把后面的改成20000,但最好别改系统文件,在main的开头可以加一句
代码,网上就好多了,看着写吧
主要是给自己看的,所以肯定会出现很多错误哈哈哈哈哈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律