一种针对嵌入式KEIL工程的版本管理和跟踪的python脚本

        这是去年写的一个python脚本,和KEIL V5配套使用的,借助git对工程文件进行版本管理和跟踪。打包后的exe和源文件整理到网盘了,有需要的可以自取,链接:https://pan.quark.cn/s/6c28fb43e8dc
提取码:R17N

        

关于如何使用:

  1. lead_vcs.exe是已经打包好的可执行文件,lead_vcs.py是源文件

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

  3. 脚本执行成功后会自动在board文件夹下生成用于存放版本信息的version_info.h文件

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

简单介绍一下脚本:

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

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

        脚本功能:跟踪当前软件版本、适配硬件版本、程序提交者、提交hash值、提交时间、文件的远端存储地址、远端分支、编译时间、编译主机名称、编译主机IP

实现方法(技术摘要):

1、在keil工程的前3级路径下面查找.git文件夹,.git文件夹是是git init后在当前目录生成的一个管理git仓库的文件夹

2、借助git的库Repo,将.git中的提交者、提交hash等有用信息提取出来

3、借助python的各种库识别当前主机名称和IP等信息

4、在指定路径下面新建C头文件version_info.h ,将上述采集到的信息按指定格式存入文件,同时在keil的Build Ouput中打印采集到的信息

5、程序在编译过程中会加入version_info.h,使用C语言代码在程序运行中将其中的版本信息解析或根据命令打印出来

6、上述流程可以使开发者在编译调试过程中直接查看到版本信息,使非开发者通过按键或者发送串口命令的方式使能控器将其版本信息打印出来,方便进行版本管理和跟踪

        运行的效果图如下(在keil的Output窗口显示):

        生成的version_info.h文件如下:

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

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

相关文章

案例研究|DataEase助力无锡布勒业务数据可视化建设

布勒集团是一家来自瑞士的家族企业,在谷物与食品以及先进材料制造等领域深耕超过160年。布勒大中华区的总部位于江苏无锡。无锡布勒是一家集研发、生产、销售于一体的综合性公司,拥有先进的生产设备及高素质的科技研发人员,以谷物深加工、谷物…

dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ 0vS/TRex/dpvs技术专家成长体系教程

课程围绕安全,网络,存储,云原生4个维度去讲解核心技术点。 6个专栏组成:dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏 一、dpdk网络 dpdk基础知识 多队列网卡&#xff0…

腾讯云 轻量云 上海 VPS 测评

description: 发布于 2023-07-05腾讯云 轻量云 上海 VPS 测评 腾讯云国内机非常稳定,一年用下来没有掉线丢包的情况。国内机适合与备案域名一起建站使用。带宽很小,图片资源使用CDN加速或海外机提供。 规格 CPU - 2核 内存 - 2GB 系统盘 - SSD云硬盘…

Dubbo—Admin 整体架构与安装步骤

​回顾 Dubbo 服务治理体系的总体架构,Admin 是服务治理控制面中的一个核心组件,负责微服务集群的服务治理、可视化展示等。 Admin 部署架构 总体上来说,Admin 部署架构分为以下几个部分: Admin 主进程,包括服务发现…

博客系统(java,MySQL,HTML)

项目展示: 1.输入 http://127.0.0.1:8080/blog_system/login.html 即可进入登录页面 2.输入正确的用户名和密码后进入博客列表页 要是用户名或密码输入错误,会弹出错误提示框 3.点击查看全文,可以进入博客详情页查看详细信息 4.点击写博客&a…

Unity实现摄像机向屏幕中间发射射线射击物体

1.创建一个准星放在屏幕中间 外部找个PNG透明图,拖到Unity文件夹,右上角改成精灵sprite2d 2.添加到UI画布 3.写脚本 首先,我们需要引入一些 "工具",就像我们在玩游戏时要先下载游戏客户端一样。这里的 "工具&quo…

统一观测丨使用 Prometheus 监控 SQL Server 最佳实践

作者:啃唯 SQL Server 简介 SQL Server 是什么? Microsoft SQL Server 是 Microsoft 推出的关系型数据库解决方案,支持企业 IT 环境中的各种事务处理、商业智能和分析应用程序。Microsoft SQL Server 是市场领先的数据库技术之一。 SQL S…

