【脑洞大开】STM32用ISP来实现IAP在线升级

2019-12-09 19:14发布

STM32串口下载用的是ISP,从ST公司烧写在system memory中的一段bootloader开始启动,然后进行下载。
如果是IAP实现应用程序下载的话,也是需要自己先写一段bootloader,这段bootloader也会将程序写入到Flash。
那我就在想,既然ISP方式中已经有bootloader,那么为什么还要自己写呢?直接使用这段bootloader不就好了吗?
你可能会说,那要调整boot引脚,但是就在刚才,我看到了通过修改PC跳转到system memory的做法,实在让我脑洞大开,这意味这不用调整boot引脚就可以实施串口下载了!!!
见这个帖子http://www.amobbs.com/forum.php? ... ghlight=IAP%2BSTM32
1.png (15.27 KB, 下载次数: 7) 下载附件 2015-9-2 15:45 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
39条回答
bad_fpga
1楼-- · 2019-12-12 03:20
dalarang 发表于 2015-9-2 16:09
我觉得ISP和IAP最大的区别就是灵活性,IAP可以进行远程升级。
而ISP的通讯限定死了只能用串口,而且要边擦 ...

你这个是不是必须要FLASH空间比你的程序FLASH至少大2倍?
dalarang
2楼-- · 2019-12-12 08:51
bad_fpga 发表于 2015-9-9 22:32
你这个是不是必须要FLASH空间比你的程序FLASH至少大2倍?

是的,牺牲部分FLASH空间来换取可靠性是很合算的。
而且现在存储器这么便宜,完全可以放在外部存储器中。
10xjzheng
3楼-- · 2019-12-12 12:44
 精彩回答 2  元偷偷看……
zhaojun_xf
4楼-- · 2019-12-12 13:43
IAR大部分不是用串口。
10xjzheng
5楼-- · 2019-12-12 18:36
zhaojun_xf 发表于 2015-9-10 08:59
IAR大部分不是用串口。

那是CAN、以太网这些?
ilcvm
6楼-- · 2019-12-12 20:30
即使不考虑远程更新,用在实际产品也不方便。一旦下载APP过程有问题导致APP不能正常运行,你就没办法再进入ISP,只能拆机维修了。而自己写IAP就可以有很多办法解决这个问题,代价仅仅是十来K的Flash空间。况且写好一个IAP,只要作很少改动可以适应用其他用同系列MCU的项目,这点功夫绝对划得来。

一周热门 更多>