From eea6dad0aef56aea4687f680eb3c8773ec8ec650 Mon Sep 17 00:00:00 2001 From: WestfW Date: Sat, 6 Oct 2018 23:02:05 -0700 Subject: [PATCH 1/4] Fix ATtiny828; proper USART conditionals in pin_defs.h, remove infinite recursion for "make attiny828at8" --- optiboot/bootloaders/optiboot/Makefile.tiny | 2 +- optiboot/bootloaders/optiboot/makeall.tiny.sh | 2 ++ optiboot/bootloaders/optiboot/pin_defs.h | 24 ++++++++++++------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/optiboot/bootloaders/optiboot/Makefile.tiny b/optiboot/bootloaders/optiboot/Makefile.tiny index 8cc8452..27920a2 100644 --- a/optiboot/bootloaders/optiboot/Makefile.tiny +++ b/optiboot/bootloaders/optiboot/Makefile.tiny @@ -346,7 +346,7 @@ endif attiny828at8: - $(MAKE) attiny828at8 AVR_FREQ=8000000L BAUD_RATE=57600 + $(MAKE) attiny828 AVR_FREQ=8000000L BAUD_RATE=57600 mv $(PROGRAM)_attiny828.hex $(PROGRAM)_$@.hex ifndef PRODUCTION mv $(PROGRAM)_attiny828.lst $(PROGRAM)_$@.lst diff --git a/optiboot/bootloaders/optiboot/makeall.tiny.sh b/optiboot/bootloaders/optiboot/makeall.tiny.sh index 94cf955..79c7486 100755 --- a/optiboot/bootloaders/optiboot/makeall.tiny.sh +++ b/optiboot/bootloaders/optiboot/makeall.tiny.sh @@ -42,3 +42,5 @@ make attiny841at8ser1 $* make attiny841at20noLED $* make attiny841at16noLED $* make attiny841at8noLED $* + +make attiny828at8 $* diff --git a/optiboot/bootloaders/optiboot/pin_defs.h b/optiboot/bootloaders/optiboot/pin_defs.h index c34eaed..5e9520f 100644 --- a/optiboot/bootloaders/optiboot/pin_defs.h +++ b/optiboot/bootloaders/optiboot/pin_defs.h @@ -43,19 +43,27 @@ * differently. */ #if UART == 0 - #if defined(LINDAT) -#define LIN_UART 1 -#define UART_SRA UCSRA -#define UART_SRB UCSRB -#define UART_SRC UCSRC -#define UART_SRL UBRRL -#define UART_UDR LINDAT - #else +#if defined(UDR0) # define UART_SRA UCSR0A # define UART_SRB UCSR0B # define UART_SRC UCSR0C # define UART_SRL UBRR0L # define UART_UDR UDR0 +#elif defined(UDR) +# define UART_SRA UCSRA +# define UART_SRB UCSRB +# define UART_SRC UCSRC +# define UART_SRL UBRRL +# define UART_UDR UDR +#elif defined(LINDAT) +# define LIN_UART 1 +# define UART_SRA UCSRA +# define UART_SRB UCSRB +# define UART_SRC UCSRC +# define UART_SRL UBRRL +# define UART_UDR LINDAT +#else +# error UART == 0, but no UART0 on device #endif #elif UART == 1 #if !defined(UDR1) From 8fe96eac33327916f5732e505a1a541949730deb Mon Sep 17 00:00:00 2001 From: majekw Date: Mon, 8 Oct 2018 18:07:21 +0200 Subject: [PATCH 2/4] Travis-ci: use avr-gcc 5.4.0, update targets - use avr-gcc 5.4.0 shipped with Arduino 1.8.7 as it's the only one that supports PB chips - added new targets (mostly ATtiny chips) - generate comparison with emoji by default - update allow_failures --- .travis.yml | 169 ++++++++++++++++++++++------------ docs/arduino-gcc-versions.md | 2 + scripts/travis-check-sizes.sh | 2 +- 3 files changed, 114 insertions(+), 59 deletions(-) diff --git a/.travis.yml b/.travis.yml index b531b68..b79f72e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,14 +17,122 @@ env: # - TOOLS_VERSION=1.6.9 # - TOOLS_VERSION=1.6.13 # - TOOLS_VERSION=1.8.5 - - TOOLS_VERSION=microchip + - TOOLS_VERSION=1.8.7 +# - TOOLS_VERSION=microchip matrix: + - OPTIBOOT_TARGET=atmega128 + - OPTIBOOT_TARGET=atmega1280 + - OPTIBOOT_TARGET=atmega1281 + - OPTIBOOT_TARGET=atmega1284 + - OPTIBOOT_TARGET=atmega1284p + - OPTIBOOT_TARGET=atmega128a + - OPTIBOOT_TARGET=atmega16 + - OPTIBOOT_TARGET=atmega162 + - OPTIBOOT_TARGET=atmega164 + - OPTIBOOT_TARGET=atmega164a + - OPTIBOOT_TARGET=atmega164p + - OPTIBOOT_TARGET=atmega164pa + - OPTIBOOT_TARGET=atmega168 + - OPTIBOOT_TARGET=atmega168a + - OPTIBOOT_TARGET=atmega168p + - OPTIBOOT_TARGET=atmega168pa + - OPTIBOOT_TARGET="atmega168pb LED=B5" + - OPTIBOOT_TARGET=atmega169 + - OPTIBOOT_TARGET=atmega169a + - OPTIBOOT_TARGET=atmega169p + - OPTIBOOT_TARGET=atmega169pa + - OPTIBOOT_TARGET=atmega16a + - OPTIBOOT_TARGET=atmega2560 + - OPTIBOOT_TARGET=atmega2561 + - OPTIBOOT_TARGET=atmega32 + - OPTIBOOT_TARGET=atmega324 + - OPTIBOOT_TARGET=atmega324a + - OPTIBOOT_TARGET=atmega324p + - OPTIBOOT_TARGET=atmega324pa + - OPTIBOOT_TARGET=atmega324pb + - OPTIBOOT_TARGET=atmega328 + - OPTIBOOT_TARGET=atmega328_pro8 + - OPTIBOOT_TARGET="atmega328 BIGBOOT=1" + - OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0 LED_START_ON=1 SUPPORT_EEPROM=1" + - OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0 SUPPORT_EEPROM=1" + - OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0" + - OPTIBOOT_TARGET="atmega328 SOFT_UART=1" + - OPTIBOOT_TARGET="atmega328pb LED=B5" + - OPTIBOOT_TARGET=atmega329 + - OPTIBOOT_TARGET=atmega3290 + - OPTIBOOT_TARGET=atmega3290p + - OPTIBOOT_TARGET=atmega3290pa + - OPTIBOOT_TARGET=atmega329a + - OPTIBOOT_TARGET=atmega329p + - OPTIBOOT_TARGET=atmega329pa + - OPTIBOOT_TARGET=atmega64 + - OPTIBOOT_TARGET=atmega640 + - OPTIBOOT_TARGET=atmega644p + - OPTIBOOT_TARGET=atmega649 + - OPTIBOOT_TARGET=atmega6490 + - OPTIBOOT_TARGET=atmega6490p + - OPTIBOOT_TARGET=atmega649p + - OPTIBOOT_TARGET=atmega64a + - OPTIBOOT_TARGET=atmega8 + - OPTIBOOT_TARGET=atmega8515 + - OPTIBOOT_TARGET=atmega8535 + - OPTIBOOT_TARGET=atmega88 + - OPTIBOOT_TARGET="atmega88p LED=B5" + - OPTIBOOT_TARGET="atmega88pa LED=B5" + - OPTIBOOT_TARGET="atmega88pb LED=B5" + - OPTIBOOT_TARGET=attiny1634 + - OPTIBOOT_TARGET=attiny1634at110 + - OPTIBOOT_TARGET=attiny1634at110ser1 + - OPTIBOOT_TARGET=attiny1634at12 + - OPTIBOOT_TARGET=attiny1634at12ser1 + - OPTIBOOT_TARGET=attiny1634at147 + - OPTIBOOT_TARGET=attiny1634at147ser1 + - OPTIBOOT_TARGET=attiny1634at16 + - OPTIBOOT_TARGET=attiny1634at16ser1 + - OPTIBOOT_TARGET=attiny1634at737 + - OPTIBOOT_TARGET=attiny1634at737ser1 + - OPTIBOOT_TARGET=attiny1634at8 + - OPTIBOOT_TARGET=attiny1634at8_5v + - OPTIBOOT_TARGET=attiny1634at8_5vser1 + - OPTIBOOT_TARGET=attiny1634at8ser1 + - OPTIBOOT_TARGET=attiny1634at921 + - OPTIBOOT_TARGET=attiny1634at921ser1 + - OPTIBOOT_TARGET=attiny167 + - OPTIBOOT_TARGET=attiny828 + - OPTIBOOT_TARGET=attiny828at8 + - OPTIBOOT_TARGET=attiny828at8_5v + - OPTIBOOT_TARGET=attiny84 + - OPTIBOOT_TARGET=attiny841 + - OPTIBOOT_TARGET=attiny841at110 + - OPTIBOOT_TARGET=attiny841at110ser1 + - OPTIBOOT_TARGET=attiny841at12 + - OPTIBOOT_TARGET=attiny841at12ser1 + - OPTIBOOT_TARGET=attiny841at147 + - OPTIBOOT_TARGET=attiny841at147ser1 + - OPTIBOOT_TARGET=attiny841at16 + - OPTIBOOT_TARGET=attiny841at16noLED + - OPTIBOOT_TARGET=attiny841at16ser1 + - OPTIBOOT_TARGET=attiny841at184 + - OPTIBOOT_TARGET=attiny841at184ser1 + - OPTIBOOT_TARGET=attiny841at20 + - OPTIBOOT_TARGET=attiny841at20noLED + - OPTIBOOT_TARGET=attiny841at20ser1 + - OPTIBOOT_TARGET=attiny841at737 + - OPTIBOOT_TARGET=attiny841at737ser1 + - OPTIBOOT_TARGET=attiny841at8 + - OPTIBOOT_TARGET=attiny841at8_5v + - OPTIBOOT_TARGET=attiny841at8noLED + - OPTIBOOT_TARGET=attiny841at8ser1 + - OPTIBOOT_TARGET=attiny841at921 + - OPTIBOOT_TARGET=attiny841at921ser1 + - OPTIBOOT_TARGET=attiny87 - OPTIBOOT_TARGET=bobuino - OPTIBOOT_TARGET=diecimila - OPTIBOOT_TARGET=lilypad - OPTIBOOT_TARGET=lilypad_resonator - OPTIBOOT_TARGET=luminet - OPTIBOOT_TARGET=mega1280 + - OPTIBOOT_TARGET=mega2560 - OPTIBOOT_TARGET=mighty1284 - OPTIBOOT_TARGET=pro16 - OPTIBOOT_TARGET=pro20 @@ -38,66 +146,11 @@ env: - OPTIBOOT_TARGET=xplained168pb - OPTIBOOT_TARGET=xplained328p - OPTIBOOT_TARGET=xplained328pb - - OPTIBOOT_TARGET=atmega1280 - - OPTIBOOT_TARGET=atmega1284 - - OPTIBOOT_TARGET=atmega1284p - - OPTIBOOT_TARGET=atmega16 - - OPTIBOOT_TARGET=atmega168 - - OPTIBOOT_TARGET=atmega168p - - OPTIBOOT_TARGET=atmega32 - - OPTIBOOT_TARGET=atmega328 - - OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0" - - OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0 SUPPORT_EEPROM=1" - - OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0 LED_START_ON=1 SUPPORT_EEPROM=1" - - OPTIBOOT_TARGET="atmega328 SOFT_UART=1" - - OPTIBOOT_TARGET="atmega328 BIGBOOT=1" - - OPTIBOOT_TARGET=atmega328_pro8 - - OPTIBOOT_TARGET=atmega644p - - OPTIBOOT_TARGET=atmega8 - - OPTIBOOT_TARGET=atmega88 - - OPTIBOOT_TARGET=attiny84 - - OPTIBOOT_TARGET=attiny1634 - - OPTIBOOT_TARGET=attiny841 - - OPTIBOOT_TARGET=attiny828 - - OPTIBOOT_TARGET=atmega2560 - - OPTIBOOT_TARGET=mega2560 - - OPTIBOOT_TARGET="atmega64" - - OPTIBOOT_TARGET="atmega88p LED=B5" - - OPTIBOOT_TARGET="atmega88pb LED=B5" - - OPTIBOOT_TARGET=atmega128 - - OPTIBOOT_TARGET=atmega162 - - OPTIBOOT_TARGET=atmega164a - - OPTIBOOT_TARGET=atmega164p - - OPTIBOOT_TARGET="atmega168pb LED=B5" - - OPTIBOOT_TARGET=atmega169 - - OPTIBOOT_TARGET=atmega169p - - OPTIBOOT_TARGET=atmega324a - - OPTIBOOT_TARGET=atmega324p - - OPTIBOOT_TARGET=atmega324pa - - OPTIBOOT_TARGET=atmega324pb - - OPTIBOOT_TARGET="atmega328pb LED=B5" - - OPTIBOOT_TARGET=atmega329 - - OPTIBOOT_TARGET=atmega329p - - OPTIBOOT_TARGET=atmega640 - - OPTIBOOT_TARGET=atmega644p - - OPTIBOOT_TARGET=atmega649 - - OPTIBOOT_TARGET=atmega649p - - OPTIBOOT_TARGET=atmega1281 - - OPTIBOOT_TARGET=atmega2561 - - OPTIBOOT_TARGET=atmega3290 - - OPTIBOOT_TARGET=atmega3290p - - OPTIBOOT_TARGET=atmega6490 - - OPTIBOOT_TARGET=atmega6490p - - OPTIBOOT_TARGET=atmega8515 - - OPTIBOOT_TARGET=atmega8535 - - OPTIBOOT_TARGET=attiny167 - - OPTIBOOT_TARGET=attiny87 matrix: allow_failures: - - env: OPTIBOOT_TARGET=attiny828 - - env: OPTIBOOT_TARGET=atmega324pb - - env: OPTIBOOT_TARGET="atmega328pb LED=B5" + - env: OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0 LED_START_ON=1 SUPPORT_EEPROM=1" + - env: OPTIBOOT_TARGET="atmega328 LED_START_FLASHES=0 SUPPORT_EEPROM=1" script: scripts/travis-build.sh $TOOLS_VERSION $OPTIBOOT_TARGET diff --git a/docs/arduino-gcc-versions.md b/docs/arduino-gcc-versions.md index 2ba6ca7..09805ca 100644 --- a/docs/arduino-gcc-versions.md +++ b/docs/arduino-gcc-versions.md @@ -40,3 +40,5 @@ based on Linux versions. |1.8.3 |4.9.2 |same as 1.8.2| | |1.8.4 |4.9.2 |same as 1.8.2| | |1.8.5 |4.9.2 |same as 1.8.2| yes | +|1.8.6 |5.4.0 |new toolchains, added ATmega328PB and ATmega324PB among others| | +|1.8.7 |5.4.0 |same as 1.8.6| yes | diff --git a/scripts/travis-check-sizes.sh b/scripts/travis-check-sizes.sh index 6f2c3d4..3747cc1 100755 --- a/scripts/travis-check-sizes.sh +++ b/scripts/travis-check-sizes.sh @@ -46,7 +46,7 @@ else fi # start json -echo "{\"slug\":\"$REPO\",\"branch\":\"$BRANCH\",\"commit\":\"$TRAVIS_COMMIT\",\"emoji\":\"false\",\"builds\":[" >"$OUTPUT_JSON" +echo "{\"slug\":\"$REPO\",\"branch\":\"$BRANCH\",\"commit\":\"$TRAVIS_COMMIT\",\"emoji\":\"true\",\"builds\":[" >"$OUTPUT_JSON" # build everything cat $TRAVIS_BUILD_DIR/.travis.yml|grep " - OPTIBOOT_TARGET="|cut -f 2- -d '=' \ From 5d40a2afcc98ef87bed45e70483f81822844fe5e Mon Sep 17 00:00:00 2001 From: majekw Date: Mon, 8 Oct 2018 23:35:30 +0200 Subject: [PATCH 3/4] Fix compilation of attiny828at8_5v and atmega168 BIGBOOT=1 --- optiboot/bootloaders/optiboot/Makefile | 2 +- optiboot/bootloaders/optiboot/Makefile.MCUdude | 18 +++++++++--------- optiboot/bootloaders/optiboot/Makefile.tiny | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/optiboot/bootloaders/optiboot/Makefile b/optiboot/bootloaders/optiboot/Makefile index d214027..3f923a8 100644 --- a/optiboot/bootloaders/optiboot/Makefile +++ b/optiboot/bootloaders/optiboot/Makefile @@ -381,7 +381,7 @@ atmega168: AVR_FREQ ?= 16000000L ifndef BIGBOOT atmega168: LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.version=0x3ffe else -atmeg168: LDSECTIONS = -Wl,--section-start=.text=0x3c00 -Wl,--section-start=.version=0x3ffe +atmega168: LDSECTIONS = -Wl,--section-start=.text=0x3c00 -Wl,--section-start=.version=0x3ffe endif atmega168: $(PROGRAM)_atmega168.hex ifndef PRODUCTION diff --git a/optiboot/bootloaders/optiboot/Makefile.MCUdude b/optiboot/bootloaders/optiboot/Makefile.MCUdude index 561a6eb..a0f10c3 100644 --- a/optiboot/bootloaders/optiboot/Makefile.MCUdude +++ b/optiboot/bootloaders/optiboot/Makefile.MCUdude @@ -115,15 +115,15 @@ endif atmega164pa: atmega164p #ATmega168/A -atmega168: TARGET = atmega168 -atmega168: MCU_TARGET = atmega168 -atmega168: CFLAGS += $(COMMON_OPTIONS) $(UART_CMD) -atmega168: AVR_FREQ ?= 16000000L -atmega168: LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.version=0x3ffe -atmega168: $(PROGRAM)_atmega168_UART$(UART)_$(BAUD_RATE)_$(AVR_FREQ).hex -ifndef PRODUCTION -atmega168: $(PROGRAM)_atmega168_UART$(UART)_$(BAUD_RATE)_$(AVR_FREQ).lst -endif +#atmega168: TARGET = atmega168 +#atmega168: MCU_TARGET = atmega168 +#atmega168: CFLAGS += $(COMMON_OPTIONS) $(UART_CMD) +#atmega168: AVR_FREQ ?= 16000000L +#atmega168: LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.version=0x3ffe +#atmega168: $(PROGRAM)_atmega168_UART$(UART)_$(BAUD_RATE)_$(AVR_FREQ).hex +#ifndef PRODUCTION +#atmega168: $(PROGRAM)_atmega168_UART$(UART)_$(BAUD_RATE)_$(AVR_FREQ).lst +#endif atmega168a: atmega168 #ATmega168P/PA diff --git a/optiboot/bootloaders/optiboot/Makefile.tiny b/optiboot/bootloaders/optiboot/Makefile.tiny index 27920a2..8e79b40 100644 --- a/optiboot/bootloaders/optiboot/Makefile.tiny +++ b/optiboot/bootloaders/optiboot/Makefile.tiny @@ -353,7 +353,7 @@ ifndef PRODUCTION endif attiny828at8_5v: - $(MAKE) attiny828at8 AVR_FREQ=8200000L BAUD_RATE=57600 + $(MAKE) attiny828 AVR_FREQ=8200000L BAUD_RATE=57600 mv $(PROGRAM)_attiny828.hex $(PROGRAM)_$@.hex ifndef PRODUCTION mv $(PROGRAM)_attiny828.lst $(PROGRAM)_$@.lst From e866cae9d7844529fc75328a851819edd193385a Mon Sep 17 00:00:00 2001 From: majekw Date: Tue, 9 Oct 2018 23:42:35 +0200 Subject: [PATCH 4/4] Fix attiny84 and possible other chips without hardware UART --- optiboot/bootloaders/optiboot/pin_defs.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/optiboot/bootloaders/optiboot/pin_defs.h b/optiboot/bootloaders/optiboot/pin_defs.h index 5e9520f..2dc7d47 100644 --- a/optiboot/bootloaders/optiboot/pin_defs.h +++ b/optiboot/bootloaders/optiboot/pin_defs.h @@ -42,6 +42,7 @@ * Note that mega8/m32 still needs special handling, because ubrr is handled * differently. */ +#ifndef SOFT_UART #if UART == 0 #if defined(UDR0) # define UART_SRA UCSR0A @@ -93,6 +94,7 @@ # define UART_SRL UBRR3L # define UART_UDR UDR3 #endif +#endif #if defined(__AVR_ATmega8__) \ || defined (__AVR_ATmega32__) \