使用JFLASH实现文件程序自动化合并及下载功能

主要总结下使用 SEGGER 工具集的 JFLASH 软件实现hex/bin文件合并以及程序的自动下载使用方法。
在这里插入图片描述
起因是最近使用到LVGL字库文件的制作,每次都要将分散的bin文件按既定分配的偏移作合并处理,刚开始使用的是二进制文件合并工具,文件少的时候还行,但是文件一多,一个个的添加就很麻烦,虽说它配套工具集里面有可以使用bat处理合并,但是文档资料太少,不知如何使用,就放弃了未作深究。

由于之前有看到文章说 JFLASH 软件可以使用命令行操作,就做了一定了解,且里面本身就有merge合并功能,搭配bat处理可以实现一键式合并/下载,一下子就提高了工作效率。
在这里插入图片描述

1.文件自动合并

以各类字体库文件为例,创建bat批处理将其打包为一个bin文件,如图:
在这里插入图片描述

  • 创建的lv_font_merge.bat文件内容:
::1.首先建立一个jflash工程
::2.编辑bat脚本内容:: 先删除已有的合并文件
del lv_fontlib.bin 
:: 设置创建的JFLASH工程的路径(创建时,芯片选项随便定义一个就行,无所谓的)
set jflash_project="C:\Users\DELL\Desktop\bin_files\merge.jflash"
:: 设置JFLASH.exe程序路径
set path="C:\Program Files\SEGGER\JLink\JFlash.exe":: openprj 打开一个JLFLASH工程
:: open 打开一个文件
:: merge打开要合并的文件
:: saveas保存合并文件
:: ^是续行符;注意 openprj/open/merge/saveas 命令后面紧接工程/文件名,没有空格的!!!,但是每条命令之间是由空格的。
:: -openprj<jflash_project>
:: -open<file>,[flash_saddr],[]是可选项
:: -merge<file>,[flash_saddr],[]是可选项
:: -saveas<file>,[flash_saddr-flash_eaddr] ,[]是可选项%path% -openprj%jflash_project% ^
-openlv_font_Alibaba_PuHuiTi_B12.bin,0x100000 ^
-mergelv_font_Alibaba_PuHuiTi_B15.bin,0x14B000 ^
-mergelv_font_Alibaba_PuHuiTi_B18.bin,0x19B000 ^
-mergelv_font_Alibaba_PuHuiTi_B22.bin,0x1F0000 ^
-mergelv_font_Alibaba_PuHuiTi_M15.bin,0x24A000 ^
-mergelv_font_Alibaba_PuHuiTi_M18.bin,0x29A000 ^
-mergelv_font_Alibaba_PuHuiTi_M22.bin,0x2EF000 ^
-mergelv_font_Alibaba_PuHuiTi_M40.bin,0x349000 ^
-mergelv_font_Alibaba_PuHuiTi_R12.bin,0x3D5000 ^
-mergelv_font_Alibaba_PuHuiTi_R15.bin,0x420000 ^
-saveaslv_fontlib.bin^ 
-exit 
::退出
exit

假如我有两个由批处理文件执行生成的bin文件需要再进一步执行合并,如下是要生成另一个bin文件:
在这里插入图片描述

  • 创建的pixel_font_merge.bat文件内容:
del pixel_fontlib.bin 
set jflash_project="C:\Users\DELL\Desktop\bin_files\merge.jflash"
set path="C:\Program Files\SEGGER\JLink\JFlash.exe"%path% -openprj%jflash_project% ^
-openpixel_photo_bmp.bin,0x00000000 ^
-mergepixel_font_alipht_R16.bin,0x00000400 ^
-mergepixel_font_alipht_M18.bin,0x00005400 ^
-mergepixel_font_alipht_M24.bin,0x0000A400 ^
-mergepixel_font_alipht_B20.bin,0x00012400 ^
-saveaspixel_fontlib.bin ^
-exit
exit

然后我需要将两个上面的介绍的两个bin文件(lv_fontlib && pixel_fontlib)再合并一个最终的bin文件fontlib.bin
在这里插入图片描述

  • 创建font_merge.bat文件,内容如下:
del fontlib.bin set jflash_project="C:\Users\DELL\Desktop\bin_files\merge.jflash"
set path="C:\Program Files\SEGGER\JLink\JFlash.exe"
set lvgl_fontlib="C:\Users\DELL\Desktop\bin_files\v1.5\lvgl_font_bin\lv_fontlib.bin"
set pixel_fontlib="C:\Users\DELL\Desktop\bin_files\v1.5\pixel_font_bin\pixel_fontlib.bin"%path% -openprj%jflash_project% ^
-open%pixel_fontlib%,0x000000 ^
-merge%lvgl_fontlib%,0x100000 ^
-saveasfontlib.bin ^
-exit
exit

但是每一个bin文件的创建都要去手动一下,还是有点麻烦,能否再建立一个bat文件去执行上面三个bat文件呢,这样就执行一个bat文件完成最终的合并任务,下面就是创建现实一键合并所有的onekey_merge.bat内容:

::cmd /k "cd /d 路径&&命令"del font_lib.bin
echo "执行点阵字库合并命令"
start cmd /k "cd /d C:\Users\DELL\Desktop\bin_files\v1.5\pixel_font_bin&&pixel_font_merge.bat"
echo "LCD字库合并命令"
:: 由于文件的创建过程中JFLASH软件打开需要一定时间,为保证创建成功,添加延时1sec
timeout /t 1 >nul
start cmd /k "cd /d C:\Users\DELL\Desktop\bin_files\v1.5\lvgl_font_bin&&lv_font_merge.bat"
timeout /t 1 >nul
echo "执行点阵字库与LCD字库合并命令"
start cmd /k "cd /d C:\Users\DELL\Desktop\bin_files\v1.5&&font_merge.bat"
:: exit

