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 上传
因为要调整boot引脚,为什么要自己定制升级的通信机制呢?
而ISP的通讯限定死了只能用串口,而且要边擦边写,上位机给下位机传一段,下位机擦除并写入一段。而IAP可以做到先不擦除FLASH,仅仅接收程序数据,将其存到其它区域,等接收完毕后再一口气将程序区擦除并写入。
这样ISP几乎没法用远程的方式进行写入,例如我通过GPRS升级,IAP可以自己定协议帧来接收程序,等全部接收完了再写更新APP。而ISP呢?先不说ISP中无法支持GPRS的方式通讯,就算能支持了,边擦边写的方式也有很大危险,万一中途掉线什么的,到时候ISP进不去,APP又不完整,远程只能干瞪眼了。
一周热门 更多>