mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 11:23:33 +08:00
Merge pull request #383 from tstellanova/inject_version
grab the git hash and inject it into every log file header
This commit is contained in:
@@ -39,6 +39,17 @@
|
|||||||
export PX4_BASE := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))/
|
export PX4_BASE := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))/
|
||||||
include $(PX4_BASE)makefiles/setup.mk
|
include $(PX4_BASE)makefiles/setup.mk
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get a version string provided by git
|
||||||
|
# This assumes that git command is available and that
|
||||||
|
# the directory holding this file also contains .git directory
|
||||||
|
#
|
||||||
|
GIT_DESC := $(shell git log -1 --pretty=format:%H)
|
||||||
|
ifneq ($(words $(GIT_DESC)),1)
|
||||||
|
GIT_DESC := "unknown_git_version"
|
||||||
|
endif
|
||||||
|
export GIT_DESC
|
||||||
|
|
||||||
#
|
#
|
||||||
# Canned firmware configurations that we (know how to) build.
|
# Canned firmware configurations that we (know how to) build.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -110,6 +110,8 @@ ifneq ($(words $(PX4_BASE)),1)
|
|||||||
$(error Cannot build when the PX4_BASE path contains one or more space characters.)
|
$(error Cannot build when the PX4_BASE path contains one or more space characters.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(info % GIT_DESC = $(GIT_DESC))
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set a default target so that included makefiles or errors here don't
|
# Set a default target so that included makefiles or errors here don't
|
||||||
# cause confusion.
|
# cause confusion.
|
||||||
@@ -177,6 +179,12 @@ GLOBAL_DEPS += $(MAKEFILE_LIST)
|
|||||||
#
|
#
|
||||||
EXTRA_CLEANS =
|
EXTRA_CLEANS =
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Extra defines for compilation
|
||||||
|
#
|
||||||
|
export EXTRADEFINES := -DGIT_VERSION=$(GIT_DESC)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Append the per-board driver directory to the header search path.
|
# Append the per-board driver directory to the header search path.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -250,8 +250,26 @@ struct log_GVSP_s {
|
|||||||
float vz;
|
float vz;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* --- FWRV - FIRMWARE REVISION --- */
|
||||||
|
#define LOG_FWRV_MSG 20
|
||||||
|
struct log_FWRV_s {
|
||||||
|
char fw_revision[64];
|
||||||
|
};
|
||||||
|
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
GIT_VERSION is defined at build time via a Makefile call to the
|
||||||
|
git command line. We create a fake log message format for
|
||||||
|
the firmware revision "FWRV" that is written to every log
|
||||||
|
header. This makes it easier to determine which version
|
||||||
|
of the firmware was running when a log was created.
|
||||||
|
*/
|
||||||
|
#define FREEZE_STR(s) #s
|
||||||
|
#define STRINGIFY(s) FREEZE_STR(s)
|
||||||
|
#define FW_VERSION_STR STRINGIFY(GIT_VERSION)
|
||||||
|
|
||||||
/* construct list of all message formats */
|
/* construct list of all message formats */
|
||||||
|
|
||||||
static const struct log_format_s log_formats[] = {
|
static const struct log_format_s log_formats[] = {
|
||||||
@@ -274,6 +292,7 @@ static const struct log_format_s log_formats[] = {
|
|||||||
LOG_FORMAT(GPSP, "BLLfffbBffff", "AltRel,Lat,Lon,Alt,Yaw,LoiterR,LoiterDir,NavCmd,P1,P2,P3,P4"),
|
LOG_FORMAT(GPSP, "BLLfffbBffff", "AltRel,Lat,Lon,Alt,Yaw,LoiterR,LoiterDir,NavCmd,P1,P2,P3,P4"),
|
||||||
LOG_FORMAT(ESC, "HBBBHHHHHHfH", "Counter,NumESC,Conn,N,Ver,Adr,Volt,Amp,RPM,Temp,SetP,SetPRAW"),
|
LOG_FORMAT(ESC, "HBBBHHHHHHfH", "Counter,NumESC,Conn,N,Ver,Adr,Volt,Amp,RPM,Temp,SetP,SetPRAW"),
|
||||||
LOG_FORMAT(GVSP, "fff", "VX,VY,VZ"),
|
LOG_FORMAT(GVSP, "fff", "VX,VY,VZ"),
|
||||||
|
LOG_FORMAT(FWRV,"Z",FW_VERSION_STR),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int log_formats_num = sizeof(log_formats) / sizeof(struct log_format_s);
|
static const int log_formats_num = sizeof(log_formats) / sizeof(struct log_format_s);
|
||||||
|
|||||||
Reference in New Issue
Block a user