Skip to content

Commit 0696f70

Browse files
Merge branch 'mtiutiu/compiler_opts_menus' of https://github.com/mtiutiu/Arduino_STM32 into mtiutiu-mtiutiu/compiler_opts_menus
2 parents a4d88f7 + 4f3c4da commit 0696f70

6 files changed

Lines changed: 596 additions & 16 deletions

File tree

STM32F1/boards.txt

Lines changed: 417 additions & 2 deletions
Large diffs are not rendered by default.

STM32F1/platform.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@ compiler.warning_flags.all=-Wall -Wextra -DDEBUG_LEVEL=DEBUG_ALL
1616
# ----------------------
1717
compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
1818
compiler.c.cmd=arm-none-eabi-gcc
19-
compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
19+
compiler.c.flags=-c -g {build.flags.optimize} {compiler.warning_flags} -std=gnu11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
2020
compiler.c.elf.cmd=arm-none-eabi-g++
21-
compiler.c.elf.flags=-Os -Wl,--gc-sections
21+
compiler.c.elf.flags={build.flags.optimize} -Wl,--gc-sections {build.flags.ldspecs}
2222
compiler.S.cmd=arm-none-eabi-gcc
2323
compiler.S.flags=-c -g -x assembler-with-cpp -MMD
2424
compiler.cpp.cmd=arm-none-eabi-g++
25-
compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
25+
compiler.cpp.flags=-c -g {build.flags.optimize} {compiler.warning_flags} -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
2626
compiler.ar.cmd=arm-none-eabi-ar
2727
compiler.ar.flags=rcs
2828
compiler.objcopy.cmd=arm-none-eabi-objcopy
2929
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
3030
compiler.elf2hex.flags=-O binary
3131
compiler.elf2hex.cmd=arm-none-eabi-objcopy
32-
compiler.ldflags=
32+
compiler.ldflags={build.flags.ldspecs}
3333
compiler.size.cmd=arm-none-eabi-size
3434
compiler.define=-DARDUINO=
3535

@@ -160,4 +160,4 @@ tools.jlink_upload.path.linux={runtime.hardware.path}/tools/linux
160160
tools.jlink_upload.path.linux64={runtime.hardware.path}/tools/linux64
161161
tools.jlink_upload.upload.params.verbose=-d
162162
tools.jlink_upload.upload.params.quiet=n
163-
tools.jlink_upload.upload.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.bin"
163+
tools.jlink_upload.upload.pattern="{path}/{cmd}" "{build.path}/{build.project_name}.bin"

STM32F3/boards.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#
22

3+
menu.opt=Optimize
4+
35
##############################################################
46
discovery_f3.name=STM32F3Discovery
57

@@ -28,5 +30,37 @@ discovery_f3.build.error_led_port=GPIOE
2830
discovery_f3.build.error_led_pin=8
2931
discovery_f3.build.board=STM32F3Discovery
3032

