搜索
bottom↓
回复: 28

大家是如何记录软件版本的?

[复制链接]

出0入0汤圆

发表于 2016-6-17 12:07:45 | 显示全部楼层 |阅读模式
软件版本要写入软件内。 待日后好查询。有什么又简短,内容又丰富的方法,还有简单易读。
我现在用的是  16061700010   这么长。
160617 日期  0001 是总编译次数  最后一个0是测试版, 1是正式版。

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2016-6-17 12:45:00 | 显示全部楼层
对于单片机程序,xx.xx已足够,实际存储时用32位的整形数据,如100表示1.00

出0入0汤圆

发表于 2016-6-17 14:17:41 | 显示全部楼层
存当前的编译时间,这样最好,编译时编译器自动处理,又知道是什么时候编译的

出0入0汤圆

发表于 2016-6-17 14:20:33 | 显示全部楼层
201606161424
年月日时分

出0入0汤圆

发表于 2016-6-17 14:25:15 | 显示全部楼层
是自动生成的还是手工写的呢?

出0入0汤圆

发表于 2016-6-17 14:26:47 | 显示全部楼层
外面就写版本号,再有一个txt保存修改记录,修改记录里有修改内容及日期

出0入0汤圆

发表于 2016-6-17 14:57:20 | 显示全部楼层
#define FW_VERSION  FW_REVISION" ( "__DATE__"  " __TIME__ " )

出0入4汤圆

发表于 2016-6-17 15:11:48 | 显示全部楼层
svn不好用吗

出0入50汤圆

发表于 2016-6-17 15:15:12 | 显示全部楼层
svn不好用吗
还可以加comment

出0入0汤圆

发表于 2016-6-17 15:24:41 | 显示全部楼层
同svn,或者自己手动写

出0入0汤圆

 楼主| 发表于 2016-6-17 15:40:40 | 显示全部楼层
span42 发表于 2016-6-17 15:15
svn不好用吗
还可以加comment

版本是写入产品里面,出货后可以读取,知道是哪批次的产品。方便追溯。

出0入90汤圆

发表于 2016-6-17 15:48:23 | 显示全部楼层
changer15309 发表于 2016-6-17 14:57
#define FW_VERSION  FW_REVISION" ( "__DATE__"  " __TIME__ " )

这玩意咋存呢?如果是STM32的话,咋自动存储到内部FLASH里面呢?这样就方便了。

出0入0汤圆

发表于 2016-6-17 15:57:19 | 显示全部楼层
honami520 发表于 2016-6-17 15:48
这玩意咋存呢?如果是STM32的话,咋自动存储到内部FLASH里面呢?这样就方便了。 ...

专门定义一个段,把版本号放到该存储段里

出0入0汤圆

发表于 2016-6-17 15:59:16 | 显示全部楼层
或者在编译链接以后执行  svn info > xxx.log 命令 把 log 文件和firmware 一起保存。

出0入0汤圆

发表于 2016-6-17 19:43:04 | 显示全部楼层
留名, 学习了

出0入0汤圆

发表于 2016-6-17 22:29:38 来自手机 | 显示全部楼层
都是以BCD码存,比较容易查看0x16,0x06,0x17,'V',0x01,0x00

出50入0汤圆

发表于 2016-6-18 06:55:41 | 显示全部楼层
学习了,没这样用过。

出0入0汤圆

发表于 2016-6-18 08:24:27 | 显示全部楼层
本帖最后由 motoedy 于 2016-6-18 08:26 编辑

共享一个我写的自动版本号的小软件,
写的不咋的,但是能用,需要的可以试试。
因为我常用IAR,所以这里介绍下IAR下的使用方法,

第一次运行这个小软件需要设置一下


变量名:你版本号的宏定义名称,
比如你之前版本号是这样定义的:
#define VER_NUNBER Ver:1.0.0.0
那你设置为把变量名设置为VER_NUNBER就行

版本号长度:你版本号的编码长度
比如V1.0.0,长度就是3;V1.0.0.0,长度就是4

间隔符:版本号各位之间的间隔符
比如V1.0.0 ,间隔符就是‘.’

前置符:版本号的前置说明
比如Ver:V1.0.0.0,前置符就是 Ver:

预览:就是你上面设置的最终版本号是什么样的

按如上图所设置的话,最终#define VER_NUNBER后面的值就是Ver:1.0.0.0

版本号设置:你可以手动设置几个位的版本号为多少,即自定义

工程路径:请选择你版本号宏定义所在的文件,无论是.c 还是.h
比如我这里的Ver.h文件


全设置好了,记得保存

然后每次你编译的时候,小软件就会自动弹出来一次(暂时没有写隐藏运行),点关闭就行,

每打开一次,版本号的末尾号就会自动加一,
即你每编译一次,软件就自动帮你把版本号加一,不用你每次手动改。

Keil下使用方法也差不多,就是利用编译前运行小软件的原理。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-6-18 08:29:53 | 显示全部楼层
const char strings[30] @0xf00 = "Firmware Compiled " __DATE__ " "__TIME__ "\r\n"  

出0入0汤圆

发表于 2016-6-24 13:43:45 | 显示全部楼层
boboo 发表于 2016-6-18 08:29
const char strings[30] @0xf00 = "Firmware Compiled " __DATE__ " "__TIME__ "\r\n"

@0xf00   这个什么意思,,不懂,,请教,,,谢谢

出0入0汤圆

发表于 2016-6-24 14:40:48 来自手机 | 显示全部楼层
存放地址

出0入0汤圆

发表于 2016-6-25 01:22:32 来自手机 | 显示全部楼层
自动的把编译时间写入一个rom段:

出0入0汤圆

发表于 2017-8-19 13:49:52 | 显示全部楼层
motoedy 发表于 2016-6-18 08:24
共享一个我写的自动版本号的小软件,
写的不咋的,但是能用,需要的可以试试。
因为我常用IAR,所以这里介 ...

请问“Build Auto Ver.exe”需要有返回值吗?
例如int main()
{
return 1;//返回值
}

编译器如何确定Build Auto Ver.exe已经执行完毕呢?、、

谢谢

出0入0汤圆

发表于 2017-8-19 14:05:36 | 显示全部楼层
823032003 发表于 2017-8-19 13:49
请问“Build Auto Ver.exe”需要有返回值吗?
例如int main()
{

不需要,这个小软件只是帮你自动将你的文本修改了,省去你手动修改版本的麻烦,
只要运行一次就会自动将你的版本号加1;

出0入0汤圆

发表于 2017-8-19 14:15:53 | 显示全部楼层
motoedy 发表于 2017-8-19 14:05
不需要,这个小软件只是帮你自动将你的文本修改了,省去你手动修改版本的麻烦,
只要运行一次就会自动将 ...


谢谢你的回答,

但是 编译器如何确定Build Auto Ver.exe已经执行完毕呢?
万一没执行完,编译器已经编译完了呢?

出0入0汤圆

发表于 2017-8-19 14:29:40 | 显示全部楼层
本帖最后由 motoedy 于 2017-8-19 14:30 编辑
823032003 发表于 2017-8-19 14:15
谢谢你的回答,

但是 编译器如何确定Build Auto Ver.exe已经执行完毕呢?


当你点编译器编译按钮后,编译器会先自动运行小软件,
当你点小软件的关闭之后,编译器才开始编译呢。
这个功能是编译器自带的,有编译前运行软件和编译后运行软件两种选择,
具体的软件你自己看看。
至于小软件有没修改成功,这个我没有做判断,但是基本成功率是99%
原理就是修改指定文件的一串字符串,很简单。
为了防止万一的情况下修改了你其他代码,建议你把版本号宏定义单独放一个.h文件。
这个只能当编译版本号修改用,反正运行一次,末尾号+1;
我也就是自用的,就是懒,每次要改版本号,麻烦。。

出0入0汤圆

发表于 2017-8-19 17:54:33 来自手机 | 显示全部楼层
git或者svn

出0入0汤圆

发表于 2017-8-20 16:43:27 | 显示全部楼层
motoedy 发表于 2017-8-19 14:29
当你点编译器编译按钮后,编译器会先自动运行小软件,
当你点小软件的关闭之后,编译器才开始编译呢。
这 ...

大侠,帮看看我写的exe为什么不能再pre-build调用
https://www.amobbs.com/forum.php ... p;page=1#pid9894049

出0入0汤圆

发表于 2017-8-21 07:44:38 | 显示全部楼层
823032003 发表于 2017-8-20 16:43
大侠,帮看看我写的exe为什么不能再pre-build调用
https://www.amobbs.com/forum.php?mod=viewthread&tid ...

这个咱就不懂了,咱只会入门级的delphi
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-16 19:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表