From b5276d19a1a8fd1116b23414d15a444e97a9e030 Mon Sep 17 00:00:00 2001 From: "Jan \"Yenya\" Kasprzak" Date: Tue, 25 Jun 2013 22:26:33 +0200 Subject: [PATCH] Include date and git revision in the eeprom variable ... in order to be able to find out which firmware version is this MCU running. This roughly corresponds to the commit 49420b56b31e113f4c40128c530f2e585a9f8061 of project Tinyboard. --- firmware/Makefile | 11 ++++++++--- firmware/version.pl | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100755 firmware/version.pl diff --git a/firmware/Makefile b/firmware/Makefile index 1b0113e..726558b 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -1,7 +1,7 @@ PROGRAM=lights -SRC=main.c logging.c adc.c pwm.c tmr.c pwmled.c gpio.c ambient.c pattern.c \ - buttons.c battery.c control.c +SRC=version.c main.c logging.c adc.c pwm.c tmr.c pwmled.c gpio.c ambient.c \ + pattern.c buttons.c battery.c control.c OBJ=$(SRC:.c=.o) @@ -63,5 +63,10 @@ objdump: $(PROGRAM).elf clean: rm -f $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s eeprom.raw -.PHONY: all clean dump_eeprom program program_flash program_eeprom objdump +version.c: + ./version.pl > version.c + +.PHONY: all clean dump_eeprom program program_flash program_eeprom objdump \ + version.c + diff --git a/firmware/version.pl b/firmware/version.pl new file mode 100755 index 0000000..4052844 --- /dev/null +++ b/firmware/version.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl -w + +use strict; +use POSIX qw(strftime); + +my $git = `git rev-parse --short HEAD`; +chomp $git; + +my $now = strftime('%Y%m%d', localtime(time)); + +print < + +unsigned char version[] EEMEM = { +EOF + +print hex2c($now, "date"); +print hex2c($git, "git revision"); + +print "};\n\n/* EOF - this file has not been truncated */\n\n"; + +sub hex2c { + my ($data, $comment) = @_; + + my $data1 = $data; + $data1 .= '0' if (length($data1) & 1 == 1); + $data1 =~ s/(..)/0x$1, /g; + return "\t$data1 /* $comment $data */\n"; +} + -- 2.43.5