IAP升级(STM32)
IAP升级(STM32)
IAP作用简述:将要升级的程序bin文件通过串口发送给STM32,STM32接收后存储到FLASH或者SRAM,用户通过事件(按键等)触发(也可延时自动触发)后将升级

文件夹作用:
Bootloader先烧录到stm32,作为引导接受串口bin文件升级包,以及跳转到用户程序执行
IAP_FLASH_LED工程用作生成存储到FLASH地址段内的用户程序bin文件,用于串口发送给STM32用作IAP升级实验
IAP_SRAM_LED工程用作生成存储到SRAM地址段内的用户程序bin文件,用于串口发送给STM32用作IAP升级实验
两部分设计,bootloader、APP代码设计,bootloader用于检查APP区代码是否需要更新,以及跳转到APP区执行APP程序
Bootloader设计

Bootloader程序中根据芯片启动流程,将用户执行程序存放在地址:0x08010000
//第一个应用程序起始地址(存放在FLASH)
制作APP用户程序的.bin文件
FLASH:
要制作flash区的用户程序,首先选择IROM1更改start的地址为0x810000(不重叠于bootloader区占用地址0x800000+size)

同时在程序初始化前加上跳转指令,跳转到FLASH指定的地址(0x08010000)
接下来继续编写需要存储在FLASH的用户程序。

SRAM


需要用到keil MDK自带的执行文件将程序编译构建生成的.axf文件转化为.bin文件
首先在keil MDK软件路径下找到fromelf.exe执行程序,复制其地址,点击keil魔术棒图标

选择User下,勾选Run #1,在横线内填入 刚才复制fromelf.exe执行程序的本地路径,在结尾加上
--bin -o 要工程生成的.bin文件路径 工程编译构建生成的.axf路径
完整为:
fromelf.exe执行程序的本地路径 --bin -o 要工程生成的.bin文件路径 工程编译构建生成的.axf路径
例如我的路径为D:\keil_5.39\ARM\ARMCC\bin\fromelf.exe,工程文件名为keil_project则完整为:
D:\keil_5.39\ARM\ARMCC\bin\fromelf.exe --bin --output .\Objects\keil_project.bin .\Objects\keil_project.axf
勾选Run #1,填入脚本,目的是编译构建结束时将.axf文件转化为.bin文件

IAP升级(STM32)的更多相关文章
- STM32 Bootloader基于ymodem传输协议串口IAP升级详解
硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...
- STM32 IAP 升级官方资料汇总
整理了一下SMT32标准外设库进行IAP升级的官方demo: 标准库版本 STM32F10xxx in-application programming using the USART (AN2557) ...
- STM32IAP升级-----编写IAP升级遇到的问题总结
IAP的源代码等资料我上传了,压缩包内有12个文件.,http://download.csdn.net/detail/f907279313/7524849(要积分的辛苦收集的你们就给点积分吧) 还有还 ...
- CH579(Cortex-M0)网络IAP升级介绍及问题解答--(持续更新) 网络升级
CH579网络IAP升级的源码可以从码云(Gitee)上git clone下来. 码云地址:https://gitee.com/maji19971221/wch-ch57x 以下是一个朋友问的几个常见 ...
- STM32 IAP升级
STM32 IAP在线升级,用Jlink设置读保护后前5K字节是默认加了写保护的,导致IAP升级时擦除和写入FLASH不成功,可以做两个boot,前5k为第一个boot程序,上电时负责跳转到APP还是 ...
- STM32 IAP 升级功能
IAP In Application Programming 可通过USB,CAN,UART,I2C,SPI等接口实现 IAP流程 Bootloader程序:接收升级程序,更新到flash指定地址:跳 ...
- 【转】stm32 IAP升级程序
一.什么是IAP,为什么要IAP IAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经 ...
- 【iCore1S 双核心板_ARM】例程二十:UART_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...
- 【iCore1S 双核心板_ARM】例程十九:SD_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...
- 【iCore4 双核心板_ARM】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32
实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...
随机推荐
- 从源码分析 GMP 调度原理
本身涉及到的 go 代码 都是基于 go 1.23.0 版本 传统 OS 线程 线程是 CPU 的最小调度单位,CPU 通过不断切换线程来实现多任务的并发.这会引发一些问题(对于用户角度): 线程的创 ...
- NET任务调度框架Hangfire使用指南
Hangfire 是一个开源的 .NET 任务调度框架,它允许开发人员轻松地将长时间运行的任务.定时任务和其他后台处理从主线程中分离出来,以提高应用程序的响应速度和性能 1. 安装 Hangfire ...
- 我们为什么选择Vue.js而不是React(转载)
这篇非常好,可以当做 why React sucks 看 ;D 其实 vue 也不如 molecule 最近,Qwintry开发团队把很多项目都迁移至Vue.js,包括所有遗留的项目和新开始的项目: ...
- Shiro-BasicHttpAuthenticationFilter 鉴权过滤器的使用方式
它的作用是用来根据路径匹配结果,调用相应过滤器 onPreHandle 这里是正在的执行逻辑,之前的都是判断,它返回了两个方法: isAccessAllowed() onAccessDenied() ...
- 【Vue】Vue项目创建的两种方式
目录 0.提前准备 (2)webpack (3)vue全局脚手架 查看已安装版本 (4)CNPM 1.创建Vue项目的两种方式 (1)Vue2.x项目 (2)创建Vue3.x项目 (1)使用vue c ...
- K8S deployment 重启的三种方法
一般重启deployment,常规操作是删掉对应的pod, 但如果有多个副本集的话,一个个删很麻烦.除了删除pod,还可以: 方案一: 加上环境变量kubectl patch deploy <d ...
- JSchException: Algorithm negotiation fail问题解决之路
最近一个需求用到了SFTP上传功能,同事之前已经封装好了SFTP工具类,用的是JSch,本着不要重复造轮子的想法,就直接拿来用了.交代下环境,JDK为1.7,JSch版本为0.1.51.自测通过.测试 ...
- debian/ubuntu系统vi无法删除字符的解决办法
之前在 Linux 下操作,一直使用的是 Centos 系统,使用 vi 编辑命令一直很顺畅. 最近,入手了一台 debian 操作系统的 vps.在操作 vi 命令时,发现当输入 i 要进行文件编辑 ...
- UML之类与类图
在所有项目中,类都是最常见的UML模型元素(当然,不可否认,很多项目还没画出类图就直接进入编码实现的阶段了).类是UML模型与具体实现代码之间的桥梁,随着对UML建模的深入了解,我们也会发现,类(确切 ...
- vue3-openlayers基础知识简介
vue3-openlayers基础知识简介 OpenLayers 3 Primer openlayers6:入门基础(一) openlayers 入门教程 一.基础概念介绍 地图(Map) OpenL ...