当前位置: 首页 > news >正文

【ARM 嵌入式 编译系列 2.2 -- 如何在Makefile 中添加编译时间 | 编译作者| 编译 git id】


请阅读【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 --pretty=format:'%H'9c7085ed92eeeac5836f540511c65e5190975d46

我们只需要将上面获取到的值在 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 --pretty=format:'%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: %.c@echo -e "\t c " CC $(CFLAGS) $< -o $@@$(CC) $(PARCFLAGS) $< -o $@%.o: %.S@echo -e "\t s " CC $(OBJCFLAGS) $< -o $@@$(CC) $(OBJCFLAGS) $< -o $@

上篇文章:【ARM 嵌入式 编译系列 2.1 – GCC 编译参数学习】
下篇文章:【ARM 嵌入式 编译系列 2.3 – GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】

相关文章:

【ARM 嵌入式 编译系列 2.2 -- 如何在Makefile 中添加编译时间 | 编译作者| 编译 git id】

请阅读【ARM GCC 编译专栏导读】 上篇文章&#xff1a;【ARM 嵌入式 编译系列 2.1 – GCC 编译参数学习】 下篇文章&#xff1a;【ARM 嵌入式 编译系列 2.3 – GCC 中指定 ARMv8-M 的 Thumb 指令集参数详细介绍】 文章目录 编译参数介绍 编译参数介绍 通常我们在 OS 启动的时…...

海康威视监控相机的SDK与opencv调用(非工业相机)

1.研究内容 本篇主要对海康威视的监控相机的SDK回调进行研究&#xff0c;并于opencv结合&#xff0c;保存图像,以供后续其他处理&#xff0c;开发语言为C 2.步骤及方法 2.1 海康SDK介绍 海康SDK下载地址 根据自身编译环境&#xff0c;下载对应的SDK&#xff0c;需要注意的是…...

VUE项目部署过程中遇到的错误:POST http://124.60.11.183:9090/test/login 405 (Not Allowed)

我当初报了这个405错误&#xff0c;再网上查了半天&#xff0c;他们都说什么是nginx部署不支持post访问静态资源。 但后面我发现我是因为另一个原因才导致的无法访问。 我再vue中有使用devServer:{ proxy:{} }进行路由转发。 但是&#xff01;&#xff01; 在这个配置只…...

MongoDB——索引(单索引,复合索引,索引创建、使用)

MongoDB索引 官方文档 https://docs.mongodb.com/manual/indexes/#create-an-index 默认索引 _id index Mongodb 在 collection 创建时会默认建立一个基于_id 的唯一性索引作为 document 的 primarykey&#xff0c;这个 index 无法被删除 单个字段索引 单字段索引是 Mongo…...

ebpf实战(一)-------监控udp延迟

问题背景: 为了分析udp数据通信中端到端的延迟,我们需要对整个通信链路的每个阶段进行监控,找出延迟最长的阶段. udp接收端有2个主要路径 1.数据包到达本机后&#xff0c;由软中断处理程序将数据包接收并放入udp socket的接收缓冲区 数据接收流程 2. 应用程序调用recvmsg等a…...

中西部各省市翻译协会、公关协会会长金秋圆桌会议圆满结束

中西部翻译协会共同体、中西部公共关系协会共同体共同体创建8年来&#xff0c;已成功举办了八届翻译大赛。时值第九届中西部翻译大赛将拉开序幕&#xff0c;中西部翻译协会共同体、中西部公共关系协会共同体举办的2023年度中西部各省市翻译协会、公关协会会长金秋圆桌会议&…...

极盾故事|“五步”构建某三甲医院数据安全管理集成平台

极盾科技助力某三甲医院&#xff0c;构建统一的数据安全管理集成平台&#xff0c;最终实现&#xff1a; 1、数据安全管理的自动化&#xff0c;覆盖全院医教研管15个应用场景、14项管理活动、300&#xff0b;项数据&#xff0c;完成40&#xff0b;个重要信息系统的自动监控、风…...

【开题报告】基于uni-app的恋爱打卡app的设计与实现

1.选题背景 如今&#xff0c;随着移动互联网的普及和人们对生活品质的追求&#xff0c;恋爱已经成为了许多人关注的焦点。然而&#xff0c;在恋爱过程中&#xff0c;由于种种原因&#xff0c;往往会忽略掉一些重要的时刻和细节&#xff0c;导致感情降温甚至破裂。因此&#xf…...

Python 2.7 在 Debian 服务器上获取 URL 时的 SSL 验证失败问题与解决方案

