自媒体平台企业网站怎么设置,高端营销网站建设,网站建设 上,机械加工平台请阅读【ARM GCC 编译专栏导读】
上篇文章#xff1a;【ARM 嵌入式 编译系列 2.1 – GCC 编译参数学习】 下篇文章#xff1a;【ARM 嵌入式 编译系列 2.3 – GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】 文章目录 编译参数介绍 编译参数介绍
通常我们在 OS 启动的时…请阅读【ARM GCC 编译专栏导读】
上篇文章【ARM 嵌入式 编译系列 2.1 – GCC 编译参数学习】 下篇文章【ARM 嵌入式 编译系列 2.3 – GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】 文章目录 编译参数介绍 编译参数介绍
通常我们在 OS 启动的时候我们可以在串口log中看到 当前使用的镜像的编译时间、是谁编译的当前镜像是基于哪个 git commit编译的我们如何在编译过程中添加这些参数呢
通过下面命令获取当前时间
$ date %Y-%m-%d-%H-%M-%S
2022-12-20-10-29-31通过下面命令获取当前用户
$ whoami
CodingCos通过下面命令获取当前 git id
$ git log -1 --prettyformat:%H9c7085ed92eeeac5836f540511c65e5190975d46我们只需要将上面获取到的值在 Makefile 中赋值给相应的变量, 然后使用 export将其从Makefile导出到由Makefile启动的子进程的环境中即可如下
COMPILE_TIME_DATE : $(shell date %Y-%m-%d-%H-%M-%S)
COMPILE_USER_NAME : $(shell whoami)
COMPILE_COMMIT_ID : $(shell git log -1 --prettyformat:%H)export COMPILE_TIME_DATE
export COMPILE_USER_NAME
export COMPILE_COMMIT_ID关于 Makefile 中 export 的使用
在编的时候将上面定义的参数以宏的形式进行定义, 如下 PARCFLAGS -DCOMPILE_TIME_DATE$(COMPILE_TIME_DATE) -DCOMPILE_USER_NAME$(COMPILE_USER_NAME) -DCOMPILE_COMMIT_ID$(COMPILE_COMMIT_ID) \在编译的时候使用 参数 OBJCFLAGS 即可如下
ifeq ($(CROSS_COMPILE), )CROSS_COMPILE arm-none-eabi-
endif
CC $(CROSS_COMPILE)gcc
LD $(CROSS_COMPILE)ld
GDB $(CROSS_COMPILE)gdb
OBJDUMP $(CROSS_COMPILE)objdump
OBJCOPY $(CROSS_COMPILE)objcopy
READELF $(CROSS_COMPILE)readelfall:%.o: %.cecho -e \t c CC $(CFLAGS) $ -o $$(CC) $(PARCFLAGS) $ -o $%.o: %.Secho -e \t s CC $(OBJCFLAGS) $ -o $$(CC) $(OBJCFLAGS) $ -o $上篇文章【ARM 嵌入式 编译系列 2.1 – GCC 编译参数学习】 下篇文章【ARM 嵌入式 编译系列 2.3 – GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】