历史上的今天
返回首页

历史上的今天

今天是: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程序中,即使我们没有用到,也要像如下所示写上去!

在这里插入图片描述

推荐阅读

史海拾趣

Elec & Eltek公司的发展小趣事

随着全球对环境保护和可持续发展的重视日益加深,Eltek公司也积极响应这一趋势。在产品研发和生产过程中,Eltek公司始终坚持环保理念,采用环保材料和工艺,减少对环境的影响。同时,Eltek公司还加大了在可再生能源领域的投入力度,积极研发具有更高效率和更低成本的电力电子产品。此外,Eltek公司还积极参与各种环保活动和公益事业,为推动全球可持续发展贡献自己的力量。

以上五个故事虽然是虚构的,但其中所蕴含的发展思路、创新精神和国际化视野是电子行业公司普遍需要关注和借鉴的。希望这些故事能为您提供一些启示和灵感。

Edcon Components Netherlands Cv公司的发展小趣事

企业文化是Edcon Components Netherlands Cv的重要组成部分。公司注重企业文化的培养和传承,形成了积极向上的企业氛围和团队精神。通过组织各类活动和培训,增强员工的归属感和荣誉感;通过建立公平的激励机制和晋升通道,激发员工的积极性和创造力。这些措施使得Edcon的团队更加紧密团结、高效协作,为公司的发展提供了有力保障。

BAND-IT公司的发展小趣事

在电子行业的推动下,大型基础设施的建设也迎来了快速发展。韦拉札诺海峡大桥作为连接斯塔顿岛和布鲁克林的世界上最长的吊桥,其建设过程对紧固件的需求量大且要求严格。BAND-IT公司凭借其大型不锈钢卡箍产品,成功参与了这一重大工程的建设。这些卡箍不仅具有强大的承重能力,而且安装简便、安全可靠,为大桥的稳定性和安全性提供了有力保障。

DAPAudio公司的发展小趣事

DAPAudio深知产品质量对于企业长远发展的重要性。因此,公司投入大量资源用于提升产品的品质和生产效率。通过严格的质量控制流程和持续的技术创新,DAPAudio的产品在音质、稳定性和耐用性方面均达到了行业领先水平。这一努力不仅赢得了客户的信赖,也树立了公司高品质的品牌形象。

ABI Electronics公司的发展小趣事

为了进一步拓展业务,ABI Electronics公司开始积极寻求全球市场的布局。通过与各地的电子分销商、代理商建立合作关系,ABI的产品逐渐进入了全球各地的市场。同时,ABI还积极参加各类国际电子展会,展示其最新技术和产品,与全球同行建立了广泛的联系和合作。

Amerace Electronic Components公司的发展小趣事

Amerace Electronic Components公司注重企业文化的塑造和传播。公司倡导团结、创新、诚信、共赢的企业精神,鼓励员工积极进取、勇于创新。同时,Amerace还注重员工福利和职业发展,为员工提供良好的工作环境和晋升机会。这种积极向上的企业文化使得Amerace的员工队伍保持稳定和高效,为公司的发展提供了有力保障。

这些故事展示了Amerace Electronic Components公司在电子行业中的发展历程和取得的成就,突显了其在技术创新、全球市场扩张、质量管理、环保理念践行以及企业文化塑造等方面的努力和成果。

问答坊 | AI 解惑

IP DSLAM的发展

数字用户线接入复用器(DSLAM)是xDSL的局端设备。随着xDSL业务在固网市场的迅速普及,DSLAM技术也在发展,本文旨在对目前的一个热点问题-IP DSLAM技术进行探讨。 一、IP DSLAM产生的背景     传统的DSLAM是一个完全的ATM架构的设备, ...…

查看全部问答>

AD6与PADS基本功能比较(转载)

一、 原理图部分 1、 库 ⑴ DxDesigner 的原理图库与PCB的库是相互独立的,而且每个原理图符号库都是一个文件,很难实现统一管理;AD6可以使用集成库来统一管理,不仅是原理图符号库与PCB封装库,还能把混合电路仿真库、信号完整性分析模型库以 ...…

查看全部问答>

液晶驱动HT1621应用实例

前段时间帮朋友做电表用到了这个东东,今天正好无聊,况且这个网站的交流气氛这么好,现在我把液晶这部分整理出来做了个测试小程序帖上来,以备大家急用。 这款液晶不如网站上那些点阵LCD的功能强大、应用灵活,但是在做些小产品的时候还是非常适 ...…

查看全部问答>

multisim10中AD转换求助

我用max1183做AD转换的仿真时,芯片输出始终是0,百思不得其解,求高手们帮帮忙看看啊,谢谢! xuwq2@163.com…

查看全部问答>

快速傅里叶变换

本帖最后由 paulhyde 于 2014-9-15 09:10 编辑 快速傅里叶变换  …

查看全部问答>

伺服电机转子反馈的检测相位与转子磁极相位的对齐方式

永磁交流伺服电机的编码器相位为何要与转子磁极相位对齐 其唯一目的就是要达成矢量控制的目标,使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 ...…

查看全部问答>

MSP430 仿真器连接问题,紧急求助!!

麻烦 MSP430 的大侠帮我看看怎么回事: [ 本帖最后由 academic 于 2011-4-8 11:18 编辑 ]…

查看全部问答>

请问CC2431能用Z-stack 2007吗?

rt。请问CC2431能用Z-stack 2007吗?现在来说是不是Z-stack 2006已经out了?我尝试过1.4.2与1.4.3版的Z-stack,在CC2431上。想移植2007到上面,不知道有没有可行性?谢谢~~~~~~~~~~~~~~·…

查看全部问答>