Skip to content

Commit 87e0a3e

Browse files
Merge pull request #321 from mtiutiu/mtiutiu/compiler_opts_menus
Menu optimizations support for F3/F4 boards
2 parents ac27993 + c0f655f commit 87e0a3e

File tree

4 files changed

+154
-8
lines changed

4 files changed

+154
-8
lines changed

STM32F3/boards.txt

Lines changed: 30 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,33 @@ 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.osstd=Smallest (default)
35+
discovery_f3.menu.opt.osstd.build.flags.optimize=-Os
36+
discovery_f3.menu.opt.osstd.build.flags.ldspecs=
37+
discovery_f3.menu.opt.oslto=Smallest Code with LTO
38+
discovery_f3.menu.opt.oslto.build.flags.optimize=-Os -flto
39+
discovery_f3.menu.opt.oslto.build.flags.ldspecs=-flto
40+
discovery_f3.menu.opt.o1std=Fast (-O1)
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 (-O1) 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.o2std=Faster (-O2)
47+
discovery_f3.menu.opt.o2std.build.flags.optimize=-O2
48+
discovery_f3.menu.opt.o2std.build.flags.ldspecs=
49+
discovery_f3.menu.opt.o2lto=Faster (-O2) with LTO
50+
discovery_f3.menu.opt.o2lto.build.flags.optimize=-O2 -flto
51+
discovery_f3.menu.opt.o2lto.build.flags.ldspecs=-flto
52+
discovery_f3.menu.opt.o3std=Fastest (-O3)
53+
discovery_f3.menu.opt.o3std.build.flags.optimize=-O3
54+
discovery_f3.menu.opt.o3std.build.flags.ldspecs=
55+
discovery_f3.menu.opt.o3lto=Fastest (-O3) with LTO
56+
discovery_f3.menu.opt.o3lto.build.flags.optimize=-O3 -flto
57+
discovery_f3.menu.opt.o3lto.build.flags.ldspecs=-flto
58+
discovery_f3.menu.opt.ogstd=Debug (-g)
59+
discovery_f3.menu.opt.ogstd.build.flags.optimize=-Og
60+
discovery_f3.menu.opt.ogstd.build.flags.ldspecs=
3161
##############################################################
3262

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: 116 additions & 0 deletions
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,35 @@ 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.osstd=Smallest (default)
43+
discovery_f407.menu.opt.osstd.build.flags.optimize=-Os
44+
discovery_f407.menu.opt.osstd.build.flags.ldspecs=
45+
discovery_f407.menu.opt.oslto=Smallest Code with LTO
46+
discovery_f407.menu.opt.oslto.build.flags.optimize=-Os -flto
47+
discovery_f407.menu.opt.oslto.build.flags.ldspecs=-flto
48+
discovery_f407.menu.opt.o1std=Fast (-O1)
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 (-O1) 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.o2std=Faster (-O2)
55+
discovery_f407.menu.opt.o2std.build.flags.optimize=-O2
56+
discovery_f407.menu.opt.o2std.build.flags.ldspecs=
57+
discovery_f407.menu.opt.o2lto=Faster (-O2) with LTO
58+
discovery_f407.menu.opt.o2lto.build.flags.optimize=-O2 -flto
59+
discovery_f407.menu.opt.o2lto.build.flags.ldspecs=-flto
60+
discovery_f407.menu.opt.o3std=Fastest (-O3)
61+
discovery_f407.menu.opt.o3std.build.flags.optimize=-O3
62+
discovery_f407.menu.opt.o3std.build.flags.ldspecs=
63+
discovery_f407.menu.opt.o3lto=Fastest (-O3) with LTO
64+
discovery_f407.menu.opt.o3lto.build.flags.optimize=-O3 -flto
65+
discovery_f407.menu.opt.o3lto.build.flags.ldspecs=-flto
66+
discovery_f407.menu.opt.ogstd=Debug (-g)
67+
discovery_f407.menu.opt.ogstd.build.flags.optimize=-Og
68+
discovery_f407.menu.opt.ogstd.build.flags.ldspecs=
3969
##############################################################
4070
generic_f407v.name=Generic STM32F407V series
4171

