这是去年写的一个python脚本,和KEIL V5配套使用的,借助git对工程文件进行版本管理和跟踪。打包后的exe和源文件整理到网盘了,有需要的可以自取,链接:https://pan.quark.cn/s/6c28fb43e8dc
提取码:R17N
关于如何使用:
-
lead_vcs.exe是已经打包好的可执行文件,lead_vcs.py是源文件
-
需要将exe文件路径放到keil的Options - User - Before Build/Rebuild中,例./board/script/lead_vcs.exe
-
脚本执行成功后会自动在board文件夹下生成用于存放版本信息的version_info.h文件
-
执行过程中会在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文件如下: