1、问题背景:如何保证发布出去的bin文件是最终测试通过的版本?
一般的来讲,代码到了测试后期,master分支就不会频繁的提交了,并且提交也会更加谨慎。
但是人为操作总会出现纰漏,希望只要代码被重新编译过,那么bin文件就包含新的时间信息,而这个信息是可以从外部通信或printf来查看的。
在嵌入式开发中,版本号一般的都是一个int变量或字符串变量。但是若修改了代码而没有改version变量或宏定义,那么从version上就看不出来文件的变化。
那么最终编译的版本到底是哪个版本,是否与测试的版本完全一致,这个问题尤为突出。
目标文件中带有编译时间可以防止代码被改动过,只要代码被重新编译,那么就生成新的时间信息。
git能够记录文件修改信息,但是调试信息或工程配置等,很多文件都是ignore的,这些信息代表着最终的bin文件的运行环境。
某些复杂bug情况下,只有运行环境一致,仿真器才能attach到目标文件。
2. 如何获取时间:DATA, TIME
这两个宏是日期和时间,格式如下。如果把这两个宏加入到代码,那么就得到了时间的字符串信息。
// Example of __DATE__ string: "Dec 27 2017"