#!/bin/bash MAIN_C=./Core/Src/main.c MAIN_C_BAK=${MAIN_C}-bak IT_C=./Core/Src/stm32f1xx_it.c IT_C_BAK=${IT_C}-bak # MAKEFILE=./Makefile # MAKEFILE_BAK=${MAKEFILE}-bak PROCESSED="Processed by $0" checkFile () { FILE=$1 BAK_FILE=$2 if [ ! -f $FILE ]; then echo "no $FILE available" exit 1 fi if [ -f $BAK_FILE ]; then echo "$BAK_FILE already available, delete manually" exit 1 fi grep -q "$PROCESSED" $FILE if [ "$?" = "0" ]; then echo "$FILE has already been processed" exit 1 fi } checkFile $MAIN_C $MAIN_C_BAK # checkFile $MAKEFILE $MAKEFILE_BAK checkFile $IT_C $IT_C_BAK cp $MAIN_C $MAIN_C_BAK echo "// $PROCESSED" > $MAIN_C cat $MAIN_C_BAK | \ sed -e 's,\(/\* USER CODE BEGIN Includes \*/\),\1\n#include "main2.h"\n,' \ -e 's,\(/\* USER CODE BEGIN 1 \*/\),\1\n my_setup_1();\n,' \ -e 's,\(/\* USER CODE BEGIN 2 \*/\),\1\n my_setup_2();\n,' \ -e 's,\(/\* USER CODE BEGIN 3 \*/\),\1\n my_loop();\n,' \ -e 's,\(/\* USER CODE BEGIN Error_Handler_Debug \*/\),\1\n my_errorHandler();\n,' \ -e 's,\(/\* USER CODE END Error_Handler_Debug \*/\),\1\n while(1) { };\n,' \ >> $MAIN_C cp $IT_C $IT_C_BAK echo "// $PROCESSED" > $IT_C cat $IT_C_BAK | \ sed -e 's,\(/\* USER CODE BEGIN Includes \*/\),\1\n#include "main2.h"\n,' \ -e 's,\(/\* USER CODE BEGIN SysTick_IRQn 1 \*/\),\1\n SYSTICK_Callback();\n,' \ >> $IT_C SRC_EXT='' for I in User/Src/*.c; do SRC_EXT+="$I " done for I in hottislib/*.c; do SRC_EXT+="$I " done # cp $MAKEFILE $MAKEFILE_BAK # echo "# $PROCESSED" > $MAKEFILE # cat $MAKEFILE_BAK | \ # sed -e 's/\(-specs=nano.specs\)/\1 -u _printf_float/' \ # -e 's/\(-Wall\)/\1 -Werror/' \ # -e 's%\(# list of ASM program objects\)%OBJECTS += $(addprefix $(BUILD_DIR)/,w5500.a)\n\1%' \ # -e 's,\($(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)\),$(BUILD_DIR)/w5500.a:\n\t(cd ioLibrary_Driver \&\& $(MAKE) \&\& cp w5500.a ../$(BUILD_DIR) \&\& cd ..)\n\n\1,' \ # -e 's,\(C_SOURCES = \\\),\1\n'"$SRC_EXT"' \\,' \ # -e 's,\(C_INCLUDES = \\\),\1\n-IioLibrary_Driver/Ethernet \\,' \ # -e 's,\(C_INCLUDES = \\\),\1\n-IioLibrary_Driver/Internet/DHCP \\,' \ # -e 's,\(C_INCLUDES = \\\),\1\n-IioLibrary_Driver/Internet/DNS \\,' \ # -e 's,\(C_INCLUDES = \\\),\1\n-IioLibrary_Driver/Internet/SNTP \\,' \ # -e 's,\(C_INCLUDES = \\\),\1\n-IUser/Inc \\,' \ # -e 's,\(C_INCLUDES = \\\),\1\n-Ihottislib \\,' \ # >> $MAKEFILE cp Makefile.sav Makefile