在使用Python的requests库从Debian稳定服务器上获取简单URL时&#xff0c;遇到了SSL证书错误。 根据用户的问题描述&#xff0c;您遇到了SSL证书验证失败的问题。 要解决这个问题&#xff0c;您可以采取以下步骤&#xff1a; 1. 升级到Python 2.7的最新版本&#xff1a; 首…...

导出文件到指定路径??

需求&#xff1a;点击导出pdf按钮&#xff0c;弹出系统文件夹弹框&#xff0c;可以选择保存文件的位置。 经查询window.showSaveFilePicker可实现&#xff0c;但这个api处于实验阶段&#xff0c;且用下来确实和浏览器类型、浏览器版本、以及本身api就不稳定有关系。 代码见下…...

腾讯微服务平台TSF学习笔记(二)--如何使用spring cloud zuul实现线上流量复制

需求提了n遍了&#xff0c;好好好&#xff0c;那这个需求就由我测试来做 1.在zuul端配置&#xff1a; ●假设provider-mirror是provider-demo的灰度应用 package com.tencent.tsf.msgw.zuul1.filter;import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.Re…...

React自定义Hook之useRequest

一、简介 通过自定义hook&#xff0c;实现对http请求封装。 支持loading状态判断请求进度&#xff0c;支持获取请求正确和错误结果。 二、技术方案 use request hook export const useRequest (options) > {// 请求参数const [url, ...init] options;// 请求返回的数…...

【LeetCode】挑战100天 Day13(热题+面试经典150题)

【LeetCode】挑战100天 Day13&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-152.1 题目2.2 题解 三、面试经典 150 题-153.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&…...

Android 11.0 SystemUI 去掉状态栏wifi流量上下行图标功能实现

1.概述 在11.0系统定制rom开发中,在关于systemui的定制功能总,在SystemUI 状态栏上显示时钟,电池电量 wifi图标,在显示wifi图标时,网络实时更新时,但是会时不时显示上下行图标 显得很不美观,客户需求要求不显示上下行图标,所以需要去掉上下行图标功能,接下来实现相关功能…...

掌握Net User命令:轻松创建、修改、删除和查看本地用户帐户

net user 命令用于管理本地用户帐户。它可以用于创建、修改、删除用户帐户&#xff0c;以及查看用户帐户的信息 在Windows操作系统中&#xff0c;Net User命令是一个强大的工具&#xff0c;它允许管理员创建、修改、删除和查看本地用户帐户。无论你是IT专业人士还是普通用户&am…...

性能优化中使用Profiler进行页面卡顿的排查及解决方式

文章目录 一、前言二、页面卡顿的排查方式1、耗时操作的监控2、页面卡顿的监控 三、参考链接 一、前言 程序的优化在做过线上bug处理&#xff0c;布局层级优化&#xff0c;项目依赖库版本更新&#xff0c;重复库合并&#xff0c;删除未使用的资源&#xff0c;删除冗余的库&…...

深入了解Java8新特性-日期时间API_LocalDate类

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概12000多字&#xff0c;预计阅读时间长需要10分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&…...

PyTorch基本操作和工作流程

1. PyTorch基础 张量&#xff08;Tensors&#xff09;&#xff1a; 学习 PyTorch 中表示数据的基本单元。了解如何创建、操作和使用张量。 自动微分&#xff08;Autograd&#xff09;&#xff1a; 了解 PyTorch 的自动微分机制&#xff0c;这是训练神经网络的核心。 模型定义…...

Android开发从0开始(ContentProvider与数据)

内容提供者&#xff1a;ContentProvider 为App存取内部数据提供外部接口&#xff0c;让不同应用共享数据。 ①在配置里AndroidManifest.xml <provider android:name".UserInfoProvider" android:authorities"com.example.chapter07_server.provider.U…...

STM32_6(TIM)

TIM定时器&#xff08;第一部分&#xff09; TIM&#xff08;Timer&#xff09;定时器定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元&#xff0c;在72MHz计数时钟下可以实现最大59.65s的定时不仅…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

C# winform教程(二)----checkbox

一、作用 提供一个用户选择或者不选的状态&#xff0c;这是一个可以多选的控件。 二、属性 其实功能大差不差&#xff0c;除了特殊的几个外&#xff0c;与button基本相同&#xff0c;所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...

WinUI3开发_使用mica效果

简介 Mica(云母)是Windows10/11上的一种现代化效果&#xff0c;是Windows10/11上所使用的Fluent Design(设计语言)里的一个效果&#xff0c;Windows10/11上所使用的Fluent Design皆旨在于打造一个人类、通用和真正感觉与 Windows 一样的设计。 WinUI3就是Windows10/11上的一个…...