STM32F10x的IAP在线升级功能非常实用——不必拆开设备的外壳,然后通过JLINK或是其它工具烧录程序。而是仅通过设备上的串口、USB或是CAN,即可完成程序的更新,实现固件升级。
整个过程用到两个程序,一个IAP程序,它用来实现通过串口下载用户程序。另一个就是用户应用程序了。
通过串口实现在线升级的原理如下:
1、首先通过JLINK或其它工具将IAP程序下载至STM32的FLASH中,其占据的地址空间为0x800 0000到0x800 2fff,这段空间用来存放IAP程序,IAP代码大小不能超过(0x800 2fff - 0x800 0000 = 12K)。
2、打开“超级终端”,按照IAP程序里设置的参数(波特率、数据长度、校验位等),对“超级终端”作相应设置。
3、将设备断电,按住设备上的某一开关或是按键(这个可以在IAP程序里自已定义,下文有叙述)。然后给设备上电,这时“超级终端”上会显示操作界面,让用户选择:1、给STM32下载新的用户程序;2、将STM32内现存的用户程序上传至电脑;3、运行新下载的用户程序。出现这个界面后,就可以松开开关或是按键了。
4、通过电脑键盘上的“1”、“2”、“3”这几个数字键选择你想执行的操作。若是希望下载,按下数字键“1”.接下来电脑屏幕上会弹出对话框,让你选择希望下载的二进制文件,以及传输协议,这个得选“Ymodem”协议。完成后按“确定”就开始下载了。
|