Update configure
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 16 Jul 2015 01:16:52 +0000 (10:16 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 16 Jul 2015 01:51:24 +0000 (10:51 +0900)
ChangeLog
src/Makefile.in
src/adc_stm32f103.c
src/config.h.in
src/configure

index de22dc9..5ba4bec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-07-16  Niibe Yutaka  <gniibe@fsij.org>
+
+       * src/config.h.in (@TARGET_DEFINE@): Remove.
+       * src/configure [--with-dfu] (HEXOUTPUT_MAKE_OPTION): Enable .hex
+       output.
+
 2015-07-15  Niibe Yutaka  <gniibe@fsij.org>
 
        * src/usb_lld.h: Update from Gnuk.
 2015-07-15  Niibe Yutaka  <gniibe@fsij.org>
 
        * src/usb_lld.h: Update from Gnuk.
index 2efdf06..e5d5924 100644 (file)
@@ -13,6 +13,9 @@ CSRC = sys.c aes-constant-ft.c \
        main.c sha256.c neug.c usb_stm32f103.c adc_stm32f103.c
 
 @ENABLE_FRAUCHEKY@include $(FRAUCHEKY)/src.mk
        main.c sha256.c neug.c usb_stm32f103.c adc_stm32f103.c
 
 @ENABLE_FRAUCHEKY@include $(FRAUCHEKY)/src.mk
+
+@HEXOUTPUT_MAKE_OPTION@
+
 ###################################
 CROSS = arm-none-eabi-
 CC   = $(CROSS)gcc
 ###################################
 CROSS = arm-none-eabi-
 CC   = $(CROSS)gcc
index 356d96b..567df8d 100644 (file)
@@ -33,8 +33,6 @@
 #include "stm32f103.h"
 #include "adc.h"
 
 #include "stm32f103.h"
 #include "adc.h"
 
-#include "config.h"
-
 #define NEUG_CRC32_COUNTS 4
 
 #define STM32_ADC_ADC1_DMA_PRIORITY         2
 #define NEUG_CRC32_COUNTS 4
 
 #define STM32_ADC_ADC1_DMA_PRIORITY         2
index 7b74502..638595b 100644 (file)
@@ -1,5 +1,4 @@
 @DFU_DEFINE@
 @DFU_DEFINE@
-@TARGET_DEFINE@
 @SERIALNO_STR_LEN_DEFINE@
 @FRAUCHEKY_DEFINE@
 @FRAUCHEKY_MSC_DEFINE@
 @SERIALNO_STR_LEN_DEFINE@
 @FRAUCHEKY_DEFINE@
 @FRAUCHEKY_MSC_DEFINE@
index c4f1f3f..6718d40 100755 (executable)
@@ -23,9 +23,9 @@
 
 # Default settings
 help=no
 
 # Default settings
 help=no
+vidpid=none
 target=FST_01
 verbose=no
 target=FST_01
 verbose=no
-vidpid=none
 with_dfu=default
 debug=no
 sys1_compat=yes
 with_dfu=default
 debug=no
 sys1_compat=yes
@@ -53,12 +53,12 @@ for option; do
   case $option in
   -h | --help)
     help=yes ;;
   case $option in
   -h | --help)
     help=yes ;;
-  --target=*)
-    target=$optarg ;;
   -v | --verbose)
     verbose=yes ;;
   --vidpid=*)
     vidpid=$optarg ;;
   -v | --verbose)
     verbose=yes ;;
   --vidpid=*)
     vidpid=$optarg ;;
+  --target=*)
+    target=$optarg ;;
   --enable-sys1-compat)
     sys1_compat=yes ;;
   --disable-sys1-compat)
   --enable-sys1-compat)
     sys1_compat=yes ;;
   --disable-sys1-compat)
@@ -91,7 +91,7 @@ Configuration:
   -h, --help           display this help and exit      [no]
   --vidpid=VID:PID     specify vendor/product ID       [<NONE>]
   --target=TARGET      specify target                  [FST_01]
   -h, --help           display this help and exit      [no]
   --vidpid=VID:PID     specify vendor/product ID       [<NONE>]
   --target=TARGET      specify target                  [FST_01]
-                       supported targes are:
+                       supported targets are:
                           FST_01
                           STM8S_DISCOVERY
                           OLIMEX_STM32_H103
                           FST_01
                           STM8S_DISCOVERY
                           OLIMEX_STM32_H103
@@ -100,7 +100,7 @@ Configuration:
                           STBEE_MINI
                           MAPLE_MINI
                           CQ_STARM
                           STBEE_MINI
                           MAPLE_MINI
                           CQ_STARM
-                          FST_01_00  (unreleased version with 8MHz XTAL)
+                          FST_01_00 (unreleased version with 8MHz XTAL)
   --enable-sys1-compat enable SYS 1.0 compatibility    [yes]
                           executable is target dependent
   --disable-sys1-compat        disable SYS 1.0 compatibility   [no]
   --enable-sys1-compat enable SYS 1.0 compatibility    [yes]
                           executable is target dependent
   --disable-sys1-compat        disable SYS 1.0 compatibility   [no]
@@ -131,7 +131,6 @@ else
   FRAUCHEKY_MSC_DEFINE="#undef MSC_INTERFACE_NO"
 fi
 
   FRAUCHEKY_MSC_DEFINE="#undef MSC_INTERFACE_NO"
 fi
 
-TARGET_DEFINE="#define BOARD_$target 1"
 BOARD_HEADER_FILE=board-`echo $target | tr '_[:upper:]' '-[:lower:]'`.h
 echo Header file is: $BOARD_HEADER_FILE
 ln -sf ../chopstx/board/$BOARD_HEADER_FILE board.h
 BOARD_HEADER_FILE=board-`echo $target | tr '_[:upper:]' '-[:lower:]'`.h
 echo Header file is: $BOARD_HEADER_FILE
 ln -sf ../chopstx/board/$BOARD_HEADER_FILE board.h
@@ -170,14 +169,21 @@ esac
 
 # --with-dfu option
 if test "$with_dfu" = "yes"; then
 
 # --with-dfu option
 if test "$with_dfu" = "yes"; then
+  if test "$target" = "FST_01" -o "$target" = "FST_01_00"; then
+      echo "FST-01 doesn't have DFU loader, you should not use --with-dfu."
+      exit 1
+  fi
   echo "Configured for DFU"
   ORIGIN=0x08003000
   FLASH_SIZE=`expr $FLASH_SIZE - 12`
   DFU_DEFINE="#define DFU_SUPPORT 1"
   echo "Configured for DFU"
   ORIGIN=0x08003000
   FLASH_SIZE=`expr $FLASH_SIZE - 12`
   DFU_DEFINE="#define DFU_SUPPORT 1"
+  HEXOUTPUT_MAKE_OPTION="ENABLE_OUTPUT_HEX=yes"
 else
 else
+  with_dfu=no
   echo "Configured for bare system (no-DFU)"
   ORIGIN=0x08000000
   DFU_DEFINE="#undef DFU_SUPPORT"
   echo "Configured for bare system (no-DFU)"
   ORIGIN=0x08000000
   DFU_DEFINE="#undef DFU_SUPPORT"
+  HEXOUTPUT_MAKE_OPTION=""
 fi
 
 ### !!! Replace following string of "FSIJ" to yours !!! ####
 fi
 
 ### !!! Replace following string of "FSIJ" to yours !!! ####
@@ -186,7 +192,19 @@ SERIALNO="FSIJ-`cat ../VERSION | sed -e 's%^[^/]*/%%'`-"
 SERIALNO_STR_LEN_DEFINE="#define SERIALNO_STR_LEN ${#SERIALNO}"
 
 
 SERIALNO_STR_LEN_DEFINE="#define SERIALNO_STR_LEN ${#SERIALNO}"
 
 