33+
#-- Optimizations
34+
discovery_f3.menu.opt.o2std=Faster
35+
discovery_f3.menu.opt.o2std.build.flags.optimize=-O2
36+
discovery_f3.menu.opt.o2std.build.flags.ldspecs=
37+
discovery_f3.menu.opt.o2lto=Faster with LTO
38+
discovery_f3.menu.opt.o2lto.build.flags.optimize=-O2 -flto
39+
discovery_f3.menu.opt.o2lto.build.flags.ldspecs=-flto
40+
discovery_f3.menu.opt.o1std=Fast
41+
discovery_f3.menu.opt.o1std.build.flags.optimize=-O1
42+
discovery_f3.menu.opt.o1std.build.flags.ldspecs=
43+
discovery_f3.menu.opt.o1lto=Fast with LTO
44+
discovery_f3.menu.opt.o1lto.build.flags.optimize=-O1 -flto
45+
discovery_f3.menu.opt.o1lto.build.flags.ldspecs=-flto
46+
discovery_f3.menu.opt.o3std=Fastest
47+
discovery_f3.menu.opt.o3std.build.flags.optimize=-O3
48+
discovery_f3.menu.opt.o3std.build.flags.ldspecs=
49+
discovery_f3.menu.opt.o3lto=Fastest with LTO
50+
discovery_f3.menu.opt.o3lto.build.flags.optimize=-O3 -flto
51+
discovery_f3.menu.opt.o3lto.build.flags.ldspecs=-flto
52+
discovery_f3.menu.opt.ogstd=Debug
53+
discovery_f3.menu.opt.ogstd.build.flags.optimize=-Og
54+
discovery_f3.menu.opt.ogstd.build.flags.ldspecs=
55+
discovery_f3.menu.opt.oglto=Debug with LTO
56+
discovery_f3.menu.opt.oglto.build.flags.optimize=-Og -flto
57+
discovery_f3.menu.opt.oglto.build.flags.ldspecs=-flto
58+
discovery_f3.menu.opt.osstd=Smallest Code
59+
discovery_f3.menu.opt.osstd.build.flags.optimize=-Os
60+
discovery_f3.menu.opt.osstd.build.flags.ldspecs=
61+
discovery_f3.menu.opt.oslto=Smallest Code with LTO
62+
discovery_f3.menu.opt.oslto.build.flags.optimize=-Os -flto
63+
discovery_f3.menu.opt.oslto.build.flags.ldspecs=-flto
64+
3165
##############################################################
3266

STM32F3/platform.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ version=0.1.0
1212

1313
compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
1414
compiler.c.cmd=arm-none-eabi-gcc
15-
compiler.c.flags=-c -g -Os -w -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
15+
compiler.c.flags=-c -g {build.flags.optimize} -w -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
1616
compiler.c.elf.cmd=arm-none-eabi-g++
17-
compiler.c.elf.flags=-Os -Wl,--gc-sections
17+
compiler.c.elf.flags={build.flags.optimize} -Wl,--gc-sections {build.flags.ldspecs}
1818
compiler.S.cmd=arm-none-eabi-gcc
1919
compiler.S.flags=-c -g -x assembler-with-cpp -MMD
2020
compiler.cpp.cmd=arm-none-eabi-g++
21-
compiler.cpp.flags=-c -g -Os -w -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
21+
compiler.cpp.flags=-c -g {build.flags.optimize} -w -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
2222
compiler.ar.cmd=arm-none-eabi-ar
2323
compiler.ar.flags=rcs
2424
compiler.objcopy.cmd=arm-none-eabi-objcopy
2525
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
2626
compiler.elf2hex.flags=-O binary
2727
compiler.elf2hex.cmd=arm-none-eabi-objcopy
28-
compiler.ldflags=
28+
compiler.ldflags={build.flags.ldspecs}
2929
compiler.size.cmd=arm-none-eabi-size
3030
compiler.define=-DARDUINO=
3131

STM32F4/boards.txt

Lines changed: 132 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#
22

33
menu.usb_cfg=USB configuration
4+
menu.opt=Optimize
45

