历史上的今天

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

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

发布者:InspiredDreamer 来源: eefocus关键字:STM32  IAP  流程 手机看文章 扫描二维码
随时随地手机看文章

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相等的偏移量


关键字:STM32  IAP  流程 引用地址:STM32 IAP实现流程

上一篇:将STemWin移植到在STM32F103RCT6上的FreeRTOS上
下一篇:STM32L152 外部中断配置

推荐阅读

1. 创建工程并设置所选型号的启动文件选择相对应MCU型号的启动文件: * startup_stm32l1xx_md.s: 适用于STM32L Ultra Low Power Medium density devices * startup_stm32l1xx_mdp.s:适用于STM32L Ultra Low Power Medium density Plus devices * startup_stm32l1xx_hd.s: 适用于STM32L Ultra Low Power High density devices * ...
在今天的发布会上,华为发布了全球首款蓝牙&低功效蓝牙无线芯片——麒麟 A1芯片,拥有着出色的抗干扰能力与高性能的双通道蓝牙连接,同比延迟降低30%,传输速率提升2.8倍,再现无损高清音质!此外,余承东展示首款搭载麒麟A1芯片的无线耳机FreeBuds 3亮相,尺寸小巧、性能强大。据介绍,华为FreeBuds 3采用开放式的耳塞设计,符合人体工学,佩戴舒适。...
一,FSMCFSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。二,FSMC存储块STM32F767的FMC将外部存储器划分为6个固定大小的256M的存储区域,如下图如图:FSMC分为4块,每块256M字节又被划分为4*64,即四个片选NOR / PSRAM使用块1,共2...
近日,国家知识产权局出具“无效宣告请求审查决定书”,决定号为51715,专利号为200810091140.9,宣告专利权全部无效。专利权人株式会社泰塞克(以下简称:泰塞克),无效宣告请求人为苏士杰。图片来源:国知局苏士杰于2021年5月向国家知识产权局提出了无效宣告请求,涉及专利为泰塞克的“半导体测试装置”专利。国家知识产权局经过审查后,宣告ZL20081009...

史海拾趣

问答坊 | AI 解惑

电流控制型开关电源

 脉宽调制(PWM)型开关稳压电源只对输出电压进行采样,实行闭环控制,这种控制方式属电压控制型,是一种单环控制系统。而电流控制型DC/DC开关变换器是在电压控制型的基础上,增加了电流反馈环,形成双环控制系统,使得开关电源的电压调整率、负载 ...…

查看全部问答∨

家电中单相异步电机绕组的维修

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 家电中单相异步电机绕组的维修(上)              在一些家用电器(如电风扇、洗衣机、排风扇等)中,电机损坏后的维修, ...…

查看全部问答∨

跪求:关于单片机程序的问题.急!!!!!

   (1)开关键盘输入交通灯初始时间,通过8031单片机P1输入到系统  (2) 由8031单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PC 口显示红、绿、黄灯的燃亮情况;由8255的PA、PB口显示每个灯的燃亮时间。   ...…

查看全部问答∨

想学hspice的请进这里了(超级经典的中文学习资料)

超级经典的中文学习资料!看了就知道了.绝对保证能解压…

查看全部问答∨

数据通信技术概要

数据通信技术概要…

查看全部问答∨

TL431 芯片之应用之原理分析

TL431特点:      TL431精密可调基准电源有如下特点:稳压值从2.5~36V连续可调;参考电压原误差+-1.0%,低动态输出电阻,典型值为0.22欧姆输出电流1.0~100毫安;全温度范围内温度特性平坦,典型值为50ppm;低输出电压噪声。 原 ...…

查看全部问答∨

电源设计中,电容,电感的作用,和选型,谁进来指点下.

1.首先上一个图,主芯片供电路 在该电路中电容作用: 1.EC4电容,它起的作用是什么,应该使用什么型号电容呢? 2.C16电容,它起的作用是什么,应该使用什么型号的贴片电容呢? 2.在一个电源设计中的电路 1.C3的作用是什么,应该使用什么型号电容呢? ...…

查看全部问答∨

大哥们帮帮忙,求思路

   小弟现在在做一个基于ARM的3G无线视频通信项目,3G现在已经在ARM上调通,对于下一步方案无限迷茫。    小弟的项目内容是,在PC端用3G发出一个视频文件,然后ARM板接收并传出这个视频文件    请大哥们给点思路, ...…

查看全部问答∨

求助关于SOURCE文件中的内容

修改BSP 编译报错: BUILD: [00:0000000058:PROGC ] Linking \\WINCE500\\PLATFORM\\MCORE\\drivers\\psm\\fsd\\ directory. BUILD: [01:0000000066:ERRORE] NMAKE :  U1073: don\'t know how to make \'C:\\WINCE500\\PBWorkspaces\\ ...…

查看全部问答∨

指点哈红外遥控器电路

高手给指点哈这个电路图和程序的设计?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved