Skip to content

Commit b6fe9f6

Browse files
2 parents 843e3e5 + 75e7b86 commit b6fe9f6

File tree

2 files changed

+110
-5
lines changed

2 files changed

+110
-5
lines changed

digistump-avr/boards.txt

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,43 @@
11
# See: http://code.google.com/p/arduino/wiki/Platforms
2+
# Added Link Time OPtimisation 2019
23

4+
menu.cpu=Processor
5+
menu.LTO=LTO (1.6.11+ only)
6+
menu.clock=Clock Speed
37
##############################################################
48

9+
510
digispark-tiny.name=Digispark (Default - 16.5mhz)
611
digispark-tiny.upload.using=micronucleusprog
712
digispark-tiny.upload.protocol=usb
813
digispark-tiny.upload.tool=micronucleus
914
digispark-tiny.upload.maximum_size=6012
1015
digispark-tiny.upload.maximum_data_size=496
16+
digispark-tiny.bootloader.tool=avrdude
17+
digispark-tiny.bootloader.unlock_bits=0xFF
18+
digispark-tiny.bootloader.lock_bits=0xFF
19+
digispark-tiny.bootloader.file=empty/empty_all.hex
20+
# efuse bit 0 /allow self program
21+
digispark-tiny.bootloader.extended_fuses=0xFE
22+
digispark-tiny.bootloader.high_fuses=0b11010100
23+
#digispark-tiny.menu.clock.16pll=16 MHz (PLL)
24+
digispark-tiny.bootloader.low_fuses=0xC1
25+
#digispark-tiny.menu.clock.16pll.build.f_cpu=16000000L
1126
digispark-tiny.build.mcu=attiny85
1227
digispark-tiny.build.f_cpu=16500000L
1328
digispark-tiny.build.board=AVR_DIGISPARK
1429
digispark-tiny.build.core=tiny
1530
digispark-tiny.build.variant=digispark
31+
digispark-tiny.menu.LTO.disable=Disabled
32+
digispark-tiny.menu.LTO.disable.ltocflags=
33+
digispark-tiny.menu.LTO.disable.ltoelfflags=
34+
digispark-tiny.menu.LTO.disable.ltocppflags=
35+
digispark-tiny.menu.LTO.disable.ltoarcmd=
36+
digispark-tiny.menu.LTO.enable=Enabled
37+
digispark-tiny.menu.LTO.enable.ltocflags=-flto -fno-fat-lto-objects
38+
digispark-tiny.menu.LTO.enable.ltoelfflags=-g -flto -fuse-linker-plugin
39+
digispark-tiny.menu.LTO.enable.ltocppflags=-flto
40+
digispark-tiny.menu.LTO.enable.ltoarcmd=gcc-
1641
digispark-tiny.upload.wait_for_upload_port = false
1742
digispark-tiny.upload.use_1200bps_touch = false
1843
digispark-tiny.upload.disable_flushing = false
@@ -28,6 +53,16 @@ digispark-pro.build.f_cpu=16000000L
2853
digispark-pro.build.board=AVR_DIGISPARKPRO
2954
digispark-pro.build.core=pro
3055
digispark-pro.build.variant=pro
56+
digispark-pro.menu.LTO.disable=Disabled
57+
digispark-pro.menu.LTO.disable.ltocflags=
58+
digispark-pro.menu.LTO.disable.ltoelfflags=
59+
digispark-pro.menu.LTO.disable.ltocppflags=
60+
digispark-pro.menu.LTO.disable.ltoarcmd=
61+
digispark-pro.menu.LTO.enable=Enabled
62+
digispark-pro.menu.LTO.enable.ltocflags=-flto -fno-fat-lto-objects
63+
digispark-pro.menu.LTO.enable.ltoelfflags=-g -flto -fuse-linker-plugin
64+
digispark-pro.menu.LTO.enable.ltocppflags=-flto
65+
digispark-pro.menu.LTO.enable.ltoarcmd=gcc-
3166
digispark-pro.upload.wait_for_upload_port = false
3267
digispark-pro.upload.use_1200bps_touch = false
3368
digispark-pro.upload.disable_flushing = false
@@ -43,6 +78,16 @@ digispark-pro32.build.f_cpu=16000000L
4378
digispark-pro32.build.board=AVR_DIGISPARKPRO
4479
digispark-pro32.build.core=pro
4580
digispark-pro32.build.variant=pro32buffer
81+
digispark-pro32.menu.LTO.disable=Disabled
82+
digispark-pro32.menu.LTO.disable.ltocflags=
83+
digispark-pro32.menu.LTO.disable.ltoelfflags=
84+
digispark-pro32.menu.LTO.disable.ltocppflags=
85+
digispark-pro32.menu.LTO.disable.ltoarcmd=
86+
digispark-pro32.menu.LTO.enable=Enabled
87+
digispark-pro32.menu.LTO.enable.ltocflags=-flto -fno-fat-lto-objects
88+
digispark-pro32.menu.LTO.enable.ltoelfflags=-g -flto -fuse-linker-plugin
89+
digispark-pro32.menu.LTO.enable.ltocppflags=-flto
90+
digispark-pro32.menu.LTO.enable.ltoarcmd=gcc-
4691
digispark-pro32.upload.wait_for_upload_port = false
4792
digispark-pro32.upload.use_1200bps_touch = false
4893
digispark-pro32.upload.disable_flushing = false
@@ -58,6 +103,16 @@ digispark-pro64.build.f_cpu=16000000L
58103
digispark-pro64.build.board=AVR_DIGISPARKPRO
59104
digispark-pro64.build.core=pro
60105
digispark-pro64.build.variant=pro64buffer
106+
digispark-pro64.menu.LTO.disable=Disabled
107+
digispark-pro64.menu.LTO.disable.ltocflags=
108+
digispark-pro64.menu.LTO.disable.ltoelfflags=
109+
digispark-pro64.menu.LTO.disable.ltocppflags=
110+
digispark-pro64.menu.LTO.disable.ltoarcmd=
111+
digispark-pro64.menu.LTO.enable=Enabled
112+
digispark-pro64.menu.LTO.enable.ltocflags=-flto -fno-fat-lto-objects
113+
digispark-pro64.menu.LTO.enable.ltoelfflags=-g -flto -fuse-linker-plugin
114+
digispark-pro64.menu.LTO.enable.ltocppflags=-flto
115+
digispark-pro64.menu.LTO.enable.ltoarcmd=gcc-
61116
digispark-pro64.upload.wait_for_upload_port = false
62117
digispark-pro64.upload.use_1200bps_touch = false
63118
digispark-pro64.upload.disable_flushing = false
@@ -73,6 +128,16 @@ digispark-tiny16.build.f_cpu=16000000L
73128
digispark-tiny16.build.board=AVR_DIGISPARK
74129
digispark-tiny16.build.core=tiny
75130
digispark-tiny16.build.variant=digispark
131+
digispark-tiny16.menu.LTO.disable=Disabled
132+
digispark-tiny16.menu.LTO.disable.ltocflags=
133+
digispark-tiny16.menu.LTO.disable.ltoelfflags=
134+
digispark-tiny16.menu.LTO.disable.ltocppflags=
135+
digispark-tiny16.menu.LTO.disable.ltoarcmd=
136+
digispark-tiny16.menu.LTO.enable=Enabled
137+
digispark-tiny16.menu.LTO.enable.ltocflags=-flto -fno-fat-lto-objects
138+
digispark-tiny16.menu.LTO.enable.ltoelfflags=-g -flto -fuse-linker-plugin
139+
digispark-tiny16.menu.LTO.enable.ltocppflags=-flto
140+
digispark-tiny16.menu.LTO.enable.ltoarcmd=gcc-
76141
digispark-tiny16.upload.wait_for_upload_port = false
77142
digispark-tiny16.upload.use_1200bps_touch = false
78143
digispark-tiny16.upload.disable_flushing = false
@@ -88,6 +153,16 @@ digispark-tiny8.build.f_cpu=8000000L
88153
digispark-tiny8.build.board=AVR_DIGISPARK
89154
digispark-tiny8.build.core=tiny
90155
digispark-tiny8.build.variant=digispark
156+
digispark-tiny8.menu.LTO.disable=Disabled
157+
digispark-tiny8.menu.LTO.disable.ltocflags=
158+
digispark-tiny8.menu.LTO.disable.ltoelfflags=
159+
digispark-tiny8.menu.LTO.disable.ltocppflags=
160+
digispark-tiny8.menu.LTO.disable.ltoarcmd=
161+
digispark-tiny8.menu.LTO.enable=Enabled
162+
digispark-tiny8.menu.LTO.enable.ltocflags=-flto -Fno-fat-lto-objects
163+
digispark-tiny8.menu.LTO.enable.ltoelfflags=-g -Flto -Fuse-linker-plugin
164+
digispark-tiny8.menu.LTO.enable.ltocppflags=-flto
165+
digispark-tiny8.menu.LTO.enable.ltoarcmd=gcc-
91166
digispark-tiny8.upload.wait_for_upload_port = false
92167
digispark-tiny8.upload.use_1200bps_touch = false
93168
digispark-tiny8.upload.disable_flushing = false
@@ -103,6 +178,16 @@ digispark-tiny1.build.f_cpu=1000000L
103178
digispark-tiny1.build.board=AVR_DIGISPARK
104179
digispark-tiny1.build.core=tiny
105180
digispark-tiny1.build.variant=digispark
181+
digispark-tiny1.menu.LTO.disable=Disabled
182+
digispark-tiny1.menu.LTO.disable.ltocflags=
183+
digispark-tiny1.menu.LTO.disable.ltoelfflags=
184+
digispark-tiny1.menu.LTO.disable.ltocppflags=
185+
digispark-tiny1.menu.LTO.disable.ltoarcmd=
186+
digispark-tiny1.menu.LTO.enable=Enabled
187+
digispark-tiny1.menu.LTO.enable.ltocflags=-flto -Fno-fat-lto-objects
188+
digispark-tiny1.menu.LTO.enable.ltoelfflags=-g -Flto -Fuse-linker-plugin
189+
digispark-tiny1.menu.LTO.enable.ltocppflags=-flto
190+
digispark-tiny1.menu.LTO.enable.ltoarcmd=gcc-
106191
digispark-tiny1.upload.wait_for_upload_port = false
107192
digispark-tiny1.upload.use_1200bps_touch = false
108193
digispark-tiny1.upload.disable_flushing = false

digistump-avr/platform.txt

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
# For more info:
66
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
7+
# 2019 Added Link Time Optimisation possibility may require a newer more complete compiler
8+
# 2019 Added dissasembly output so we can debug / better optimise code and memory use
9+
710

811
name=Digistump AVR Boards
912
version=1.5.4
@@ -14,16 +17,18 @@ version=1.5.4
1417
# Default "compiler.path" is correct, change only if you want to overidde the initial value
1518
compiler.path={runtime.tools.avr-gcc.path}/bin/
1619
compiler.c.cmd=avr-gcc
17-
compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD
18-
compiler.c.elf.flags=-Os -Wl,--gc-sections
20+
compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD {ltocflags}
21+
compiler.c.elf.flags=-Os {ltoelfflags} -Wl,--gc-sections
1922
compiler.c.elf.cmd=avr-gcc
20-
compiler.S.flags=-c -g -x assembler-with-cpp
23+
compiler.S.flags=-c -g -x assembler-with-cpp {ltocppflags}
2124
compiler.cpp.cmd=avr-g++
22-
compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD
23-
compiler.ar.cmd=avr-ar
25+
compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD {ltocppflags}
26+
compiler.ar.cmd=avr-{ltoarcmd}ar
2427
compiler.ar.flags=rcs
2528
compiler.objcopy.cmd=avr-objcopy
2629
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
30+
compiler.objdump.cmd=avr-objdump
31+
compiler.objdump.flags=--disassemble --source --line-numbers --demangle --section=.text
2732
compiler.elf2hex.flags=-O ihex -R .eeprom
2833
compiler.elf2hex.cmd=avr-objcopy
2934
compiler.ldflags=
@@ -54,6 +59,8 @@ recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.obj
5459

5560
## Create hex
5661
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
62+
## Save disassembler listing
63+
recipe.hooks.objcopy.postobjcopy.1.pattern.windows=cmd /C "{compiler.path}{compiler.objdump.cmd}" {compiler.objdump.flags} "{build.path}/{build.project_name}.elf" > "{build.path}/{build.project_name}.lst"
5764

5865
## Save hex
5966
recipe.output.tmp_file={build.project_name}.hex
@@ -77,6 +84,19 @@ tools.micronucleus.upload.params.verbose=
7784
tools.micronucleus.upload.params.quiet=
7885
#tools.micronucleus.upload.pattern="{cmd.path}" --run --timeout 60 "{build.path}/{build.project_name}.hex"
7986
tools.micronucleus.upload.pattern="{cmd.path}" -cdigispark --timeout 60 -Uflash:w:{build.path}/{build.project_name}.hex:i
87+
88+
tools.avrdude.path={runtime.tools.avrdude.path}
89+
tools.avrdude.cmd.path={path}/bin/avrdude
90+
tools.avrdude.config.path={runtime.platform.path}/avrdude.conf
91+
92+
tools.avrdude.erase.params.verbose=-v
93+
tools.avrdude.erase.params.quiet=-q -q
94+
tools.avrdude.erase.pattern="{cmd.path}" "-C{config.path}" {erase.verbose} -p{build.mcu} -c{protocol} {program.extra_params} -e -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:{bootloader.high_fuses}:m -Ulfuse:w:{bootloader.low_fuses}:m
95+
96+
tools.avrdude.bootloader.params.verbose=-v
97+
tools.avrdude.bootloader.params.quiet=-q -q
98+
tools.avrdude.bootloader.pattern="{cmd.path}" "-C{config.path}" {bootloader.verbose} -p{build.mcu} -c{protocol} {program.extra_params} "-Uflash:w:{runtime.platform.path}/bootloaders/{bootloader.file}:i"
99+
80100

81101
# USB Default Flags
82102
# Default blank usb manufacturer will be filled it at compile time

0 commit comments

Comments
 (0)