adjust script to include user code

This commit is contained in:
2020-10-06 15:29:50 +02:00
parent f5831e083f
commit 19148125fe
10 changed files with 309 additions and 34 deletions

View File

@ -1,15 +0,0 @@
#!/usr/bin/perl -w
while (<>) {
print $_;
print "#include \"main2.h\";\n" if m/USER CODE BEGIN Includes/;
print " my_setup_1();\n" if m/USER CODE BEGIN 1/;
print " my_setup_2();\n" if m/USER CODE BEGIN 2/;
print " my_loop();\n" if m/USER CODE BEGIN 3/;
print " my_errorHandler();\n" if m/USER CODE BEGIN Error_Handler/;
print " while(1) { };\n" if m/USER CODE END Error_Handler/;
}

View File

@ -1,18 +1,56 @@
#!/bin/bash
MAIN_C=./Core/Src/main.c
MAIN_C_BAK=./Core/Src/main.c-bak
MAIN_C_BAK=${MAIN_C}-bak
if [ ! -f $MAIN_C ]; then
echo "no $MAIN_C available"
exit 1
fi
if [ -f $MAIN_C_BAK ]; then
echo "$MAIN_C_BAK already available, delete manually"
exit 1
fi
mv $MAIN_C $MAIN_C_BAK
cat $MAIN_C_BAK | ../tools/insertMyCode.pl > $MAIN_C
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
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,' | \
sed -e 's,\(/\* USER CODE BEGIN 1 \*/\),\1\n my_setup_1();\n,' | \
sed -e 's,\(/\* USER CODE BEGIN 2 \*/\),\1\n my_setup_2();\n,' | \
sed -e 's,\(/\* USER CODE BEGIN 3 \*/\),\1\n my_loop();\n,' | \
sed -e 's,\(/\* USER CODE BEGIN Error_Handler_Debug \*/\),\1\n my_errorHandler();\n,' | \
sed -e 's,\(/\* USER CODE END Error_Handler_Debug \*/\),\1\n while(1) { };\n,' >> $MAIN_C
SRC_EXT=''
for I in User/Src/*.c; do
SRC_EXT+="$I "
done
cp $MAKEFILE $MAKEFILE_BAK
echo "# $PROCESSED" > $MAKEFILE
cat $MAKEFILE_BAK | \
sed -e 's,\(C_SOURCES = \\\),\1\n'"$SRC_EXT"' \\,' | \
sed -e 's,\(C_INCLUDES = \\\),\1\n-IUser/Inc \\,' >> $MAKEFILE