这样就可每次执行onekey_merge.bat文件就可以轻松搞定所有步骤,省时省力。

2. 文件合并及自动下载

例如下面案例实现bootloader+app合并,然后自动下载(要先保证JLINK硬件已经跟目标MCU连接上)。
在这里插入图片描述

  • 创建的auto_download.bat文件内容
::首先建立一个jflash工程(下载就需要创建的JFLASH工程选择目标MCU型号)
::bat脚本内容set jflash_project="C:\Users\DELL\Desktop\firmware_lbcu30\stm32f103.jflash"
set path="C:\Program Files\SEGGER\JLink\JFlash.exe"
del LBCU30.bin
::auto :即自动实现connect/erase/progama/varify动作
%path% -openprj%jflash_project% -openSTM32F103VC_BOOT.hex,0x08000000 -mergebal_1260.bin,0x08004000 -saveasLBCU30.bin -openLBCU30.bin,0x08000000 -auto -exit
exit

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

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

相关文章

AI短视频制作:创意与技术的完美结合

文章目录 一、充分了解AI技术的应用范围和优势二、创意策划&#xff0c;确定作品主题和风格三、素材收集&#xff0c;丰富作品内容四、特效制作&#xff0c;提升作品视觉效果五、配音处理&#xff0c;增强作品表现力六、作品发布&#xff0c;扩大作品传播范围《AI短视频制作一本…

Mybatis集成MySQL使用游标查询处理大批量数据

背景 基于数据的时间范围查询&#xff0c;给符合条件的用户推送积分即将到期的提醒。 初期用户量小使用最普通简单的分页查询扫描数据处理数据没问题。随着用户量的上升表数据已经上千万&#xff0c;每天扫描处理的数量也超百万&#xff0c;limit分页出现了慢sql&#xff0c;…

MacBookPro怎么数据恢复? mac电脑数据恢复?

使用电脑的用户都知道&#xff0c;被删除的文件一般都会经过回收站&#xff0c;想要恢复它直接点击“还原”就可以恢复到原始位置。mac电脑同理也是这样&#xff0c;但是“回收站”在mac电脑显示为“废纸篓”。 如果电脑回收站&#xff0c;或者是废纸篓里面的数据被清空了&…

MySQL第四次作业

目录 1、实验需求一&#xff1a; 2、实验步骤一&#xff1a; &#xff08;1&#xff09;用SQL语句创建学生表student&#xff0c;定义主键&#xff0c;姓名不能重名&#xff0c;性别只能输入男或女&#xff0c;所在系的默认值是 “计算机”。 &#xff08;2&#xff09;修改s…

第二次作业+第三次作业

第二次作业第三次作业 第二次作业 题目&#xff1a; 网站需求&#xff1a; ​ 1.基于域名[www.openlab.com](http://www.openlab.com)可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于[ww…

中仕教育:考上选调生之后能不去吗?选调生和公务员哪个比较好?

选调生&#xff0c;是指经过选拔、培训、考核等一系列程序&#xff0c;选拔出的人才。选调生通常需要在基层锻炼一段时间&#xff0c;然后根据工作表现和能力得到提拔。 考上选调生之后能否不去&#xff0c;有以下两种情况。 1.如果通过选调笔试&#xff0c;但是并未参加后续…

MySQL进阶篇:索引(概述,结构,分类,语法,SQL性能分析,索引使用,设计原则)

目录 1.索引概述2.索引结构1.B树&#xff08;多路平衡查找树&#xff09;2.B树3.Hash1.特点2.存储引擎支持 4.选择B树作为InnoDB存储引擎索引结构的原因 3.索引分类1.聚集索引选取规则2.回表查询 4.索引语法1.创建索引2.查看索引3.删除索引 5.SQL性能分析1.SQL执行频率2.慢查询…

项目实战————苍穹外卖(DAY11)

苍穹外卖-day11 课程内容 Apache ECharts 营业额统计 用户统计 订单统计 销量排名Top10 功能实现&#xff1a;数据统计 数据统计效果图&#xff1a; 1. Apache ECharts 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#x…

非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (I - 原理与算法)

Title: 非线性最小二乘问题的数值方法 —— 狗腿法 Powell’s Dog Leg Method (I - 原理与算法) 文章目录 I. 前言II. 线搜索类型和信赖域类型1. 线搜索类型 —— 最速下降法2. 信赖域类型3. 柯西点 III. 狗腿法的原理1. 狗腿法的构建2. 狗腿法的优化说明3. 狗腿法的插值权重 I…

Elasticsearch Windows部署-ELK技术栈

1、下载Elasticsearch、kibana、logstash 本文不介绍ELK相关原理知识&#xff0c;只记录部署操作过程 下载地址Past Releases of Elastic Stack Software | Elastic 选择同一版本&#xff0c;这里选择是当前最新版本8.11.3 解压放在同目录下&#xff0c;方便后续操作与使用 …

【AI】ChatGPT和文心一言那个更好用

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读文章&#xff01; 此篇是【话题达人】序列文章&#xff0c;这一次的话题是《自然语言处理的发展》 文章将以博主的角度进行讲述&#xff0c;理解和水平有限&#xff0c;不足之处&#xff0c;望指正。 目录 背景自我介绍面试题…

能耗管理系统在宜昌综合保税区及海关监管大楼的应用——安科瑞赵嘉敏

摘要&#xff1a;近年来工厂、企业等项目的不断建设,同时,IT集成化技术、网络技术、现场总线技术的不断发展也不断推动了智能化系统的快速发展。在企业内,水、电、气是日常运行不可缺少的保障&#xff0c;然而对于管理人员来说,每个月手工抄取各个用户及设备的能耗读数却是非常…