2核4G服务器支持多少用户同时在线访问?卡不卡?

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,从CPU内存的角度,网站程序效…

Hexo+Github+Netlify博客搭建教程

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 博客系列 ✨特色专栏: MyS…

1 随机事件与概率

首先声明【这个括号内的都是批注】 文章目录 1 古典概型求概率1.1 随机分配问题【放球】例子 1.2 简单随机抽样问题【取球】例子 2 几何概型求概率例子 3 重要公式求概率3.1 对立3.2 互斥3.3 独立3.4 条件(要做分母的必须大于0)例子 3.5 不等式或包含例…

结构体对齐规则

1.第一个成员在结构体变量偏移量为0的地址处。 2.其他成员变量对齐到某个数字(对齐数)的整数倍的地址处。(对齐数编译器默认的一个对齐数与该成员大小的较小值)注意:目前有且只有VS编译器有默认为8. 3.结构体总大小为最大对齐数的整数倍。 4.如果嵌套…

Maven Surefire Exclude 无效问题排查日志

昨天有个需求,要在单元测试的时候单线程执行,并且只执行单元测试类特殊结尾的,那么根据以往经验,直接在maven里面配置exclude并且指定include即可。如下尝试 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin&…

【算法|动态规划No.18】leetcode718. 最长重复子数组

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

网格管理安全巡检系统—助企业全面安全检查

通过应用安全巡检管理系统&#xff0c;企业能更好地管理控制安全风险&#xff0c;保障员工生命安全和财产安全&#xff0c;避免出现各种危险隐患&#xff0c;帮助企业快速提高生产发展实力。 一、凡尔码搭建安全巡检系统的功能 1.巡检计划:帮助用户制定巡检计划&#xff0c;包括…

【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例实践应用

目录 第一章 理论基础 第二章 开发环境搭建 第三章 遥感大数据处理基础与ChatGPT等AI模型交互 第四章 典型案例操作实践 第五章 输入输出及数据资产高效管理 第六章 云端数据论文出版级可视化 更多应用 随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近…

微信小程序备案流程操作详解,值得收藏

目录 一、小程序备案法律法规参考 二、备案前准备 2.1 备案入口 2.1.1、未上架小程序 2.1.2、已上架小程序 (二)备案类型 (三)备案材料准备 3.1、小程序备案材料 3.2、前置审批材料 3.3、个人备案 3.4、非个人备案 三、备案整体流程 (一)备案信息填写 1、主体信息…

iOS- flutter flavor 多环境Configurations配置

一、点击PROJECT的Runner&#xff0c;选择Info选项&#xff0c;在Configurations下方的号添加不同环境的配置&#xff0c;如下图&#xff1a; 二、选择TAGETS的Runner项目&#xff0c;选择Build Settings选项&#xff0c;在输入框输入package&#xff0c;为不同环境配置相应的…

docker 登录本地仓库harbor问题

1、报错如下&#xff1a; 添加目标harbor 仓库的hosts vim /etc/hosts 2、报错如下&#xff1a; 添加修改/etc/docker/daemon.json文件中的 insecure-registries vim /etc/docker/daemon.json 然后 systemctl daemon-reload systemctl restart docker再次登录

“之江创客”跨境电商赛区决赛暨浙南新电商发展论坛圆满落幕

9月26日&#xff0c;由商务部中国国际电子商务中心指导&#xff0c;浙江省商务厅等十个部门主办&#xff0c;浙江省电子商务促进中心、温州市商务局、苍南县人民政府承办的“之江创客”2023全球电子商务创业创新大赛跨境电商赛区决赛暨浙南新电商发展论坛在苍南圆满落幕。浙江省…

Excel 函数大全应用,包含各类常用函数

Excel 函数大全应用&#xff0c;各类函数应用与案例实操。 AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作&#xff0c; Power BI 商业智能 68集&#xff0c; 数据库Mysql8.0 54集 数据库Oracle21C 142集&#xff0c; Office 2021实战&#xff0c; Python 数据分析&#xff0…