一种管理KEIL工程输出文件的方法

news2024/11/18 8:18:17

开发语言:python; 针对工程:适配ARM公司的KEIL-V5软件的工程

管理的输出文件类型:BIN文件、HEX文件

脚本使用方法:直接放置到keil的设置项下; 脚本执行位置:程序编译之后

脚本功能:将KEIL工程输出的BIN文件、HEX文件以软件版本号+hash值的方式重新命名后移动到指定文件夹

实现方法(技术摘要):

1、脚本通过正则运算的方式从C源文件中获取到软件版本,若获取不到则自动切换为将脚本传参做为版本号

2、通过第三方库git-Repo获取此KEIL工程最后一次提交的hash值

3、在路径下查找编译后生成的BIN和HEX文件,将上述过程中采集到的信息组合后作为新名字

4、重命名之后将两个文件放入指定文件夹,同时在keil的Build Ouput中打印执行中的信息

5、通过此脚本可以将输出文件名和软件版本号与提交记录关联起来,集中历史版本到同一文件夹,也方便管理和查找

  1. lead_name.exe是已经打包好的可执行文件,lead_name code.rar是源文件压缩包

  2. 需要将exe文件路径放到keil的Options - User - After Build/Rebuild中,例./board/script/lead_name.exe

  3. 脚本执行成功后会自动将生成的bin和hex文件命名为1.0.0.commit hash格式,并移动到./build/fw中

  4. 执行过程中会在keil的Build Ouput中打印信息

注意事项:

  1. hex和bin的默认生成名字必须是rtthread,在Options - Output -Name of Executable中修改hex名字,在Options - User - After Build/Rebuild中修改bin名字

  2. hex的默认路径是./build,bin的默认路径是工程根目录

  3. 版本的名字在脚本执行的后面,例./board/script/lead_name.exe 1.0.3,如果没有输入脚本,自动在board.h中查找1.0.0格式的版本

链接:https://pan.quark.cn/s/d97a3f52fff6
提取码:mxgG

 

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

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

相关文章

C++智能指针(一)——shared_ptr初探

文章目录 1. 普通指针存在的问题2. Class shared_ptr2.1 使用 shared_ptr2.1.1 初始化 shared_ptr2.1.2 reset2.1.3 访问数据2.1.4 use_count() 3. Deleter3.1 定义一个 Deleter3.2 处理数组 1. 普通指针存在的问题 智能指针的引入,是为了解决普通指针在使用过程中…

Android 13.0 SystemUI修改状态栏电池图标样式为横屏显示

1.概述 在13.0的产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发要求电池图标横着显示和手机的样式一样,所以就得重新更换SystemUI状态栏的电池样式了 如图: 2.SystemUI…

区块链金融的开发流程

区块链金融应用的开发流程与一般的软件开发流程有许多相似之处,但它还涉及到智能合约的编写、区块链网络集成和加密货币处理等特定方面的工作。以下是一般区块链金融应用的开发流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件…

如何查自己名下有多少个微信号?

99%的人都不知道微信有这个功能通过微信可以查自己名下绑定了多少个微信账号再也不担心身份证被别人用来绑定微信了姐妹们快去查一下吧! ①打开微信,点击【我】→点击【设置】 ②点击【通用】→ 点击【辅助功能】→ 点击【微信支付】 ③点击【帮助中心】…

MDK自动生成带校验带SVN版本号的升级文件

MDK自动生成带校验带SVN版本号的升级文件 获取SVN版本信息 确保SVN安装了命令行工具,默认安装时不会安装命令行工具 编写一个模板头文件 svn_version.temp.h, 版本号格式为 1_0_0_SVN版本号 #ifndef __SVN_VERSION_H #define __SVN_VERSION_H#define SVN_REVISIO…

性能分析工具的使用(超详细)