@@ -72,6 +102,34 @@ generic_f407v.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
72102
generic_f407v.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
73103
generic_f407v.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
74104

105+
#-- Optimizations
106+
generic_f407v.menu.opt.osstd=Smallest (default)
107+
generic_f407v.menu.opt.osstd.build.flags.optimize=-Os
108+
generic_f407v.menu.opt.osstd.build.flags.ldspecs=
109+
generic_f407v.menu.opt.oslto=Smallest Code with LTO
110+
generic_f407v.menu.opt.oslto.build.flags.optimize=-Os -flto
111+
generic_f407v.menu.opt.oslto.build.flags.ldspecs=-flto
112+
generic_f407v.menu.opt.o1std=Fast (-O1)
113+
generic_f407v.menu.opt.o1std.build.flags.optimize=-O1
114+
generic_f407v.menu.opt.o1std.build.flags.ldspecs=
115+
generic_f407v.menu.opt.o1lto=Fast (-O1) with LTO
116+
generic_f407v.menu.opt.o1lto.build.flags.optimize=-O1 -flto
117+
generic_f407v.menu.opt.o1lto.build.flags.ldspecs=-flto
118+
generic_f407v.menu.opt.o2std=Faster (-O2)
119+
generic_f407v.menu.opt.o2std.build.flags.optimize=-O2
120+
generic_f407v.menu.opt.o2std.build.flags.ldspecs=
121+
generic_f407v.menu.opt.o2lto=Faster (-O2) with LTO
122+
generic_f407v.menu.opt.o2lto.build.flags.optimize=-O2 -flto
123+
generic_f407v.menu.opt.o2lto.build.flags.ldspecs=-flto
124+
generic_f407v.menu.opt.o3std=Fastest (-O3)
125+
generic_f407v.menu.opt.o3std.build.flags.optimize=-O3
126+
generic_f407v.menu.opt.o3std.build.flags.ldspecs=
127+
generic_f407v.menu.opt.o3lto=Fastest (-O3) with LTO
128+
generic_f407v.menu.opt.o3lto.build.flags.optimize=-O3 -flto
129+
generic_f407v.menu.opt.o3lto.build.flags.ldspecs=-flto
130+
generic_f407v.menu.opt.ogstd=Debug (-g)
131+
generic_f407v.menu.opt.ogstd.build.flags.optimize=-Og
132+
generic_f407v.menu.opt.ogstd.build.flags.ldspecs=
75133
##############################################################
76134
stm32f4stamp.name=STM32F4Stamp F405
77135

