STM32合并烧录IAP+APP

STM32合并烧录IAP+APP 通过查找相关资料 

有以下几种合并方法

第一种直接将二进制文件用记事本合并

而要合并的就是就将IAP最后的一行删除,然后将APP程序追加在后面。

(修改前)

把APP的.hex 全部内容拷贝复制到 刚才删掉结束语句的 IAP的.hex后面

(修改后)

第二种使用二进制合并工具 

二、合并.bin文件
  1.将IAP和APP程序分别找出。打开 二进制文件合并工具。
  2.先将IAP产生的.bin文件拖入界面中,此时源文件后面应显示此.bin文件的路径,然后点击添加,该文件被添加到上面的列表中。
  3.再将APP产生的.bin文件拖入界面中,看到路径正确之后,更改偏移量(视情况而定,一般为0x00004000),在“插入”前面打钩,然后点击确定,再点击添加。此时上方的列表中应有两个文件的索引,且偏移地址正确。
  4.选取一个目标文件生成的路径,并为目标文件设置名字。点击合并,即可将两个.bin文件合并。

三、烧录合并后的.bin文件(使用J-Link SWD模式,BOOT0 = BOOT1 = 0)
  1.无法使用FlyMcu.exe烧录.bin文件,可能因为Keil转换后的.bin文件格式与FlyMcu.exe所支持的不同。
  2.使用 SEGGER J-Flash.exe 下载。
  3.设置好串口,波特率设置为115200(不超出MCU规定的范围即可)
  4.点击 file—> Open data file,将合并后的.bin文件添加进来。此时会弹出设置开始地址的对话框,填入8000000。点击OK。
  5.点击Target—> Manual Programming—>Erase Chip 将芯片擦除。
  6.点击Target—> Production Programming 进行下载。
  7.完成。
附:二进制文件合并工具下载地址:链接: https://pan.baidu.com/s/1D7D-cZ2wj_MU4mJ2hL9PWQ 密码: qtx4

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/hb69222/article/details/80538749

第三种  使用 J-FLASH 进行合并

合并操作步骤

在这里插入图片描述

图2

在这里插入图片描述

图3

在这里插入图片描述

打开IAP程序BOOTLoader文件

在这里插入图片描述

添加BOOTLoader

在这里插入图片描述

下一步添加APP程序

在这里插入图片描述

图7

在这里插入图片描述

保存合并 工程文件

在这里插入图片描述

图10

在这里插入图片描述

 

IAP+APP拼接方法
用于产品量产,烧录的程序文件,一般是hex,或bin文件。不管是hex文件,还是bin文件,我们都需要通过烧录软件 + 烧录(编程)工具实现。烧录软件针对不同MCU,一般有不同的烧录软件。

针对STM32,一般建议使用官方提供的STVP、ST-LINK Utility和STM32CubeProg 这三种编程软件。

拼接说明
1、拼接IAP+APP两段程序,一般简单方法就是:将两个程序分别烧录进去,再统一读取出来,保存成一个量产文件。
2、IAP 和 APP程序的起始地址是不同的,因此烧录进芯片,是存储在两片区域的。烧录程序的时候,特别是烧录bin文件(没有地址)时,要注意设置好起始地址。hex文件有地址地址,不用自己设置地址。读取“合并”程序的时候,同样要注意起始地址,还有读取大小,保证读取全部程序。

比如通过ST-LINK Utility读取STM32程序:

通过STM32CubeProg读取STM32程序:

再次提示:
烧录bin文件时,设置好起始地址;
读取时,设置起始地址,读取大小;
保存可选择hex,还是bin文件;

bin、hex文件互相转换
在某些情况下需要使用特定格式的文件,比如我们远程升级,要求通过bin文件实现。通过上面的介绍,其实你会发现,使用编程软件ST-LINK Utility,或STM32CubeProg,就能直接另存为hex,或bin文件格式。

ST-LINK Utility另存为:

STM32CubeProg另存为:

参考MDK-ARM如何生产Bin文件
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_45905650/article/details/108010156

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win32汇编ListView控件学习

此控件比较复杂;和基础win32控件不同;需要先初始化Windows公共控件库, invoke InitCommonControls 之后才可使用; lvdemo.asm, .386.model flat, stdcalloption casemap :none ; case sensitiveinclude window…

【OCR识别】使用OCR技术还原加密字体文字

文章目录 1. 写在前面2. 页面分析3. 字符知识4. 加密分析 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋…

减少页面加载时间:提升用户体验的关键

✨✨ 祝屏幕前的您天天开心,每天都有好运相伴。我们一起加油!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一、为什么页面加载时间重要? 二、如何减少页面加载时间? …

qiankun微前端使用

微前端是什么? 微前端就是页面的某个功能可以独立为一个项目进行开发、部署。比如:自己的项目使用iframs引入百度 qiankun qiankun是一个基于single-spa的微前端实现库,qiankun 对于用户而言只是一个类似 jQuery 的库,你需要调…

Mysql 数据类型的转换之 cast()

语法 cast( value as type) value 要进行数据转换的值(可以为任何类型)。type 要转换为的数据类型。type 的常见的类型可以为 : decimal十进制浮点数。可以使用可选的 M 和 D 参数指定最大位数 (M) 和小数点后的位数 (D)float浮点数dou…

