设备需要进行远程更新升级时,需要在设计固件程序时编写两份项目代码,第一份项目程序不执行正常的功能操作,而只是通过某种通信方式接收程序或数据,执行对第二部分代码的更新,而第二份项目代码才是真正的功能代码。这两部分项目代码都同时烧录在Flash 中,当设备上电后,首先是第一份项目代码开始运行,具体操作如下:
1、检查是否需要对第二部分代码进行更新。
2、如果不需要更新则转到main函数的入口。
3、执行更新操作。
4、跳转到第二部分代码执行。
我们将第一份项目代码称之为Bootloader ,而第二份项目代码称之为APP 程序,他们存放在STM32 FLASH 的不同地址范围,一般从最低地址区开始存放Bootloader,紧跟其后的就是APP 程序,当然如果设备的flash容量足够,我们也可以添加很多APP程序。
|