@@ -107,6 +165,35 @@ stm32f4stamp.menu.usb_cfg.usb_serial=USB serial (CDC)
107165
stm32f4stamp.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
108166
stm32f4stamp.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
109167
stm32f4stamp.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
168+
169+
#-- Optimizations
170+
stm32f4stamp.menu.opt.osstd=Smallest (default)
171+
stm32f4stamp.menu.opt.osstd.build.flags.optimize=-Os
172+
stm32f4stamp.menu.opt.osstd.build.flags.ldspecs=
173+
stm32f4stamp.menu.opt.oslto=Smallest Code with LTO
174+
stm32f4stamp.menu.opt.oslto.build.flags.optimize=-Os -flto
175+
stm32f4stamp.menu.opt.oslto.build.flags.ldspecs=-flto
176+
stm32f4stamp.menu.opt.o1std=Fast (-O1)
177+
stm32f4stamp.menu.opt.o1std.build.flags.optimize=-O1
178+
stm32f4stamp.menu.opt.o1std.build.flags.ldspecs=
179+
stm32f4stamp.menu.opt.o1lto=Fast (-O1) with LTO
180+
stm32f4stamp.menu.opt.o1lto.build.flags.optimize=-O1 -flto
181+
stm32f4stamp.menu.opt.o1lto.build.flags.ldspecs=-flto
182+
stm32f4stamp.menu.opt.o2std=Faster (-O2)
183+
stm32f4stamp.menu.opt.o2std.build.flags.optimize=-O2
184+
stm32f4stamp.menu.opt.o2std.build.flags.ldspecs=
185+
stm32f4stamp.menu.opt.o2lto=Faster (-O2) with LTO
186+
stm32f4stamp.menu.opt.o2lto.build.flags.optimize=-O2 -flto
187+
stm32f4stamp.menu.opt.o2lto.build.flags.ldspecs=-flto
188+
stm32f4stamp.menu.opt.o3std=Fastest (-O3)
189+
stm32f4stamp.menu.opt.o3std.build.flags.optimize=-O3
190+
stm32f4stamp.menu.opt.o3std.build.flags.ldspecs=
191+
stm32f4stamp.menu.opt.o3lto=Fastest (-O3) with LTO
192+
stm32f4stamp.menu.opt.o3lto.build.flags.optimize=-O3 -flto
193+
stm32f4stamp.menu.opt.o3lto.build.flags.ldspecs=-flto
194+
stm32f4stamp.menu.opt.ogstd=Debug (-g)
195+
stm32f4stamp.menu.opt.ogstd.build.flags.optimize=-Og
196+
stm32f4stamp.menu.opt.ogstd.build.flags.ldspecs=
110197
##############################################################
111198
netduino2plus.name=Netduino2 F405
112199

@@ -142,5 +229,34 @@ netduino2plus.menu.usb_cfg.usb_serial=USB serial (CDC)
142229
netduino2plus.menu.usb_cfg.usb_serial.build.cpu_flags=-DSERIAL_USB
143230
netduino2plus.menu.usb_cfg.usb_msc=USB Mass Storage (MSC)
144231
netduino2plus.menu.usb_cfg.usb_msc.build.cpu_flags=-DUSB_MSC
232+
233+
#-- Optimizations
234+
netduino2plus.menu.opt.osstd=Smallest (default)
235+
netduino2plus.menu.opt.osstd.build.flags.optimize=-Os
236+
netduino2plus.menu.opt.osstd.build.flags.ldspecs=
237+
netduino2plus.menu.opt.oslto=Smallest Code with LTO
238+
netduino2plus.menu.opt.oslto.build.flags.optimize=-Os -flto
239+
netduino2plus.menu.opt.oslto.build.flags.ldspecs=-flto
240+
netduino2plus.menu.opt.o1std=Fast (-O1)
241+
netduino2plus.menu.opt.o1std.build.flags.optimize=-O1
242+
netduino2plus.menu.opt.o1std.build.flags.ldspecs=
243+
netduino2plus.menu.opt.o1lto=Fast (-O1) with LTO
244+
netduino2plus.menu.opt.o1lto.build.flags.optimize=-O1 -flto
245+
netduino2plus.menu.opt.o1lto.build.flags.ldspecs=-flto
246+
netduino2plus.menu.opt.o2std=Faster (-O2)
247+
netduino2plus.menu.opt.o2std.build.flags.optimize=-O2
248+
netduino2plus.menu.opt.o2std.build.flags.ldspecs=
249+
netduino2plus.menu.opt.o2lto=Faster (-O2) 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.o3std=Fastest (-O3)
253+
netduino2plus.menu.opt.o3std.build.flags.optimize=-O3
254+
netduino2plus.menu.opt.o3std.build.flags.ldspecs=
255+
netduino2plus.menu.opt.o3lto=Fastest (-O3) with LTO
256+
netduino2plus.menu.opt.o3lto.build.flags.optimize=-O3 -flto
257+
netduino2plus.menu.opt.o3lto.build.flags.ldspecs=-flto
258+
netduino2plus.menu.opt.ogstd=Debug (-g)
259+
netduino2plus.menu.opt.ogstd.build.flags.optimize=-Og
260+
netduino2plus.menu.opt.ogstd.build.flags.ldspecs=
145261
##############################################################
146262

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)