打印

MDK里如何把编译时间嵌到代码里?

[复制链接]
5426|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
z_no1|  楼主 | 2012-2-9 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
z_no1|  楼主 | 2012-2-9 17:59 | 只看该作者
uint8_t const verStringBuildTime[32] __at (0x08001800)  =   __DATE__   "   "     __TIME__ ;
在MDK 410下使用通过。

使用特权

评论回复
板凳
forgot| | 2012-2-9 21:40 | 只看该作者
确实是__DATE__ 和 __TIME__ 宏来实现参考范例:
unsigned char code DataStr[]=__DATE__;
unsigned char code TimeStr[]=__TIME__;
这样,编译后TimeStr的字符串正好是编译的当前时刻,相当于
unsigned char code TimeStr[]="09:12:04"

这个在编译时,编译器会自动的把计算机系统时间编译进去,它只是一个宏,编译后不会改变的,这样的好处在于确定编译时间确认版本好和代码发行时间

我自己没试过。




利用__DATE__获取当前日期
利用__TIME__获取当前时间
两个都是字符串型

使用特权

评论回复
地板
ejack| | 2012-2-10 07:53 | 只看该作者
学习了,回去试试。

使用特权

评论回复
5
Ryanhsiung| | 2012-2-10 08:26 | 只看该作者
这个还是要看编译器手册,里面有描述

使用特权

评论回复
6
z_no1|  楼主 | 2012-2-10 16:41 | 只看该作者
初步试了一下,还没弄清楚编译时间是以什么界定的,比如输入文件没改,重编译了一次,好象时间没变动
另外多文件编译的时候,如果这个变量的声明所在的文件没变动,其他文件变了,没看到啥更改。

使用特权

评论回复
7
chenghaichao| | 2012-2-10 17:39 | 只看该作者
时间戳?

使用特权

评论回复
8
linjing| | 2012-2-10 19:31 | 只看该作者
LZ可以试试以下方法,
1.使用Rebuild All方法
2.设置相应源文件的选项,Keil的设置方法,右键点文件,选Options,设置Always Build

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

2644

帖子

10

粉丝