keil MDK自动生成带版本bin文件

       作为嵌入式单片机开发,在Keil MDK(Microcontroller Development Kit)中开发完编译完后,经常需要手动进行版本号添加用于发版,非常麻烦,如果是对外发行的话,更容易搞错,特此码哥提供一种自动生成带版本号的bin文件方法

        自动生成版本号bat脚本

      通过批处理脚本(batch script)可用于自动化完成带版本号可执行文件(EXE)和Hex文件生成,如下为脚本实现的过程:

  1. 设置变量
    • EXE_NAME:可执行文件的名称(无扩展名)。
    • EXE_PATH:可执行文件(通常是编译后的.axf文件)的路径。
    • OUTPUT_PATH:输出Hex和Bin文件的路径。
    • VERSION_FILE_PATH:包含软件版本信息的源文件路径。
    • SOFTWARE_VERSION:在源文件中搜索软件版本时使用的标识符。
    • FROMELF_PATH:fromelf工具(用于将.axf文件转换为.bin文件)的路径。
  2. 获取软件版本
    • 使用findstr命令在VERSION_FILE_PATH指定的文件中搜索SOFTWARE_VERSION
    • 提取找到的行的第三个标记(默认为空格分隔),并假设这是版本信息。然后,通过删除第一个和最后一个字符(可能是引号)来清理版本字符串。
  3. 定制文件名
    • 使用EXE_NAMESW_Ver来构建Hex和Bin文件的输出文件名。
  4. 转换并定制Bin文件名
    • 使用fromelf工具将.axf文件转换为.bin文件,并指定输出路径和文件名。
  5. 显示并复制Hex文件
    • 这里有一个潜在的问题:脚本试图复制一个Hex文件,但之前并没有生成或转换这个Hex文件。如果%EXE_PATH%\%EXE_NAME%.hex确实存在,那么复制操作会成功;否则,你会得到一个错误消息。
  6. 退出
    • 脚本执行完毕后退出。
  7. 具体代码如下,码哥贴一下

一般版本号是在某一个文件中,像上面的目录码哥是将软件版本号放在了:..\User\src\io_link_appl.c中;

       

配置演示

          配置脚本自动生成

options->user

after build后面加载bat脚本,就会在编制完自动运行bat脚本生成bin文件

  

             

总结

        通过以上步骤,您可以在Keil MDK中自动生成带版本号的bin文件。这有助于在软件开发过程中跟踪和管理不同版本的固件文件,码哥提一下这个bat脚本其实是可以根据自己需求进行修改的,上面只是作为一个开发思路,比如如果版本号可以按照当前日期进行输出呢,大家可以思考一下如何修改,大家如果这bat感兴趣,码哥也提供了下载链接,可扫码回复“芯源义码bat”下载参考

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

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

相关文章

SpringCloud Alibaba Sentinel 流量控制之流控模式实践总结

官网文档:https://sentinelguard.io/zh-cn/docs/flow-control.html wiki地址:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6 本文版本:spring-cloud-starter-alibaba:2.2.0.RELEASE 如下图所…

企业如何选择合适的CRM工具?除Salesforce之外的10大主流选择

对比salesforce,其他10款优秀CRM:纷享销客CRM、Zoho CRM、腾讯企点、销售易、企业微信 (WeCom)、Odoo CR、OroCRM、金蝶、用友CRM、EspoCRM 虽然Salesforce以其全面的功能和强大的市场占有率在海外收获了许多客户,但Salesforce在国内市场的接…

多环境镜像晋级/复用最佳实践

作者:木烟 本文主要介绍镜像构建部署场景,多环境镜像晋级/复用最佳实践,保证“所发即所测”。 场景介绍 应用研发场景有效地管理镜像产物是确保软件快速、安全、可靠部署的关键环节。通常一个应用研发需要经过测试、预发、生产各个阶段&am…

Windows下MySQL数据库定期备份SQL文件与删除历史备份文件.bat脚本

目录 一、功能需求 二、解决方案 (1)新建文件夹及批处理文件 (2)编写备份脚本 ①完整脚本 ②参数修改 (3)编写定期删除备份脚本 ①根据文件名识别日期进行删除 ② 根据文件的修改日期删除 (4)设置定时器 (5)常见报错与处理 一、功能需求 在Windows系统下…

minSdkVersion、targetSdkVersion、compileSdkVersion三者的作用解析

minSDK和targetSDK,这两者相当于一个区间。你能够用到targetSDK中最新的API和最酷的新功能,但又需要向后(向下)兼容到minSDK,保证这个区间内的设备都能够正常的执行你的APP。换句话说,想使用Android刚刚推出的新特性,但…

JAVA 注解搜索工具类与注解原理讲解(获取方法和类上所有的某个注解,父类继承的注解也支持获取)

