aboutsummaryrefslogtreecommitdiff
path: root/bin/build.sh
diff options
context:
space:
mode:
authorSelene ToyKeeper2023-11-04 16:14:16 -0600
committerSelene ToyKeeper2023-11-04 16:14:16 -0600
commitb118fb6b2689889e93bf3be2f62e4a3d4d50181c (patch)
treeb4aefbd2f4dcc25a38dd85abca47186c837ab261 /bin/build.sh
parent@hank-*-boost: reduced ripple on low modes (diff)
downloadanduril-b118fb6b2689889e93bf3be2f62e4a3d4d50181c.tar.gz
anduril-b118fb6b2689889e93bf3be2f62e4a3d4d50181c.tar.bz2
anduril-b118fb6b2689889e93bf3be2f62e4a3d4d50181c.zip
improved DFP setup and support:
- `./make dfp` downloads and installs Atmel DFPs for each supported MCU - build.sh detects and uses attiny or avrdd, and others are simple to add - updated setup info in /README.md ... also some other small documentation updates.
Diffstat (limited to 'bin/build.sh')
-rwxr-xr-xbin/build.sh31
1 files changed, 18 insertions, 13 deletions
diff --git a/bin/build.sh b/bin/build.sh
index 8743260..50f93b7 100755
--- a/bin/build.sh
+++ b/bin/build.sh
@@ -13,6 +13,9 @@ if [ -z "$1" ]; then
exit
fi
+# repo root dir
+BASEDIR=$(dirname $(dirname "$0"))
+
TARGET=$1 ; shift
UI=$(basename $TARGET .h)
MODEL=$(dirname $TARGET)
@@ -24,24 +27,26 @@ MODEL_NUMBER=$(head -1 $MODEL/model)
# figure out the MCU type and set some vars
eval $( bin/detect-mcu.sh "$TARGET" )
-# TODO: add support for AVR DD
-# give a more useful error message when AVR DFP is needed but not installed
-# (Atmel ATtiny device family pack, for attiny1616 support)
-# http://packs.download.atmel.com/
-#if [ -z "$ATTINY_DFP" ]; then export ATTINY_DFP=~/avr/attiny_dfp ; fi
-SERIES1=' 416 417 816 817 1616 1617 3216 3217 '
-if [[ $SERIES1 =~ " $ATTINY " ]]; then
- if [ -z "$ATTINY_DFP" ]; then
- echo "ATtiny$ATTINY support requires Atmel attiny device family pack."
- echo "More info is in /README under tiny1616 support."
- exit 1
- fi
+# detect and enable a relevant Atmel DFP
+if [[ $MCUNAME =~ "attiny" ]]; then
+ DFPPATH=$BASEDIR/arch/dfp/attiny
+elif [[ $MCUNAME =~ "avr" && $MCUNAME =~ "dd" ]]; then
+ DFPPATH=$BASEDIR/arch/dfp/avrdd
+else
+ echo "Unrecognized MCU type: '$MCUNAME'"
+ exit 1
+fi
+# ensure the DFP files exist
+if [ ! -d "$DFPPATH" ]; then
+ echo "Atmel DFP files not found: '$DFPPATH'"
+ echo "Install DFP files with './make dfp'"
+ exit 1
fi
export CC=avr-gcc
export CPP=avr-cpp
export OBJCOPY=avr-objcopy
-export DFPFLAGS="-B $ATTINY_DFP/gcc/dev/$MCUNAME/ -I $ATTINY_DFP/include/"
+export DFPFLAGS="-B $DFPPATH/gcc/dev/$MCUNAME/ -I $DFPPATH/include/"
# TODO: include $user/ first so it can override other stuff
INCLUDES="-I ui -I hw -I. -I.. -I../.. -I../../.."
export CFLAGS=" -Wall -g -Os -mmcu=$MCUNAME -c -std=gnu99 -fgnu89-inline -fwhole-program $MCUFLAGS $INCLUDES -fshort-enums $DFPFLAGS"