u-boot编译技巧利用——编译时间

每次我们重新编译u-boot的时候,运行起来总会看到以下信息:、

U-Boot 2009.08 (Feb 16 2011 - 10:29:10)

DRAM:  64 MB
Flash:  0 kB
NAND:  64 MiB
In:    serial
Out:   serial
Err:   serial
dm9000 i/o: 0x18000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
Net:   dm9000
Hit any key to stop autoboot:  3

红色这行给我们的提示:u-boot的版本,编译时间。

这样每次我们启动程序都可以看到编译时间,对于软件管理有很大的帮助,我就提取了这个技巧。

u-boot目录下的Makefile有以下这几行:

第24行:

VERSION = 2009
PATCHLEVEL = 08
SUBLEVEL =
EXTRAVERSION =
ifneq "$(SUBLEVEL)" ""
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
else
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
endif


第378行:

TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h
VERSION_FILE = $(obj)include/version_autogenerated.h

$(VERSION_FILE):
  @( printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' "$(U_BOOT_VERSION)" \
   '$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ) >
$@.tmp
  @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@

$(TIMESTAMP_FILE):
  @date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
  @date +'#define U_BOOT_TIME "%T"' >> $@

 

linux内核Makefile也有同样的功能,我提取了提示编译者和编译主机。整合之后就是以下的:

VERSION = 2011
PATCHLEVEL = 12
SUBLEVEL =
EXTRAVERSION = -rc1
ifneq "$(SUBLEVEL)" ""
ATE_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
else
ATE_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
endif
VERSION_FILE = version.h  //全部都放在version.h头文件

 

all: $(VERSION_FILE)  ate  //必须放在被调用的文件之前生成,这里ate是最后要生成的文件,包含了version.h,所以必须放在后面。

$(VERSION_FILE):  //生成这个文件,
 @(printf '#define ATE_VERSION "ATE-GXV31XX %s "\n' "$(ATE_VERSION)") > $@
  @date +'#define ATE_DATE "%b %d %C%y"' >> $@
  @date +'#define ATE_TIME "%T"' >> $@
  @echo \#define ATE_COMPILE_BY \"`whoami`\" >> $@
  @echo \#define ATE_COMPILE_HOST \"`hostname`\" >> $@

 

clean:
 rm -f *.o ate

 rm -f $(VERSION_FILE)

实例中应包括:

#include "version.h"

const char version_string[] =
 ATE_VERSION " " ATE_COMPILE_BY "@" ATE_COMPILE_HOST" (" ATE_DATE " - " ATE_TIME ")";

    printf("\n\n***********************************************************\n");
    printf ("\n\n\n%s\n\n\n", version_string);
    printf("\n***********************************************************\n\n");

 

一点点小技巧 奋斗,积少成多。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
spring-boot-devtools是一个用于开发环境的工具,它提供了自动编译和热部署的功能,可以加速开发过程。在Spring Boot项目中,你可以通过在pom.xml文件中添加以下依赖来引入spring-boot-devtools: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- 依赖不会传递,之后依赖此项目的项目如果想要使用devtools,需要重新引入 --> <optional>true</optional> </dependency> ``` 注意,这个依赖不会传递给依赖你的项目,如果你的项目依赖了这个项目,并想要使用devtools,需要重新引入该依赖。通过使用spring-boot-devtools,你可以实现代码的自动编译和热部署,节省了手动重启项目的时间,提高了开发效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JavaEE——SpringBoot项目常见的依赖包及其作用](https://blog.csdn.net/qq_46304554/article/details/127438629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [SpringBoot热部署(一):spring-boot-devtools](https://blog.csdn.net/jiangxiulilinux/article/details/98087687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值