上传个小工具,可以给单片机C程序自动产生并增加版本号

2020-01-11 18:14发布

由于想要在单片机产品中能显示固件的版本号和编译时间,以前一直是手工添加的,很不方便,如果每次编译时能自动增加版本号就方便多了,为此写了个小程序,可以很方使的嵌入到IDE中实现此功能(在MDK和STVD+COSMIC环境下测试过,理论上对大部份IDE都有效),现上传给大家,欢迎拍砖。

给单片机C程序自动产生版本号的程序ourdev_712769GBDVRJ.rar(文件大小:120K) (原文件名:Version.rar)

工作原理:很简单地说,运行Version.exe生成一个"version.h"头文件,文件的内容如下:

#ifndef VERSION_H_INCLUDED
#define VERSION_H_INCLUDED

#define VERNUM "1.0.0"
#define BUILDNUM "0"
#define BUILDTIME "2011-12-13 09:50:58"

#endif

将version.h文件包含到你的工程代码中,在需要的地方直接调用VERNUM,BUILDNUM,BUILDTIME即可,将Version.exe加入到IDE工程选项中编译前运行的程序栏,这样每次执行编译时将自动调用Version.exe,自动将BUILDNUM的值递增,同时将当前时间替换掉BUILDTIME的内容。



使用方法:

一、在MDK环境下:

1.解压缩后将Version.exe复制到MDK工程的源文件目录下,比如:../Source/Version下,记下此路径。
2.打开MDK项目,在User标签下的“Run User Program Before Build/Rebuild"栏选择Version.exe所在的路径"..SourceVersionVersion.exe",Run #1前的框打上√。
3.在C/C++标签下的Include Paths中加入Version.exe所在的目录"../Source/Version"
4.在C源码中#include "version.h",在需要显示版本号的地方调用BUILDNUM等需要的值,比如printf("Version %s Build %s @ %s",VERNUM,BUILDNUM,BUILDTIME);即可。

项目设置 (原文件名:1.jpg)
二、在STVD环境下:
1.解压缩后将Version.exe复制到STVD工程的源文件目录下,比如:../Source/Version下,记下此路径。
2.双击运行一下Version.exe,生成version.h,将version.h加入到工程中。
3.在Project Settings中Pre-Link标签下的Commands文本框中将Version.exe的路径加上去,如图:

STVD设置 (原文件名:2.jpg)

4.在C源码中#include "version.h",在需要显示版本号的地方调用BUILDNUM等需要的值,比如printf("Version %s Build %s @ %s",VERNUM,BUILDNUM,BUILDTIME);即可。

另:Version.exe有一个参数-v可指定VERNUM的值,如果不指定则默认为1.0.0,并且VERNUM的值不会自动改变,变的只是BUILDNUM和BUILDTIME。-v参数的使用:
../Version.exe -v xxxxxxxx
其中xxxxxxxx为任意字符串,没有限定长度和格式,可以是2.0.1,也可以是abcdefg等等。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
65条回答
yzhu
1楼-- · 2020-01-11 19:05
好东西,收藏了!
.titrwh
2楼-- · 2020-01-11 20:27
刚试了下,很好使。
sanda
3楼-- · 2020-01-11 20:37
回复【1楼】yzhu
-----------------------------------------------------------------------

在mdk4.22a上试了,好用.
gameboy22
4楼-- · 2020-01-12 01:07
 精彩回答 2  元偷偷看……
GNMXD
5楼-- · 2020-01-12 05:26
mark
.titrwh
6楼-- · 2020-01-12 05:56
最好再加一个自动读取器件唯一ID。

一周热门 更多>