【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
mcu种类很多,如果是开发的时候需要对固件升级,整体还是比较容易的。不管是dap,还是st-link v2、j-link,这对程序员来说都不是什么难事。毕竟,修改代码,升级固件是常有的事情。但是一旦产品销售出去,客户或者售后需要对产品进行升级的时候,这种情况下,升级还是做的简单一点比较好。所以这个时候就出现了iap升级。所谓来的iap,In Application Programming,就是等mcu启动之后再进行升级。
今天分析的代码来自于geehy apm32f103 demo,有兴趣的同学可以去下载看看。
1、mcu启动方式
要实现iap升级,一般会有两个固件。第一个固件是bootloader,它是专门负责下载固件、升级固件、地址跳转的;第二个固件就是用户固件,是存放业务代码的地方,也就是需要被升级的内容。系统启动后,默认一开始是启动bootloader,如果发现没有固件需要升级,会直接jump到第二个用户固件的地方,继续运