文章目录 JAVA 注解搜索工具类与注解原理讲解(获取方法和类上所有的某个注解,父类继承的注解也支持获取)代码测试方法上加注解,类上不加类上加注解、方法上加注解 注解原理性能测试 JAVA 注解搜索工具类与注解原理讲解&#xff08…

汉化版PSAI全面测评,探索国产AI绘画软件的创新力量

引言 随着AI技术的飞速发展,图像处理和绘画领域迎来了新的变革。作为一名AIGC测评博主,今天我们测评的是一款国产AI绘画软件——StartAI,一句话总结:它不仅在技术上毫不逊色于国际大牌,更在用户体验和本地化服务上做到…

AI 克隆声音,只需 3 分钟(附最全教程)

作者:寒斜 继生成式文本大模型 Chatgpt,生成式图片 Stablediffusion 之后生成式语音 Text To Speech 在开源社区也出现了一匹黑马,就是 GPT-Sovits [ 1] 。 之所以说他是黑马,让人觉得惊艳,是因为在语音效果克隆上做…

数据分析必备:一步步教你如何用matplotlib做数据可视化(6)

1、Matplotlib 网格 axes对象的grid()函数将图中网格的可见性设置为on或off。还可以显示网格的主要/次要(或两者)刻度。另外,可以在grid()函数中设置color,linestyle和linewidth属性。 参考以下示例代码 import matplotlib.pyplot as plt import numpy…

14K屏FPGA通过MIPI接口点亮

一、屏参数 屏分辨率为13320*5120,MIPI接口8 LANE。 二、驱动接口电路 屏偏置电压5.5V,逻辑供电1.8V。8 LANE MIPI,2 PORT。 三、MIPI DSI规范 DCS (Display Command Set):DCS是一个标准化的命令集,用于命令模式的显…

奇怪的bug

奇怪的bug 合集 1.不可见字符集问题 起因是在自己做小项目的时候,通过lombok的data注解,默认生成实体类的get set方法 但是在某个方法中获取一个属性值的时候显示找不到该属性值的get方法,具体直接贴图 我以为是lombok的配置问题&#xff0c…

ubuntu设置静态ip地址

首先,查看ip地址可以使用: ifconfig 例如,出现如下结果: 然后,需要查看本地的gateway以及dns,可以使用: nmcli device show例如: 接下来说明一下如何设置静态ip:

揭秘后勤报修管理系统:目的明确,功能设计模块助您轻松管理

在数字化、信息化飞速发展的今天,企业后勤报修也迎来了前所未有的变革。传统的报修方式,如电话报修、纸质报修单等,已逐渐无法满足现代企事业单位对高效、便捷、精准报修服务的需求。因此,后勤报修管理系统应运而生,后…

鸣人的影分身(DP)

在火影忍者的世界里,令敌人捉摸不透是非常关键的。 我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。 针对不同的作战情况&a…

PHP转Go系列 | 变量常量的使用姿势

大家好&#xff0c;我是码农先森。 变量 在 PHP 语言中&#xff0c;初始化变量虽然只有一行&#xff0c;其实包含了两步&#xff0c;一是声明变量&#xff0c;二是赋值给变量&#xff0c;同一个变量可以任意再赋值任何类型的数据。 <?php// 初始化变量 $name "man…

Z世代职场价值观的重塑:从“班味”心态到个人成长的追求

近日&#xff0c;社交平台Soul APP联合上海市精神卫生中心&#xff08;俗称“宛平南路600号”&#xff09;发布《2024年Z世代职场心理健康报告》&#xff08;下称“报告”&#xff09;&#xff0c;发现今天的年轻人正以其独特的价值观和行为模式&#xff0c;重新定义成功与成就…

118.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-邮件管理的界面与功能设计

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

visual studio error MSB8008:

新项目编译的时候&#xff0c;可能由于编译器的版本不一致导致的问题。 你的电脑上有两个不同版本的VS&#xff0c;或者你的程序拷贝到别人的电脑上去运行&#xff0c;或者你是从别人那里拷贝来的项目&#xff0c;而你们俩用的VS版本不一样&#xff0c;就会在运行的时候出现这…

成都爱尔周进院长提醒毕业生摘镜,术式如何挑

高考完迎来一个悠长假期&#xff0c;考后放松的同时&#xff0c;也有不少同学开始“准备”。 为奔赴梦想&#xff0c;为了理想的专业和学校&#xff0c;不少人决定摘镜。 不少专业有视力要求&#xff0c;且不同专业方向的要求各有不同。我们先来看看有视力要求的专业有哪些&am…

数据集制作——语义分割前png、jpg格式标签图转yolo格式.txt文件(附代码)

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…