APP程序和普通程序的区别是,需要修改中断便宜量和启动地址:
所谓IAP就是一段程序,允许从外部获取固件,并将这段固件放到指定flash地址,然后跳转到该地址处
例程可以参考原子或者野火的,如果用的不是标准库而是HAL库,可以去参考ST官方的示例代码
做个bootloader就相当于通过串口给单片机下命令和程序;
单片机发现是升级程序,就修改启动地址和中断向量,先将代码收完,再写到FLASH里,重新运行后如果没有再次升级的命令,那就进入到FLASH里运行程序。