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

这篇具有很好参考价值的文章主要介绍了使用JFLASH实现文件程序自动化合并及下载功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

由于之前有看到文章说 JFLASH 软件可以使用命令行操作,就做了一定了解,且里面本身就有merge合并功能,搭配bat处理可以实现一键式合并/下载,一下子就提高了工作效率。
使用JFLASH实现文件程序自动化合并及下载功能,嵌入式开发笔记,自动化,bin合并,自动下载,JFLASH

1.文件自动合并

以各类字体库文件为例,创建bat批处理将其打包为一个bin文件,如图:
使用JFLASH实现文件程序自动化合并及下载功能,嵌入式开发笔记,自动化,bin合并,自动下载,JFLASH

  • 创建的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文件:
使用JFLASH实现文件程序自动化合并及下载功能,嵌入式开发笔记,自动化,bin合并,自动下载,JFLASH

  • 创建的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
使用JFLASH实现文件程序自动化合并及下载功能,嵌入式开发笔记,自动化,bin合并,自动下载,JFLASH

  • 创建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连接上)。
使用JFLASH实现文件程序自动化合并及下载功能,嵌入式开发笔记,自动化,bin合并,自动下载,JFLASH文章来源地址https://www.toymoban.com/news/detail-811951.html

  • 创建的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

到了这里,关于使用JFLASH实现文件程序自动化合并及下载功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Selenium模块编写自动化爬虫程序

    使用Selenium模块编写自动化爬虫程序可以实现更复杂的爬取操作,模拟浏览器的行为。以下是关于使用Selenium模块编写自动化爬虫程序的总结: 模拟浏览器行为:Selenium模块可以模拟浏览器的行为,如点击按钮、填写表单、滚动页面等。这使得爬虫可以处理需要交互操作或动态

    2024年02月07日
    浏览(30)
  • [Python自动化]使用Python Pexpect模块实现自动化交互脚本使用心得

    参考文档:https://pexpect.readthedocs.io/en/stable/ 在最近的工作中,需要使用DockerFile构建镜像。在构建镜像的过程中,有一些执行的命令是需要交互的。例如安装 tzdata (apt install tzdata),不过在使用apt安装时,可以直接使用 DEBIAN_FRONTEND=noninteractive 前缀来取消交互(至于是禁止交互还

    2023年04月25日
    浏览(37)
  • 【办公自动化】使用Python批量处理Excel文件并转为csv文件

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 前言 一、Python处理Excel 二、批量处理Excel文件并转为csv文件 三、往期推荐          

    2024年02月10日
    浏览(34)
  • 使用app自动化技术实现自动打卡

    首先,让我们简单了解一下什么是app自动化脚本。在本质上,自动化脚本是一种程序,它可以执行一系列步骤来完成一项任务,而无需人为干预。在app自动化的上下文中,这些任务可能包括数据收集、输入、测试和其他重复性的任务。 以下是一些关于编写app自动化脚本的常见

    2024年02月06日
    浏览(41)
  • 【接口测试】微信小程序接口自动化的实现方案

    前几天看到有人问微信小程序怎么进行接口自动化,所以想把自己如何进行微信小程序接口自动化的方法分享下。 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html这是微信小程序的登陆流程,小程序登陆需要在小程序内部调用 wx.login() 的方法拿到 code,然后去请

    2024年02月09日
    浏览(33)
  • 【Python操作IPYNB文件】——手把手教你实现自动化

    【Python操作IPYNB文件】——手把手教你实现自动化 对于经常使用Jupyter Notebook的人来说,手动进行一些重复性工作是很繁琐的,比如将多个ipynb文件合并为一个,或者将一个大的ipynb文件拆分成多个小文件。这时候,我们就需要用到Python来自动化处理这些问题。 1. 安装依赖库

    2024年02月05日
    浏览(43)
  • 使用 appium 进行微信小程序的自动化测试

    目录 前言: 微信小程序结构 自动化用例的调整 示例代码 后记 微信小程序是一种流行的移动应用程序,它在移动设备上提供了丰富的功能和用户体验。为了确保微信小程序的质量和稳定性,自动化测试是必不可少的一环。Appium是一个强大的自动化测试工具,可以用于测试微

    2024年02月17日
    浏览(49)
  • 如何使用 Selenium 实现自动化操作?

    本篇咱们来谈谈Selenium自动化脚本是如何工作的,以及如何实现一个简单的自动化示例; 一、关于Selenium 1.1、为什么选择它作为web自动化的测试工具? 选择Selenium作为web自动化测试工具的原因(面试也许会问): 1. 开源免费; 2. 支持多浏览器,如Chrome、 Firefox、IE浏览器等;

    2024年02月02日
    浏览(32)
  • Requestium - 将Requests和Selenium合并在一起的自动化测试工具

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板) Requests 是 Python 的第三方库,主要用于发送 http 请求,常用于接口自动化测试等。 Selenium 是一个用于 Web 应用程序的自动化测试工具。Selenium 测试直接运行在浏览器中,就像真正的用

    2024年01月23日
    浏览(30)
  • 使用Python实现产品图片自动化处理

    大家好,在当今的数字化时代,产品图片在电子商务和市场营销中发挥着至关重要的作用。然而,为在线平台准备产品图片可能是一项耗时的任务,本文将分享一个Python脚本,用于自动化产品图片的图像处理工作流程。通过使用 Python Imaging Library(PIL) 和 rembg 库,可以实现删

    2024年02月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包