【分享】刚搞好的IAP,分享IAP源代码和上位机软件

2019-07-20 23:52发布

本帖最后由 PCA 于 2016-12-2 14:05 编辑

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

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

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

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

有建议的也欢迎提建议,还有很多地方有待优化
bootloader源码及上位机软件见附件。
STM32_IAP_Bootloader_MV10_STM32F10X_MD.rar (104.16 KB, 下载次数: 1467) 2016-12-2 12:44 上传 点击文件名下载附件 STM32串口下载MV10.rar (42.81 KB, 下载次数: 1551) 2016-12-2 12:44 上传 点击文件名下载附件






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
34条回答
PCA
1楼-- · 2019-07-22 18:05
shirl 发表于 2016-12-7 16:28
size 这么搞有隐患 要减去0x1000

没错没错,多谢提醒
handrap
2楼-- · 2019-07-22 22:44
这个很好啊,值得学习。VB源码能分享不,学习下@PCA
handrap
3楼-- · 2019-07-23 01:37
本帖最后由 handrap 于 2016-12-9 14:47 编辑

谢谢。楼主。根据楼主的IAP程序和下载软件 终于测试成功了。APP程序用的是自己程序。
但调试过程中发现运行APP时,如果发生中断就死机了。发现是中断跳到IAP的中断向量跳不出来了。APP程序mian程序第一行也加了:
SCB->VTOR = ((u32)0x08000000) | 0x1000; /* 中断向量重定义。

分析还是中断向量没定义好,才会这样。
后面网上查,
直接把sys.c里的 MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0)改成 MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x1000);   //0x1000是分配的。
就可以了。

参照了这个http://www.openedv.com/thread-28635-1-1.html
以及http://www.openedv.com/thread-11494-1-1.html
wangjue
4楼-- · 2019-07-23 02:28
 精彩回答 2  元偷偷看……
wangjue
5楼-- · 2019-07-23 07:34
有上位机源码吗
3057040080
6楼-- · 2019-07-23 11:45
 精彩回答 2  元偷偷看……

一周热门 更多>