第一节:串口IAP基本介绍
1.1 STM32的程序下载方式
STM32下载程序的方式有以下三种,第一种是在电路编程(ICP)方式,MCU内部不需要有程序,直接上电就能够进行编程的方式。使用ST-LINK下载器的JTAG/SWD接口属于这种方式。
第二种方式是在系统编程(ISP),通过设置boot引脚设置对应启动模式,执行厂家固化的Bootloader程序,来下载程序。使用串口下载程序属于这种方式。
最后一种方式是在应用中编程(IAP),即允许用户在现运行程序中,通过任何一种通信接口,将新的程序重新下载到单片机闪存中,实现无需操作硬件平台的情况下程序的远程升级。
1.2 IAP程序下载流程
(插叙一段基本知识:下载程序是指,将用户应用程序下载到FLASH中0x08000000地址开始的区域。在ICP下载方式中,如果通过JTAG/SWD协议下载,是将代码直接下到这一区域;如果通过串口下载,需要配合芯片引脚BOOT0/1,实现单片机从系统存储器的Bootloader程序【这段程序是原厂固化的】启动,将串口接收到的程序代码,引导存储到FLASH中0x08000000地址开始的区域中去)
对于IAP下载方式的实现,是将一段用户Bootloader程序写到FLASH中0x08000000地址开始的区域。注意,这里的用户BootLoader程序,不同于原厂固化的BootLoader程序,是用户可以自我定制的【例如你可以在