56
##############################################################
67
discovery_f407.name=STM32 Discovery F407
@@ -36,6 +37,39 @@ discovery_f407.menu.usb_cfg.usb_serial=USB serial (CDC)
3637
discovery_f407.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
3738
discovery_f407.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
3839
discovery_f407.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
40+
41+
#-- Optimizations
42+
discovery_f407.menu.opt.o2std=Faster
43+
discovery_f407.menu.opt.o2std.build.flags.optimize=-O2
44+
discovery_f407.menu.opt.o2std.build.flags.ldspecs=
45+
discovery_f407.menu.opt.o2lto=Faster with LTO
46+
discovery_f407.menu.opt.o2lto.build.flags.optimize=-O2 -flto
47+
discovery_f407.menu.opt.o2lto.build.flags.ldspecs=-flto
48+
discovery_f407.menu.opt.o1std=Fast
49+
discovery_f407.menu.opt.o1std.build.flags.optimize=-O1
50+
discovery_f407.menu.opt.o1std.build.flags.ldspecs=
51+
discovery_f407.menu.opt.o1lto=Fast with LTO
52+
discovery_f407.menu.opt.o1lto.build.flags.optimize=-O1 -flto
53+
discovery_f407.menu.opt.o1lto.build.flags.ldspecs=-flto
54+
discovery_f407.menu.opt.o3std=Fastest
55+
discovery_f407.menu.opt.o3std.build.flags.optimize=-O3
56+
discovery_f407.menu.opt.o3std.build.flags.ldspecs=
57+
discovery_f407.menu.opt.o3lto=Fastest with LTO
58+
discovery_f407.menu.opt.o3lto.build.flags.optimize=-O3 -flto
59+
discovery_f407.menu.opt.o3lto.build.flags.ldspecs=-flto
60+
discovery_f407.menu.opt.ogstd=Debug
61+
discovery_f407.menu.opt.ogstd.build.flags.optimize=-Og
62+
discovery_f407.menu.opt.ogstd.build.flags.ldspecs=
63+
discovery_f407.menu.opt.oglto=Debug with LTO
64+
discovery_f407.menu.opt.oglto.build.flags.optimize=-Og -flto
65+
discovery_f407.menu.opt.oglto.build.flags.ldspecs=-flto
66+
discovery_f407.menu.opt.osstd=Smallest Code
67+
discovery_f407.menu.opt.osstd.build.flags.optimize=-Os
68+
discovery_f407.menu.opt.osstd.build.flags.ldspecs=
69+
discovery_f407.menu.opt.oslto=Smallest Code with LTO
70+
discovery_f407.menu.opt.oslto.build.flags.optimize=-Os -flto
71+
discovery_f407.menu.opt.oslto.build.flags.ldspecs=-flto
72+
3973
##############################################################
4074
generic_f407v.name=Generic STM32F407V series
4175

@@ -72,6 +106,38 @@ generic_f407v.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
72106
generic_f407v.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
73107
generic_f407v.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
74108

109+
#-- Optimizations
110+
generic_f407v.menu.opt.o2std=Faster
111+
generic_f407v.menu.opt.o2std.build.flags.optimize=-O2
112+
generic_f407v.menu.opt.o2std.build.flags.ldspecs=
113+
generic_f407v.menu.opt.o2lto=Faster with LTO
114+
generic_f407v.menu.opt.o2lto.build.flags.optimize=-O2 -flto
115+
generic_f407v.menu.opt.o2lto.build.flags.ldspecs=-flto
116+
generic_f407v.menu.opt.o1std=Fast
117+
generic_f407v.menu.opt.o1std.build.flags.optimize=-O1
118+
generic_f407v.menu.opt.o1std.build.flags.ldspecs=
119+
generic_f407v.menu.opt.o1lto=Fast with LTO
120+
generic_f407v.menu.opt.o1lto.build.flags.optimize=-O1 -flto
121+
generic_f407v.menu.opt.o1lto.build.flags.ldspecs=-flto
122+
generic_f407v.menu.opt.o3std=Fastest
123+
generic_f407v.menu.opt.o3std.build.flags.optimize=-O3
124+
generic_f407v.menu.opt.o3std.build.flags.ldspecs=
125+
generic_f407v.menu.opt.o3lto=Fastest with LTO
126+
generic_f407v.menu.opt.o3lto.build.flags.optimize=-O3 -flto
127+
generic_f407v.menu.opt.o3lto.build.flags.ldspecs=-flto
128+
generic_f407v.menu.opt.ogstd=Debug
129+
generic_f407v.menu.opt.ogstd.build.flags.optimize=-Og
130+
generic_f407v.menu.opt.ogstd.build.flags.ldspecs=
131+
generic_f407v.menu.opt.oglto=Debug with LTO
132+
generic_f407v.menu.opt.oglto.build.flags.optimize=-Og -flto
133+
generic_f407v.menu.opt.oglto.build.flags.ldspecs=-flto
134+
generic_f407v.menu.opt.osstd=Smallest Code
135+
generic_f407v.menu.opt.osstd.build.flags.optimize=-Os
136+
generic_f407v.menu.opt.osstd.build.flags.ldspecs=
137+
generic_f407v.menu.opt.oslto=Smallest Code with LTO
138+
generic_f407v.menu.opt.oslto.build.flags.optimize=-Os -flto
139+
generic_f407v.menu.opt.oslto.build.flags.ldspecs=-flto
140+
75141
##############################################################
76142
stm32f4stamp.name=STM32F4Stamp F405
77143

