STM32F 远程升级OTA 应用总结

2020-06-30来源: eefocus关键字:STM32F  远程升级  OTA

1.概述
STM32具有IAP自编程能力,能实现OTA功能。OTA代码由Bootloader和APP组成。在设计时,应尽可能的简化Bootloader功能。以下所有的阐述在STM32F4上已实现。
2.实现思路
把单片机内部flash分为3个区域,分别储存“bootloader”、“运行APP”和“代码暂存区”。“运行APP”接收升级代码保存到“代码暂存区”,接收完成过后写一个升级标志,跳转到bootloader,bootloader把“代码暂存区”的程序拷贝到“运行APP”中,然后清除升级标志,并跳转到运行APP,实现整个升级过程。
3.明确实现功能
Bootloader实现功能:代码跳转、读写OTA升级标志、代码拷贝、串口打印四个功能。
APP实现功能:接收代码储存,写OTA标志,代码跳转。
4.flash分区(共2M flash空间)
“bootloader”:从0x8000000(flash的起始地址)到0x8010000,总共0x10000=64K的flash空间。
“运行APP”:从0x8010000到0x8080000,共448k的flash空间
“代码暂存区”:从0x8080000到0x810000,共512k的flash空间。
5.升级标志位读写
升级标志写入后备寄存器当中,需要使用到RTC功能。
6.APP与bootloader之间跳转
7.APP设置

关键字:STM32F  远程升级  OTA 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501623.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32F407开发板的HTTP模式IAP远程升级之官方例程移植
下一篇:ST-Link不能下载程序的几种解决办法

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F407 SPI2 寄存器操作
;  GPIO_AF_Set(GPIOB,14,5);    //PB14,AF5     GPIO_AF_Set(GPIOB,15,5);    //PB15,AF5     //这里只针对SPI口初始化    RCC->APB1RSTR|=1<<14;    //复位SPI2    RCC->APB1RSTR&=~(1<<14);//停止复位SPI2    tempreg|=0<<10
发表于 2020-07-06
STM32F10x 学习笔记之USART实现串口通讯 DMA 方式
STM32F10x 的USART 支持DMA 方式,并且在DMA完成后可以产生中断。这对于需要接收或发送大量数据的应用情景是很有帮助的。在普通的8位或16位单片机中很少有包含DMA控制器的,所以可能许多嵌入式程序员对DMA方式并不熟悉。简单的说,直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。由于无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。STM32F10x 上具有两个DMA控制器,共有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器
发表于 2020-07-04
<font color='red'>STM32F</font>10x 学习笔记之USART实现串口通讯 DMA 方式
stm32F4之使用I2C读写24C02
一.24C02简单介绍1.串行E2PROM是基于I2C-BUS 的存储器件,2.可以支持100万次擦除,数据可以保存100年,3.支持每次读写1字节4.写周期最大5ms(即最好保证在5ms后进行读写,否则可以数据将会读取错误)二.24C02的读写时序图从手册中可以找到以下两个读写图,我也将以以下两个图为例进行函数编写,其他读写图请查手册 三.用模拟的I2C协议封装24C02的读与写该设备为IIC设备,因此我们要先确定其设备地址,STM32F4探索者的开发板上为2K的E2PROM,A2=A1=A0  因此设备地址为(0XA0/0xA1)根据下图进行编程:字节写:使用封装好的I2C函数,进行函数24C02的写函数
发表于 2020-07-03
<font color='red'>stm32F</font>4之使用I2C读写24C02
STM32F4硬件IIC+DMA使用
1.STM32硬件IIC一直被大家说存在问题,实际测试发现确实是有这种情况,借助网上很多人的经验,终于把硬件IIC写完了。2.使用DMA时,发现发送数据(写寄存器)时序和实际不符,比如发送4字节数据时,如果DMA缓冲区单字节长度配置为4,则实际时序发现只有三个,需要将DMA缓冲区单字节长度配置为5,才可以正常使用3.当然,如果使用STM32的HAL库,这些问题其实都可以避免,因为底层ST已经做了超时及错误的处理。4.使用的IIC为自定义的格式,写寄存器操作为:START+ACK(从机的ACK信号)+IIC设备地址+(从机的ACK信号)+START+ACK(从机的ACK信号)+IIC写寄存器地址+ACK(从机的ACK信号)+IIC写
发表于 2020-07-03
使用eclipse搭建stm32f7xx环境的工程
由于工作需要,用eclipse搭建基于stm32f7xx芯片的工程环境。记录下安装和编译链接工程过程中遇到的问题,今后可以参考。同时也希望能给遇到类似问题的人一些参考。Eclipse: 一款开源的集成开发环境(Integrated Development Environment),配合众多插件,可以用于Java应用程序开发、Android应用程序开发等。最精简的Eclipse只是一个框架,开发不同应用程序时需要安装对应的插件才能进行,不像微软的VS已经集成了众多的编译工具。CDT:开发stm32应用程序主要使用的是C/C++,所以Eclipse需要安装CDT(C/C++ Development Tooling)插件。GNUARM
发表于 2020-07-02
使用eclipse搭建<font color='red'>stm32f</font>7xx环境的工程
使用eclipse搭建stm32f7xx环境的工程
由于工作需要,用eclipse搭建基于stm32f7xx芯片的工程环境。记录下安装和编译链接工程过程中遇到的问题,今后可以参考。同时也希望能给遇到类似问题的人一些参考。Eclipse: 一款开源的集成开发环境(Integrated Development Environment),配合众多插件,可以用于Java应用程序开发、Android应用程序开发等。最精简的Eclipse只是一个框架,开发不同应用程序时需要安装对应的插件才能进行,不像微软的VS已经集成了众多的编译工具。CDT:开发stm32应用程序主要使用的是C/C++,所以Eclipse需要安装CDT(C/C++ Development Tooling)插件。GNUARM
发表于 2020-07-02
使用eclipse搭建<font color='red'>stm32f</font>7xx环境的工程
小广播
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved