历史上的今天
返回首页

历史上的今天

今天是:2024年09月08日(星期日)

2018年09月08日 | STM32 IAP实现流程

2018-09-08 来源:eefocus

1. 概念

IAP:In-Application Programming”,中文解释为“在程序中编程”。ICP(In-Circuit Programming)技术即通过在线仿真器对单片机进行程序烧写,而ISP技术则是通过单片机内置的bootloader程序引导的烧写技术。

2. 框架设计

简要说明: 将STM32 的Flash 512Kb 分为两个部分,一个256Kb 用来存放最小系统,一个256Kb用来存放APP代码。具体最小系统与APP的Flash大小可根据实际情况调整。

难点解析:

  1. 最小系统与APP的存放地址

    要找到最小系统与APP的存放地址,那么就需要了解STM32的Flash存储空间,如下: 
    Flash

  2. 最小系统与APP的跳转

    系统启动之后首先进入最小系统,这是由硬件决定的,进入最小系统之后,再判断APP系统烧录的地址的栈顶指针是否正确来判断是否烧录了APP,启动APP。官方例程代码如下:

/* Test if user code is programmed starting from address "ApplicationAddress" */

if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)

  /* Jump to user application */

  JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);

  Jump_To_Application = (pFunction) JumpAddress;

  /* Initialize user application's Stack Pointer */

  __set_MSP(*(__IO uint32_t*) ApplicationAddress);

  Jump_To_Application();

}


上面这个是第一种方法,还有第二种方法是:在将APP程序写入Flash后在Flash中写入相关信息,最小系统程序不断检测读取该信息,如读到该信息则写一个标志位到SRAM中,重启MCU,剩下的同样利用上面的代码,只不过判断条件改为SRAM中的标志位了。

  1. 启动顺序 
    关于启动顺序,网上有比较详细的说明

    没有使用IAP的 
    这里写图片描述

    使用IAP的

    这里写图片描述

  2. 最小系统与APP的编译

    最小系统的编译直接按照正常的工程编译就行,而APP的编译则需要特殊处理:keil中设置如下: 
    这里写图片描述
    上面这个是针对程序的存放的Flash地址的,还需要对中断向量表进行重地位,可使用函数

    void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset); 
    在APP main函数中调用该函数设置偏移量,偏移量要等与程序 Flash相等的偏移量


推荐阅读

史海拾趣

芯联(CHIPLINK)公司的发展小趣事

芯联集成始终将技术创新作为公司发展的核心驱动力。公司不断加大研发投入,积极推动技术迭代,确保在行业内保持领先地位。同时,公司还注重知识产权保护,积极申请专利,为公司的技术成果提供了坚实的法律保障。这些努力使芯联集成在竞争中始终保持优势,赢得了市场的广泛认可。

Everett Charles Technologies (ECT)公司的发展小趣事

1965年,Everett Charles Technologies (ECT) 公司正式成立,标志着其在电子测试系统硬件与软件领域的起点。ECT的创始人凭借对电子技术的深刻理解和市场需求的敏锐洞察,成功开发出了一系列符合工业标准的产品,包括POGO探针、ValuGrid测试治具等。这些产品的推出,不仅奠定了ECT在电子测试领域的基础,也为公司的后续发展提供了强大的动力。

Dell公司的发展小趣事

2001年,Everett Charles Technologies (Shenzhen) Limited(ECT深圳)正式成立,成为Dover集团在中国的全资子公司。ECT深圳的成立,不仅为ECT在中国市场的业务拓展提供了有力支持,也为公司进一步拓展亚洲市场奠定了基础。多年来,ECT深圳凭借卓越的产品质量和服务水平,赢得了众多客户的信赖和支持,成为ECT在亚洲地区的重要生产基地。

EOZ S.A.S公司的发展小趣事

随着5G技术的普及,EOZ S.A.S公司意识到这将为电子行业带来革命性的变化。公司迅速调整战略,将研发重心转向5G相关技术和产品。通过与运营商合作,EOZ S.A.S成功推出了一系列基于5G技术的智能家居和物联网产品,如智能音箱、智能门锁等。这些产品凭借高速、低延迟的特点,满足了消费者对智能家居的多样化需求,进一步巩固了公司在市场中的地位。

EMLSI公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。EMLSI公司深知这一点,因此始终将品质管理放在首位。公司建立了严格的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格把关。同时,EMLSI还注重与客户的沟通和反馈,及时解决客户在使用过程中遇到的问题。这种对品质的执着追求让EMLSI赢得了客户的信任和忠诚。

Ceramics公司的发展小趣事

“全球陶瓷”公司凭借其卓越的产品质量和国际化战略,成功拓展了海外市场。该公司积极参与国际展览和交流活动,与多国电子企业建立了合作关系。同时,全球陶瓷还针对不同国家和地区的市场需求,推出了定制化的陶瓷电子材料解决方案。这一国际化战略不仅提升了公司的品牌影响力,也为其在全球范围内的业务拓展提供了有力支持。

问答坊 | AI 解惑

wince下如何隐藏输入法图标

有些界面下根本不需要SIP,我想把它隐藏掉  相信大家也都遇见过这种问题  你们是怎么解决的?…

查看全部问答>

单片机测控系统中的抗干扰技术 (转载)

单片机测控系统中的抗干扰技术 (转载!) 摘 要:本文针对单片机测控系统中的干扰因素,并结合实际应用系统给出了采取软、硬件两种方法抗干扰的具体措施。 关键词:单片机测控系统抗干扰? 概述 干扰是造成单片机测控系统故障的主要原 ...…

查看全部问答>

力科发布业界最全面的MIPI测试解决方案

力科发布业界最全面的MIPI测试解决方案…

查看全部问答>

intouch的硬件狗及授权的问题?

在购买inotuch硬件狗和授权文件时,是否规定了使用单位,如果多余的硬件狗或授权文件可否用在其他地方? 请购买过的朋友帮忙解答一下…

查看全部问答>

STM8S的bootloader,能STM32一样串口ISP?

仔细看了UM0560,UM0462,并试了一下UM0462.zip;还是不知道STM8S能不能像STM32一样,通过串口ISP? UM0560里提到可以通过UART、CAN、SPI等进行bootloader,好像是通过寄存器的值来选择启动方式。 但是,如果我只有一个STM8S板,没有ST-LINK ...…

查看全部问答>

不懂UART怎么通信啊,懂的帮忙

学430 lanchpad板上的TimerA模拟uart通信,总是不成功,下面是TI的演示程序,只做了简单修改,可用串口调试软件观察还是没数据,不知道那个地方有问题 #include  <msp430g2231.h> #define RXD       BIT2 ...…

查看全部问答>

急用钱 出TI原厂EK-LM3S811开发板一块

小弟急用钱购置新的开发板套件所以出一直闲置的TI原厂EK-LM3S811开发板一块有资料,数据线        120元包快递  有需要的联系我QQ452251911   请注明ARM板  ^_^板子九成新,说实话,买来以后只用过不到3次。。 ...…

查看全部问答>

msp430在启动振动器后为啥要清除振荡器失效标志?DCOCTL怎么用?

不使用中断也要清除振荡器失效标志吗????还有DCOCTL怎么用,,能说的具体点吗????~~~~~~~求指教…

查看全部问答>