数据库服务器的优化步骤 整个流程划分成了观察(Show status)和行动(Action)两个部分。字母 S 的部分代表观察(会使用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行…

Linux下设备树、pinctrl和gpio子系统、LED灯驱动实验

文章目录 设备树常用的of函数pinctrl子系统gpio子系统LED灯驱动实验修改设备树文件编写驱动代码执行结果在LED驱动代码中加入内核定时器 设备树 描述设备树的文件叫做DTS(Device Tree Source),这个DTS文件采用树形结构描述板级设备,也就是开发板上的设备…

NEFU离散数学实验1-排列组合

相关概念 在离散数学中,组合数是一种用于计算从n个不同元素中选取m个元素的方式。以下是一些与组合数相关的概念: 排列:从n个不同元素中选取m个元素进行排列,排列数用P(n, m)表示,计算公式为P(n, m) n! / (n - m)! …

springboot篮球论坛系统springboot034

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

渗透测试怎么入门?(超详细解读)

1. 什么是渗透测试 渗透测试就是模拟真实黑客的攻击手法对目标网站或主机进行全面的安全评估,与黑客攻击不一样的是,渗透测试的目的是尽可能多地发现安全漏洞,而真实黑客攻击只要发现一处入侵点即可以进入目标系统。 一名优秀的渗透测试工程…

ubuntu安装Miniconda并举例使用

更新系统包 sudo apt update sudo apt upgrade官网下载Miniconda,最好是实体机下载后放进虚拟机,方法可以参考Xftp 7连接服务器或者本地虚拟机文章 https://docs.conda.io/en/latest/miniconda.html#linux-installers 进入安装目录执行,右键…

行业追踪,2023-10-11

自动复盘 2023-10-11 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

什么是大数据,大数据简介

大数据的概念通俗的说法 大数据,按照我的理解比较通俗易懂的是在数据量很多很大的情况下数据处理速度需要足够快,用我们以前传统意义上的的技术比如关系型数据库mysql没办法处理或者处理起来非常复杂,必须有一些新的处理技术也就是大数据处理…

网工内推 | 实施工程师,有软考证书优先,上市公司,最高14薪

01 新点软件 招聘岗位:实施工程师 职责描述: 1、负责一线项目组对接,完成项目前期信息、需求收集; 2、负责需求验证、管控、上线专项跟进工作; 3、负责在推进过程中总结与沉淀,提升优化对接规范/效率&…

windows 下编译libcurl openssl

参考 编译libcurl-openssl 1、拉取opensssl 建议指定为最新的发布版本 git clone -b openssl-3.1.3 --recurse-submodules https://github.com/openssl/openssl.git2、拉取curl 建议指定为最新的发布版本 git clone -b curl-8_3_0 --recurse-submodules https://github.c…

WIPO绿色专利分类范围清单

WIPO绿色专利分类范围清单 1、来源:WIPO绿色专利分类范围清单来源于网址: https://www.wipo.int/classifications/ipc/green-inventory/home) 2、范围:全球范围 3、指标为key、class、IPC、l1Title、l2Title、l3Title、l4Titl…

C进阶-自定义类型:结构体、枚举、联合

本章重点: 结构体: 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 结构体实现位段(位段的填充&可移植性) 1 结构体的声明 1.1 结构的基础知识 结构是一些值的集合,这些值称…

H3C交换机如何配置SSH服务

环境: H3C S6520 version 7.1.070, Release 6530P02 问题描述: H3C交换机如何配置SSH服务 组网需求 配置Host(SSH客户端)与Switch建立本地连接。Host采用SSH协议登录到Switch上,以保证数据信息交换的安全。SSH用…

深度学习_1_基本语法

数据结构 代码: import torchx torch.arange(12)##产生长度为12的一维张量print(x)##X x.resize(3, 4)##被弃用##print(X)y torch.reshape(x, (3, 4))##修改向量为矩阵,一维变二维print(y)print(y.size())xx torch.zeros((2, 3, 4))##三维矩阵&…

Ubuntu编译安装colmap遇到的几个问题以及解决

总体安装过程已经很明白了,写的人很多了,我就不赘述了,可以参考这里或者其他博客。我主要记录几个我遇到的问题以及解决方法。 1、cmake报错:No CMAKE_CUDA_COMPILER could be found. 这个原因是没找到cuda和nvcc目录&#xff0…