一种针对嵌入式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.hqwc.cn/news/130212.html

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

相关文章

信息系统项目管理师第四版学习笔记——项目立项管理

项目建议与立项申请 立项申请又称为项目建议书,是项目建设单位向上级主管部门提交项目申请时所必须的文件,项目建议书是项目发展周期的初始阶段,是国家或上级主管部门选择项目的依据,也是可行性研究的依据。 项目建议书应该包括…

关于ABB速度,加速度,轴监控指令

关于ABB速度,加速度,轴监控 关于轴监控指令要选择启用和关闭,这个指令是为了防止机器人在抓件放件过程中6轴来回旋转,已最佳的姿态运动 收录于合集 #ABB机器人 9个 上一篇关于ABB机器人的IO创建和设置

好用的Java工具类库—— Hutool

目录 一、简介 1、介绍 2、Hutool名称的由来 3、Hutool如何改变我们的coding方式 4、包含组件(核心) 5、官方文档 二、安装与使用 1、引入 import方式 exclude方式 2、安装(POM) 三、使用 1、DateUtil 2、StrUtil 3、NumberUtil 4、MapU…

CloudCompare——计算点云到点云的距离

目录 1.Cloud-cloud distances2.操作流程3.完整操作4.相关代码 1.Cloud-cloud distances Cloud-cloud distances 可以通过选择两个点云,然后点击如下图所示的图标来计算。 或者在功能按钮中找到该功能: 要启动这个工具,用户必须选择两个点云…

对于使用win32 API获取性能计数器的理解

微软提供了获取性能计数器的接口,如下 LSTATUS RegQueryValueExA([in] HKEY hKey,[in, optional] LPCSTR lpValueName,LPDWORD lpReserved,[out, optional] LPDWORD lpType,[out, optional] LPBYTE lpData,[in, out, optional] L…

数据结构和算法(10):B-树

B-树:大数据 现代电子计算机发展速度空前,就存储能力而言,情况似乎也是如此:如今容量以TB计的硬盘也不过数百元,内存的常规容量也已达到GB量级。 然而从实际应用的需求来看,问题规模的膨胀却远远快于存储能…

Go Gin Gorm Casbin权限管理实现 - 3. 实现Gin鉴权中间件

文章目录 0. 背景1. 准备工作2. gin中间件2.1 中间件代码2.2 中间件使用2.3 测试中间件使用结果 3. 添加权限管理API3.1 获取所有用户3.2 获取所有角色组3.3 获取所有角色组的策略3.4 修改角色组策略3.5 删除角色组策略3.6 添加用户到组3.7 从组中删除用户3.8 测试API 4. 最终目…

Python Opencv实践 - 车辆识别(1)读取视频,移除背景,做预处理

示例中的图像的腐蚀、膨胀和闭运算等需要根据具体视频进行实验得到最佳效果。代码仅供参考。 import cv2 as cv import numpy as np#读取视频文件 video cv.VideoCapture("../../SampleVideos/Traffic.mp4") FPS 10 DELAY int(1000 / FPS) kernel cv.getStructu…

flask入门

第一个Flask项目 创建后项目如下图 static存放静态文件,templates存放Jinja2模板,app.py是整个项目的入口文件 我们略微理解下app.py这里的代码 # 从flask这个包中导入Flask类 from flask import Flask#使用Flask类创建一个app对象 #__name__:代表当前…

Python 自动化Web测试

限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。 公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟…

开源ERP和CRM套件Dolibarr

什么是 Dolibarr ? Dolibarr ERP & CRM 是一个现代软件包,用于管理您组织的活动(联系人、供应商、发票、订单、库存、议程…)。它是开源软件(用 PHP 编写),专为中小型企业、基金会和自由职业…