STM32 IAP 串口在线升级源码详解_stm32 iap串口升级

本博文基于本人修改的代码进行编写如需代码,
请到[代码下载](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)自行下载。

详细内容不做过多说明,请到以下网址进行查看,已经介绍的很详细了。
http://www.openedv.com/forum.php?mod=viewthread&tid=276033&highlight=STM32%2BIAP
http://www.21ic.com/app/mcu/201701/700207.htm

下面着重介绍下本人修改源代码部分,下载官方例程,本人使用的是STM32F103C8T6芯片,修改ROM空间大小0x2000,
XIUGAI在这里插入图片描述
修改宏定义
在这里插入图片描述
更改启动文件,更改方法:更改的文件鼠标右键弹出窗口->Options for File ‘statup_stm32f10x_md.s’… ->选中红框里的两项(‘√’第一次选中后为深黑色,再次点击为浅灰色,浅灰色时点击确认,其中的原因我也不太懂,你们可以试试)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改堆栈地址0x8002000
在这里插入图片描述
至此,BootLoader修改完毕直接下载进去就可以了。

下面修改测试程序,我用STM32CUBEMAX直接配置了一个流水灯程序,修改程序:
主函数添加地址偏移:上面我们设置的地址大小为0x2000,所以地址偏量设置为0x2000
在这里插入图片描述
两种方法:

SCB->VTOR = FLASH_BASE | 0x2000;     
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x2000);

由于本人在HAL库没有找到对应的函数,所以使用了第一种方法。
接下来修改配置,起始地址设置为0x8002000,大小我就随便设了个,够用又不超出rom范围。
在这里插入图片描述
生成.BIN文件配置,详细说明请参考博文
Keil MDK5生成 .bin文件的简单教程
在这里插入图片描述
编译过后就可以使用SecureCRT软件进行下载了:(安装部分资源包内有详细说明)
选择合适的参数,端口
在这里插入图片描述
配置好后点击下一步:芯片复位会接受到如下数据
在这里插入图片描述
按数字键盘1如下:
在这里插入图片描述
进行下载点击Transfer->Send Ymodem->打开下载的.bin文件,下载完成提示如下:


点击键盘数字3便可运行流水灯程序。官网例程本人研究的还不明白…

第一次写博文,有不足之处还请大家多多指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值