历史上的今天
今天是:2024年09月14日(星期六)
2021年09月14日 | STM32-IAP学习笔记
2021-09-14 来源:eefocus
一、IAP名词解释
所谓的IAP(在应用编程)说白了,功能就是可以实现用户程序的升级。为此实际开发中需要准备两份工程代码,一份工程代码我们称之为BootLoader程序,另一份工程代码我们称之为APP程序。
在实际操作过程中是先通过软件(如keilMDK的download按钮)手动下载第一份BootLoader程序到STM32的FLASH中,该部分代码主要通过某种通信接口(常用USART)接收第二份APP程序,然后写入到FLASH中。
二、STM32运行流程
STM32的FLASH程序运行是从0x08000000开始的!
1、加入IAP前,程序运行流程

2、加入IAP后,程序运行流程

三、使用方法
另外需要注意,起始地址偏移量为 0X200的倍数即可
1、BootLoader程序
①、keil魔术棒中的Target配置如下:(不需要动,按照单片机选型就可以)

②、stmflash.h中需要注意如下内容:

BootLoader大小为10KB

2、APP程序
①、keil的魔术棒配置如下:(APP程序在FLASH中的起始地址和大小需要根据实际情况配置下,RAM的话默认即可)

②、设置APP程序的中断向量表偏移,如下图

如果不在APP程序里面做一下设置,那么APP程序里面的中断其实会跳进 bootloader 里面(假设bootloader 也使用了一样的中断)。故,需要让APP里面生成自己单独的一套中断。
所以,需要设置下中断向量偏移,一般是APP程序相对于Flash地址偏移了多少,就设置中断向量偏移多少。
SCB->VTOR = FLASH_BASE | 0x4000;
③、设置擦除FLASH方式Erase Sectors
Erase Full Chip:烧写程序之前擦除整个Flash存储器。
Erase Sectors: 烧写程序之前擦除程序要使用的扇区。
Do not Erase: 不进行擦除操作
不然小心把BootLoader也给擦除了。。。。

最后
BootLoader 程序里面设置的硬件配置,中断配置在跳转到APP程序里面的时候同样有效!除非APP里面重写硬件配置,中断配置,否则,还是默认运行的BootLoader里面配置的!
故,最好的方式是凡是BootLoader里面用到的中断函数,用户程序全部重新写一遍.可以不用,但是必须重写!
像这样:
BootLoader中的滴答定时器中断:

在APP程序中,即使我们没有用到,也要像如下所示写上去!
上一篇:【STM32小知识】DMA入门
史海拾趣
|
数字用户线接入复用器(DSLAM)是xDSL的局端设备。随着xDSL业务在固网市场的迅速普及,DSLAM技术也在发展,本文旨在对目前的一个热点问题-IP DSLAM技术进行探讨。 一、IP DSLAM产生的背景 传统的DSLAM是一个完全的ATM架构的设备, ...… 查看全部问答> |
|
一、 原理图部分 1、 库 ⑴ DxDesigner 的原理图库与PCB的库是相互独立的,而且每个原理图符号库都是一个文件,很难实现统一管理;AD6可以使用集成库来统一管理,不仅是原理图符号库与PCB封装库,还能把混合电路仿真库、信号完整性分析模型库以 ...… 查看全部问答> |
|
前段时间帮朋友做电表用到了这个东东,今天正好无聊,况且这个网站的交流气氛这么好,现在我把液晶这部分整理出来做了个测试小程序帖上来,以备大家急用。 这款液晶不如网站上那些点阵LCD的功能强大、应用灵活,但是在做些小产品的时候还是非常适 ...… 查看全部问答> |
|
永磁交流伺服电机的编码器相位为何要与转子磁极相位对齐 其唯一目的就是要达成矢量控制的目标,使d轴励磁分量和q轴出力分量解耦,令永磁交流伺服电机定子绕组产生的电磁场始终正交于转子永磁场,从而获得最佳的出力效果,即“类直流特性”,这种控 ...… 查看全部问答> |
|
请教各位大侠,有没有免费的能在PDA上实现局域网点点通话的软件,谢谢! 请教各位大侠,有没有免费的能在PDA上实现局域网点点通话的软件,谢谢! PDA操作系统为Mobile6.0 局域网内通话,不需要连接外网,Skepe软件必须连接外网才能通话,比较郁闷~… 查看全部问答> |
|
当一个设备栈是这样: Device\\0 ATT: Device\\B 你再挂个 驱动A 上去,正常操作下会是这样: Device\\0 ATT: Device\\B ATT: Device\\A 那么,IRP 发往 A->B->0 ,0 完成了IRP后再\'回卷\': 0->B->A ...… 查看全部问答> |
|
rt。请问CC2431能用Z-stack 2007吗?现在来说是不是Z-stack 2006已经out了?我尝试过1.4.2与1.4.3版的Z-stack,在CC2431上。想移植2007到上面,不知道有没有可行性?谢谢~~~~~~~~~~~~~~·… 查看全部问答> |