信息安全应急响应方法详解

预防措施 定期进行安全漏洞扫描和修复强化身份验证和访问控制加强网络安全防护和监控建立灾难恢复和应急预案 应急响应步骤 识别和确认安全事件 监控系统日志和警报,快速发现异常行为利用安全信息和事件管理系统(SIEM)进行实时监控 隔离受…

华润置地品牌虚拟代言人IP“吉吉”,开启地产数字化营销新场景

在数字化营销时代,房地产品牌通过虚拟人技术,可以有效链接购房者,占领客户心智,优化购房体验,塑造年轻化、数字化的品牌形象。 华润置地积极拥抱数字变革,通过广州虚拟动力「现场虚拟主持技术服务」与「虚…

leetcode-数字转换为十六进制

405. 数字转换为十六进制数 题解: 首先,我们需要创建一个映射表,将十进制数0-15映射到十六进制数的字符0-f。然后,我们需要处理负数的情况。对于负数,我们首先将其转换为补码形式,然后再进行转换。接下来…

【Unity】使用Unity实现双屏显示

引言 在使用Unity的时候,有时候会需要使用双屏显示 简单来说就是需要在两个显示器中显示游戏画面 双屏显示注意点: ①双屏显示需要电脑有两个显示 ②双屏显示只能用于PC端 ③不仅仅可以双屏,Unity最大支持8屏显示 1.相机设置 ①我们打开Un…

Untiy webgl iis服务器加载ab包报404.3,需要为AB包添加MIMI映射

首选确定一下文件在不在 这里是缺少对于AB包文件类型的映射,因为AB包没有后缀名,我们为服务器添加通用的映射 1 开始菜单搜索iis管理器,先选中我们的服务器,然后双击进入MIME类型 2 右侧点击添加按钮 3 添加如下内容 文件扩展名为. 类型为…

JAVA学习-控制执行流程.函数

一、Java中的控制执行流程的主要方式有以下几种: 1. 条件语句(if-else语句、switch语句): 根据条件选择不同的执行路径。 2. 循环语句(for循环、while循环、do-while循环): 重复执行某段代码…

性能测试-并发测试心得

一些关键名词 吞吐量 指的是在一定时间内系统处理请求或传输数据的能力,具体到性能测试中的话,就是指单位时间内系统处理并完成的请求数量或者是系统传输的数据量。 例如,吞吐量可以表示为系统每秒处理HTTP请求次数,或者是系统…

服务器git安装python包失败,如何手动下载github项目包并安装到虚拟环境中(简单易懂)

背景: 想要复现一个项目,建立好虚拟环境后,准备安装项目需要的包,故输入命令pip install -r requirements.txt requirements.txt如下图 其他包我都安装成功了,只有最后一个包失败了,是需要服务器git链接…

【学习心得】解决无限debugger的常用方法

一、什么是无限debugger 有些网站为了防止爬虫或其他恶意行为,会故意设置无限debugger作为一种简单的反爬机制,它会在开发者工具打开的情况下不断暂停执行。这对于想要分析其他代码逻辑、排查问题或进行正常开发调试工作的开发者来说极为不便。 二、解决…

Sora学习笔记

Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展,AI视频模型已成为科技领域的新热点。而在这个浪潮中,OpenAI推出的首个AI视频模型Sora,以其卓越的性能和前瞻性的技术,引领着AI视频领域的创新发展。让我们将一起探讨…

ios 使用window.location.href 不能跳转微信短链处理过程以及解决方法

需求背景: 由h5提供页面,通过后台请求微信api生成对应的schemal短链,该h5页面嵌入到原生的ios以及安卓app上,当用户点击后通过短连接跳转到其他小程序中 以下为生成微信scheme代码示例,生成后短链为:weixi…

linux常见signal信号总结

文章目录 SIGSEGVSIGALRMSIGINTSIGCHLD SIGSEGV 在POSIX兼容的平台上,SIGSEGV是当一个进程执行了一个无效的内存引用,或发生段错误时发送给它的信号 SIGALRM 已到通过调用alarm函数注册的时间 SIGINT 输入cltrlc SIGCHLD 子进程终止

【分享】在 Python 编程中提高效率的技巧

在 Python 编程中,有许多技巧可以帮助提高效率,从代码优化到工作流程改进。 以下是一些可以分享的技巧: 1、使用列表推导式和生成器表达式:列表推导式和生成器表达式是 Python 中的一种简洁而高效的方法,用于快速创建…

Azure[Sky] Dynamic Skybox

Azure[Sky] Dynamic Skybox是一个完整而稳健的天空系统,它可将你的项目提升大到其他层次。 Azure[Sky] 不仅适合使用现实图片的项目,事实上,该系统用在风格化图片的项目也很不粗,甚至效果更好。使用 Azure,每种风格都能实现最佳效果。 性能: 在开发此资源的过程中,性能是…

【Android】属性动画

在属性动画出现之前,Android 系统提供的动画只有帧动画和 View 动画。View 动画我们都了解,它提供了 AlphaAnimation、RotateAnimation、TranslateAnimation、ScaleAnimation 这4种动画方式,并提供了 AnimationSet 动画集合来混合使用多种动画…