]> jspc29.x-matter.uni-frankfurt.de Git - mvd_firmware.git/commitdiff
added compile time feature
authorMichael Wiebusch <antiquark@gmx.net>
Tue, 10 Jun 2014 09:46:11 +0000 (11:46 +0200)
committerMichael Wiebusch <antiquark@gmx.net>
Tue, 10 Jun 2014 09:46:11 +0000 (11:46 +0200)
firmware/Makefile
firmware/src/CB_functions.c
firmware/src/Makefile
firmware/src/main.c
firmware/src/version.c [new file with mode: 0644]
firmware/src/version.h [new file with mode: 0644]
firmware/src/version.sh [new file with mode: 0755]

index 7a483d64672329c97f01acfcbcc9447966a90f0c..0e71bd370dcc6a06ca558eb8bf6c28e278111c42 100644 (file)
@@ -45,7 +45,7 @@ remote_swd: all
        scp main.hex root@jspc55:/local.1/mwiebusch/stm32/ && ssh root@jspc57 "vsprog -cstm32_hd -ms -oe -owf -I /d/jspc55.1/mwiebusch/stm32/main.hex"
        
 remote_program: all
-       scp main.bin root@jspc55:/local.1/mwiebusch/stm32/ && ssh root@jspc57 "st-flash write /d/jspc55.1/mwiebusch/stm32/main.bin 0x8000000"
+       scp main.bin maps@jspc57:/local/trbsoft/mvd_firmware/ && ssh maps@jspc57 "st-flash write /local/trbsoft/mvd_firmware/main.bin 0x8000000"
 
 program_jan: all
        ssh hadaq@jspc57 "st-flash write /d/jspc22/trb/git/mvd_firmware/firmware/main.bin 0x8000000"
index 581103310dbd2e73125112aabcde6a7ee50b9296..b3b7c1da69a495da9cf4056ab64dc3fad67e8e66 100644 (file)
@@ -280,10 +280,13 @@ void decode_register(uint8_t addr) {
       break;
     case 0x2: //DAC CurLimA 0
       usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (0<<12));
+      break;
     case 0x3: //DAC CurLimD 0
       usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (1<<12));
+      break;
     case 0x4: //DAC VClp 0
       usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (2<<12));
+      break;
       
     case 0x6: // Switches1
       CB_GPIO_Out(ENAA1,*thisRegister & 1<<5);
@@ -295,24 +298,32 @@ void decode_register(uint8_t addr) {
       break;
     case 0x7: //DAC CurLimA 1
       usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (4<<12));
+      break;
     case 0x8: //DAC CurLimD 1
       usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (5<<12));
+      break;
     case 0x9: //DAC VClp 1
       usart3_word_to_dac(((*thisRegister&0xFFFF)>>4) | (6<<12));
-     
-    case 0xF: //SPI Debug
-      
-//       // ADC0 Test block
-//       adc_conv0_pulse();
-//       delay_us(4); // wait conversion time
-//       spi1_writeWord(*thisRegister);
-//       delay_ms(2);
-//       uC_regs[0x10]=spi1DataBuffer[0];
-//       report_register(0x10);
-      
-      adc0_read();
+      break;
       
+    case 0xF: //CompileDate register (ro)
       break;
+    case 0x10: //CompileTime register (ro)
+      break;
+     
+//     case 0xF: //SPI Debug
+//       
+// //       // ADC0 Test block
+// //       adc_conv0_pulse();
+// //       delay_us(4); // wait conversion time
+// //       spi1_writeWord(*thisRegister);
+// //       delay_ms(2);
+// //       uC_regs[0x10]=spi1DataBuffer[0];
+// //       report_register(0x10);
+//       
+//       adc0_read();
+//       
+//       break;
       
     case 0x11: // LEDs
       if(*thisRegister & 1<<7) {
index b2f3c20e6560bd63bd828a5cc1af039fd100d992..00c6d12ffc4517f77fc3f07e5f428257eb09a7df 100644 (file)
@@ -11,17 +11,22 @@ OBJS+=spi2.o
 OBJS+=spi3.o
 OBJS+=dac.o
 OBJS+=misc_utils.o
+OBJS+=version.o
 
 # OBJS+=keypins.o
 
 
-all: src 
+all: src
 
 src: app.a 
 
-app.a: $(OBJS) 
+app.a: version $(OBJS)
        $(AR) cr app.a $(OBJS) 
 
 .PHONY: src clean 
 clean: 
        rm -f app.a $(OBJS)
+       
+.PHONY:
+version:
+       ./version.sh
index aee65c32dc4823cbf9f22857f40d70256acd1147..310b1389ae6c37c0deed4784ecc36727084796df 100644 (file)
@@ -21,7 +21,7 @@
 #include "dac.h"
 #include "periph_conf.h"
 #include "misc_utils.h"
-
+#include "version.h"
 
 
 
@@ -73,6 +73,8 @@ int main(int argc, char *argv[]) {
   CB_GPIO_Out_Hi(LED4);
   uC_regs[0x0b] |= 1; // enable cyclic ADC readout by default
   
+  write_timestamp(); // write compile time and date to dedicated registers
+  
   report_all_registers();
 
   while(1) {
diff --git a/firmware/src/version.c b/firmware/src/version.c
new file mode 100644 (file)
index 0000000..41e687e
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ ********************************************************
+ * 
+ *  version control timestamp file
+ * 
+ ********************************************************
+ */
+
+#include "stm32f10x.h"
+#include "stm32f10x_conf.h" // contains all std periph includes
+#include "core_cm3.h"
+
+#include "version.h"
+
+extern uint16_t uC_regs[];
+
+
+void write_timestamp(void){
+  
+  // timestamp constants are loaded from version.h
+  // write compilation date to dedicated register
+  uC_regs[0x0F] = (COMPILE_YEAR<<9) | (COMPILE_MONTH<<5) | (COMPILE_DAY);
+  // write compilation time to dedicated register
+  uC_regs[0x10] = (COMPILE_HOUR<<6) | (COMPILE_MINUTE);
+  
+}
+
diff --git a/firmware/src/version.h b/firmware/src/version.h
new file mode 100644 (file)
index 0000000..f3ef0b9
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+ ********************************************************
+ * 
+ *  version control timestamp file
+ *  (do not edit by hand, this file is created during make)
+ * 
+ ********************************************************
+ */
+
+#define COMPILE_YEAR   14
+#define COMPILE_MONTH  06
+#define COMPILE_DAY    10
+#define COMPILE_HOUR   11
+#define COMPILE_MINUTE 42
+
+void write_timestamp(void);
+
diff --git a/firmware/src/version.sh b/firmware/src/version.sh
new file mode 100755 (executable)
index 0000000..ecde1c7
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# generate some constants that define the compile time of the firmware
+# so we get some version control
+
+
+cat <<EOF > version.h
+/**
+ ********************************************************
+ * 
+ *  version control timestamp file
+ *  (do not edit by hand, this file is created during make)
+ * 
+ ********************************************************
+ */
+
+#define COMPILE_YEAR   $(date '+%y')
+#define COMPILE_MONTH  $(date '+%m')
+#define COMPILE_DAY    $(date '+%d')
+#define COMPILE_HOUR   $(date '+%H')
+#define COMPILE_MINUTE $(date '+%M')
+
+void write_timestamp(void);
+
+EOF
+touch version.c
\ No newline at end of file