【IAP】IAP在线升级流程

本文深入解析STM32微控制器的IAP(在应用编程)技术,介绍其实现原理,包括通过USART等接口更新运行中程序的方法,以及STM32闪存组织架构和启动过程的关键点。同时,探讨了IAP方案设计与注意事项。

IAP,全称是“In-Application-Programming”,中文解释为“在程序中编程”。不同于ISP通过设置MCU内部的BootLoader程序引导烧写或者是ICP通过SWD、JTAG在线仿真烧写。IAP是一种对通过微控制器的对外接口如:USART,IIC,CAN,USB,以太网接口甚至是无线射频通道等对正在运行程序的微控制器进行内部程序的更新的技术

如何实现?

1、实现IAP技术的核心是一段预先烧写在单片机内部的IAP程序。这段程序主要负责与外部的上位机软件进行握手同步,然后将通过外设通信接口将来自于上位机软件的程序数据接收后写入单片机内部指定的闪存区域,然后再跳转执行新写入的程序,最终就达到了程序更新的目的。

2、在STM32微控制器上实现IAP程序之前首先了解STM32的内部闪存组织架构和其启动过程。关于启动过程:

【FreeRTOS】读书笔记,嵌入式微操作系统

3、STM32的内部闪存地址起始于0x8000000,一般情况下,程序文件就从此地址开始写入。程序启动后,将首先从“中断向量表”(“中断向量表”来响应中断)取出复位中断向量执行复位中断程序完成启动。“中断向量表”的起始地址是0x8000004,当中断来临,STM32的内部硬件机制亦会自动将PC指针定位到“中断向量表”处,并根据中断源取出对应的中断向量执行中断服务程序。最后还需要知道关键的一点,通过修改STM32工程的链接脚本可以修改程序文件写入闪存的起始地址

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值