-CONFIG="$target:dfu=$with_dfu"
+if test "$sys1_compat" = "yes"; then
+  CONFIG="$target:dfu=$with_dfu"
+else
+  if test "$with_dfu" = "yes"; then
+    echo "Common binary can't support DFU loader, don't use --with-dfu."
+    exit 1
+  fi
+  # Override settings for common binary.  Safer side.
+  FLASH_PAGE_SIZE=2048
+  FLASH_SIZE=128
+  MEMORY_SIZE=20
+  CONFIG="common"
+fi
 
 output_vid_pid_version () {
   echo $VIDPID | sed -n -e "s%^\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\):\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\)$%  0x\2, 0x\1, /* idVendor  */\n  0x\4, 0x\3, /* idProduct */%p"
 
 output_vid_pid_version () {
   echo $VIDPID | sed -n -e "s%^\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\):\([0-9a-f][0-9a-f]\)\([0-9a-f][0-9a-f]\)$%  0x\2, 0x\1, /* idVendor  */\n  0x\4, 0x\3, /* idProduct */%p"
@@ -220,6 +238,20 @@ output_vendor_product_serial_strings () {
   echo "  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,"
   echo "  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,"
   echo '};'
   echo "  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,"
   echo "  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,"
   echo '};'
+  echo
+  echo "static const uint8_t ${prefix}revision_detail[] = {"
+  echo "  ${#REVISION}*2+2,                    /* bLength */"
+  echo "  USB_STRING_DESCRIPTOR_TYPE,  /* bDescriptorType */"
+  echo "  /* revision detail: \"$REVISION\" */"
+  echo $REVISION | sed -n -e "s/\(........\)/\1\n/gp" | sed -n -e "s/\(.\)/'\1', 0, /g" -e "s/^/  /" -e "s/ $//p"
+  echo '};'
+  echo
+  echo "static const uint8_t ${prefix}config_options[] = {"
+  echo "  ${#CONFIG}*2+2,                      /* bLength */"
+  echo "  USB_STRING_DESCRIPTOR_TYPE,  /* bDescriptorType */"
+  echo "  /* configure options: \"$CONFIG\" */"
+  echo $CONFIG | sed -n -e "s/\(........\)/\1\n/gp" | sed -n -e "s/\(.\)/'\1', 0, /g" -e "s/^/  /" -e "s/ $//p"
+  echo '};'
   fi
 }
 
   fi
 }
 
@@ -227,22 +259,7 @@ if !(IFS=" "
   while read VIDPID VERSION PRODUCT VENDOR; do
     if test "$vidpid" = "$VIDPID"; then
       output_vid_pid_version > usb-vid-pid-ver.c.inc
   while read VIDPID VERSION PRODUCT VENDOR; do
     if test "$vidpid" = "$VIDPID"; then
       output_vid_pid_version > usb-vid-pid-ver.c.inc
-      (output_vendor_product_serial_strings neug_
-       echo
-       echo 'static const uint8_t neug_revision_detail[] = {'
-       echo "  ${#REVISION}*2+2,                       /* bLength */"
-       echo "  USB_STRING_DESCRIPTOR_TYPE,     /* bDescriptorType */"
-       echo "  /* revision detail: \"$REVISION\" */"
-       echo $REVISION | sed -n -e "s/\(........\)/\1\n/gp" | sed -n -e "s/\(.\)/'\1', 0, /g" -e "s/^/  /" -e "s/ $//p"
-       echo '};'
-       echo
-       echo 'static const uint8_t neug_config_options[] = {'
-       echo "  ${#CONFIG}*2+2,                 /* bLength */"
-       echo "  USB_STRING_DESCRIPTOR_TYPE,     /* bDescriptorType */"
-       echo "  /* configure options: \"$CONFIG\" */"
-       echo $CONFIG | sed -n -e "s/\(........\)/\1\n/gp" | sed -n -e "s/\(.\)/'\1', 0, /g" -e "s/^/  /" -e "s/ $//p"
-       echo '};'
-       ) >usb-strings.c.inc
+      output_vendor_product_serial_strings neug_ >usb-strings.c.inc
       exit 0
     elif test "$with_fraucheky" = "$VIDPID"; then
       output_vid_pid_version > fraucheky-vid-pid-ver.c.inc
       exit 0
     elif test "$with_fraucheky" = "$VIDPID"; then
       output_vid_pid_version > fraucheky-vid-pid-ver.c.inc
@@ -268,13 +285,13 @@ fi
 
 sed -e "s%@HAVE_SYS_H@%$have_sys_h%" \
     -e "s%@ENABLE_FRAUCHEKY@%$ENABLE_FRAUCHEKY%" \
 
 sed -e "s%@HAVE_SYS_H@%$have_sys_h%" \
     -e "s%@ENABLE_FRAUCHEKY@%$ENABLE_FRAUCHEKY%" \
+    -e "s%@HEXOUTPUT_MAKE_OPTION@%$HEXOUTPUT_MAKE_OPTION%" \
        < Makefile.in > Makefile
 sed -e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
     -e "s/@MEMORY_SIZE@/$MEMORY_SIZE/" \
     -e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
        < neug.ld.in > neug.ld
 sed -e "s/@DFU_DEFINE@/$DFU_DEFINE/" \
        < Makefile.in > Makefile
 sed -e "s/@ORIGIN@/$ORIGIN/" -e "s/@FLASH_SIZE@/$FLASH_SIZE/" \
     -e "s/@MEMORY_SIZE@/$MEMORY_SIZE/" \
     -e "s/@FLASH_PAGE_SIZE@/$FLASH_PAGE_SIZE/" \
        < neug.ld.in > neug.ld
 sed -e "s/@DFU_DEFINE@/$DFU_DEFINE/" \
-    -e "s/@TARGET_DEFINE@/$TARGET_DEFINE/" \
     -e "s/@SERIALNO_STR_LEN_DEFINE@/$SERIALNO_STR_LEN_DEFINE/" \
     -e "s/@FRAUCHEKY_DEFINE@/$FRAUCHEKY_DEFINE/" \
     -e "s/@FRAUCHEKY_MSC_DEFINE@/$FRAUCHEKY_MSC_DEFINE/" \
     -e "s/@SERIALNO_STR_LEN_DEFINE@/$SERIALNO_STR_LEN_DEFINE/" \
     -e "s/@FRAUCHEKY_DEFINE@/$FRAUCHEKY_DEFINE/" \
     -e "s/@FRAUCHEKY_MSC_DEFINE@/$FRAUCHEKY_MSC_DEFINE/" \