STM32官方IAP例程详细说明,以及Demo演示
关注+星标公众号,不错过精彩内容
作者 | strongerHuang
微信公众号 | 嵌入式专栏
我们常看到ISP、ICP、IAP等英语缩写词组,它们的主要作用就是对程序代码进行下载(编程)。
下面将介绍关于编程的基础知识,以及结合STM32官方提供的Demo详细讲述一下其中的内容。
1关于ISP、ICP、IAP
1.ISP
ISP:In System Programing,在系统编程。
比如:使用STC-ISP对STC芯片编程,利用Flash loader对STM32编程等。
支持ISP的芯片一般在芯片内部固化了一段(用ISP升级的)boot程序。
2.ICP
In Circuit Programing,在电路编程。
ICSP:In-Circuit Serial Programming,在电路串行编程。如:对EEPROM编程等。
ICP编程方式网上各有说法,从字面含义(在电路)来说,所有处于编程的芯片都需要上电,都处于电路中。不严格来说利用J-Link、ST-Link、e-Link32等工具进行编程也属于在电路编程(ICP)。
在维基百科中,在系统编程(ISP),也称为在电路串行编程(ICSP)。
3.IAP
In applicating Programing,在应用编程。
这里是本文说的重点,可以简单理解为:在程序运行的过程中进行编程(升级程序,更新固件)。
IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。 [来自:百度百科]
IAP通信口
2ST官网IAP例程
库:有使用标准外设库(SPL)的、有使用硬件抽象层库(HAL)的;
通信接口:有使用USART的,有使用I2C的,有使用ETH的等。
MCU型号:STM8S、STM32F1、F4、L1等几乎全系列都有。
STM32F10xxx in-application programming using the USART官方地址:
https://www.stmicroelectronics.com.cn/en/embedded-software/stsw-stm32008.html
(提示:公众号不支持外部链接,请复制链接到浏览器下载)
我下载后上传至百度网盘地址:
https://pan.baidu.com/s/1umdwlShsJpL8rLdeb9n6Cw
密码:2t3j
(提示:该链接后期可能会失效,建议到官网下载)
3IAP例程几个要点
1.例程概要说明
2.IAP软件工程
3.说明
这个APP地址0x0800 3000是怎样来的呢?
见IAP程序代码:
提示:
它这里是通过按键方式选择执行IAP,还是执行APP;一般建议通过倒计时(比如5s):5s之内通过串口选择下载,否则自动跳转到APP程序执行。这里就需要自己根据情况修改代码。
4APP代码和地址问题
上一章节是讲述的IAP程序,本节讲APP程序修改地址的问题。
1.添加代码
在代码开始设置向量表偏移:
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);
0x3000代表偏移量
2.修改配置
project -> Options
3.生成Bin
具体可以参看我另外一篇文章:
4.APP程序代码
https://pan.baidu.com/s/1umdwlShsJpL8rLdeb9n6Cw
密码:2t3j
5超级终端安装,程序下载,Demo演示
1.超级终端下载、安装
2.程序下载,Demo演示
后台回复『STM32』『Keil』『嵌入式软件设计与开发』阅读更多相关文章。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。