dmf1988 发表于 2018-1-12 21:42:24

STM32 IAP下载上位机及bootloader分享

论坛里学到不少东西,很少有拿得出手可以分享给大家的东西,看论坛有IAP下载的,比如原子的是一次接收全部再升级,此方式只适合学习IAP原理,实际项目中都不会这么用,比如miniV3用的芯片RC,由于RAM限制,只能升级41K以下的程序,这就需要用到边接收变升级处理的方法,于是在原子基础上修
整体思路,上位机发送连接指令,连接到STM32后,发送数据包数,之后进入BIN升级文件发送,STM32端接收到数据后,计算包数,完全接收够数据了然后开始升级程序,上电100ms没有收到信号则自动跳转到APP程序处,未做CRC校验,后续有待改进

使用VB设计上位机,界面如下:


勾选预览BIN,可以查看BIN文件信息,自学的VB,很多东西还没摸透,如图加载一个49.1KB的BIN文件,TEXTBOX里打印出来信息,竟然要十二秒左右,不知道为什么会这么慢还在摸索,一般都不预览BIN文件,读取数据倒是很快,重复下载功能暂时没有开启使用,另外自动复位下载需要在APP程序中添加支持,可以做到不断电自动复位进入BootLoader然后开始下载。
下载成功界面:
不预览BIN文件


预览BIN文件的界面

BootLoader程序3K多,APP程序中ROM设置地址如下:其实地址设置为0X08001000,size就根据使用的芯片设置即可


测试平台STM32F103R8T6,此芯片为MD类型的,用于RC此类的HD类型的,只需要更改bootloader中启动文件,另外STMFLASH.H问价里的FLASH_SIZE对应修改即可。

有建议的也欢迎提建议,还有很多地方有待优化
bootloader源码及上位机软件见附件。



yangxf0120 发表于 2018-1-12 22:53:23

谢谢分享STM32 IAP下载上位机及bootloader

zengfanlong 发表于 2018-1-13 08:44:55

ziru 发表于 2018-1-13 08:57:53

chenmios 发表于 2018-1-13 09:23:58

这个是通过串口实现的吗

dmf1988 发表于 2018-1-13 10:51:25

回 chenmios 的帖子

chenmios:这个是通过串口实现的吗
 (2018-01-13 09:23) images/back.gif

是的

3395587186 发表于 2018-6-6 12:49:54

aabb888 发表于 2018-6-7 19:49:46

hyh0512 发表于 2018-6-7 20:39:18

先看看再说。。。。。

pnyssk 发表于 2018-10-5 18:11:28

这个是确实不错
页: [1] 2 3
查看完整版本: STM32 IAP下载上位机及bootloader分享