@@ -107,6 +173,39 @@ stm32f4stamp.menu.usb_cfg.usb_serial=USB serial (CDC)
107173
stm32f4stamp.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
108174
stm32f4stamp.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
109175
stm32f4stamp.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
176+
177+
#-- Optimizations
178+
stm32f4stamp.menu.opt.o2std=Faster
179+
stm32f4stamp.menu.opt.o2std.build.flags.optimize=-O2
180+
stm32f4stamp.menu.opt.o2std.build.flags.ldspecs=
181+
stm32f4stamp.menu.opt.o2lto=Faster with LTO
182+
stm32f4stamp.menu.opt.o2lto.build.flags.optimize=-O2 -flto
183+
stm32f4stamp.menu.opt.o2lto.build.flags.ldspecs=-flto
184+
stm32f4stamp.menu.opt.o1std=Fast
185+
stm32f4stamp.menu.opt.o1std.build.flags.optimize=-O1
186+
stm32f4stamp.menu.opt.o1std.build.flags.ldspecs=
187+
stm32f4stamp.menu.opt.o1lto=Fast with LTO
188+
stm32f4stamp.menu.opt.o1lto.build.flags.optimize=-O1 -flto
189+
stm32f4stamp.menu.opt.o1lto.build.flags.ldspecs=-flto
190+
stm32f4stamp.menu.opt.o3std=Fastest
191+
stm32f4stamp.menu.opt.o3std.build.flags.optimize=-O3
192+
stm32f4stamp.menu.opt.o3std.build.flags.ldspecs=
193+
stm32f4stamp.menu.opt.o3lto=Fastest with LTO
194+
stm32f4stamp.menu.opt.o3lto.build.flags.optimize=-O3 -flto
195+
stm32f4stamp.menu.opt.o3lto.build.flags.ldspecs=-flto
196+
stm32f4stamp.menu.opt.ogstd=Debug
197+
stm32f4stamp.menu.opt.ogstd.build.flags.optimize=-Og
198+
stm32f4stamp.menu.opt.ogstd.build.flags.ldspecs=
199+
stm32f4stamp.menu.opt.oglto=Debug with LTO
200+
stm32f4stamp.menu.opt.oglto.build.flags.optimize=-Og -flto
201+
stm32f4stamp.menu.opt.oglto.build.flags.ldspecs=-flto
202+
stm32f4stamp.menu.opt.osstd=Smallest Code
203+
stm32f4stamp.menu.opt.osstd.build.flags.optimize=-Os
204+
stm32f4stamp.menu.opt.osstd.build.flags.ldspecs=
205+
stm32f4stamp.menu.opt.oslto=Smallest Code with LTO
206+
stm32f4stamp.menu.opt.oslto.build.flags.optimize=-Os -flto
207+
stm32f4stamp.menu.opt.oslto.build.flags.ldspecs=-flto
208+
110209
##############################################################
111210
netduino2plus.name=Netduino2 F405
112211

@@ -142,5 +241,37 @@ netduino2plus.menu.usb_cfg.usb_serial=USB serial (CDC)
142241
netduino2plus.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
143242
netduino2plus.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
144243
netduino2plus.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
145-
##############################################################
146244

245+
#-- Optimizations
246+
netduino2plus.menu.opt.o2std=Faster
247+
netduino2plus.menu.opt.o2std.build.flags.optimize=-O2
248+
netduino2plus.menu.opt.o2std.build.flags.ldspecs=
249+
netduino2plus.menu.opt.o2lto=Faster with LTO
250+
netduino2plus.menu.opt.o2lto.build.flags.optimize=-O2 -flto
251+
netduino2plus.menu.opt.o2lto.build.flags.ldspecs=-flto
252+
netduino2plus.menu.opt.o1std=Fast
253+
netduino2plus.menu.opt.o1std.build.flags.optimize=-O1
254+
netduino2plus.menu.opt.o1std.build.flags.ldspecs=
255+
netduino2plus.menu.opt.o1lto=Fast with LTO
256+
netduino2plus.menu.opt.o1lto.build.flags.optimize=-O1 -flto
257+
netduino2plus.menu.opt.o1lto.build.flags.ldspecs=-flto
258+
netduino2plus.menu.opt.o3std=Fastest
259+
netduino2plus.menu.opt.o3std.build.flags.optimize=-O3
260+
netduino2plus.menu.opt.o3std.build.flags.ldspecs=
261+
netduino2plus.menu.opt.o3lto=Fastest with LTO
262+
netduino2plus.menu.opt.o3lto.build.flags.optimize=-O3 -flto
263+
netduino2plus.menu.opt.o3lto.build.flags.ldspecs=-flto
264+
netduino2plus.menu.opt.ogstd=Debug
265+
netduino2plus.menu.opt.ogstd.build.flags.optimize=-Og
266+
netduino2plus.menu.opt.ogstd.build.flags.ldspecs=
267+
netduino2plus.menu.opt.oglto=Debug with LTO
268+
netduino2plus.menu.opt.oglto.build.flags.optimize=-Og -flto
269+
netduino2plus.menu.opt.oglto.build.flags.ldspecs=-flto
270+
netduino2plus.menu.opt.osstd=Smallest Code
271+
netduino2plus.menu.opt.osstd.build.flags.optimize=-Os
272+
netduino2plus.menu.opt.osstd.build.flags.ldspecs=
273+
netduino2plus.menu.opt.oslto=Smallest Code with LTO
274+
netduino2plus.menu.opt.oslto.build.flags.optimize=-Os -flto
275+
netduino2plus.menu.opt.oslto.build.flags.ldspecs=-flto
276+
277+
##############################################################

STM32F4/platform.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@ version=0.1.0
1010
# ----------------------
1111
compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
1212
compiler.c.cmd=arm-none-eabi-gcc
13-
compiler.c.flags=-c -g -Os -Wall -MMD -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
13+
compiler.c.flags=-c -g {build.flags.optimize} -Wall -MMD -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
1414
compiler.c.elf.cmd=arm-none-eabi-g++
15-
compiler.c.elf.flags=-Os -Wl,--gc-sections
15+
compiler.c.elf.flags={build.flags.optimize} -Wl,--gc-sections {build.flags.ldspecs}
1616
compiler.S.cmd=arm-none-eabi-gcc
1717
compiler.S.flags=-c -g -x assembler-with-cpp -MMD
1818
compiler.cpp.cmd=arm-none-eabi-g++
19-
compiler.cpp.flags=-c -g -Os -Wall -MMD -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
19+
compiler.cpp.flags=-c -g {build.flags.optimize} -Wall -MMD -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -DBOARD_{build.variant} -D{build.vect} -DERROR_LED_PORT={build.error_led_port} -DERROR_LED_PIN={build.error_led_pin}
2020
compiler.ar.cmd=arm-none-eabi-ar
2121
compiler.ar.flags=rcs
2222
compiler.objcopy.cmd=arm-none-eabi-objcopy
2323
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
2424
compiler.elf2hex.flags=-O binary
2525
compiler.elf2hex.cmd=arm-none-eabi-objcopy
26-
compiler.ldflags=
26+
compiler.ldflags={build.flags.ldspecs}
2727
compiler.size.cmd=arm-none-eabi-size
2828
compiler.define=-DARDUINO=
2929

0 commit comments

Comments
 (0)