Skip to content

Commit 25583f5

Browse files
authored
Merge pull request #110 from fpistm/opt_menu
Add optimization menu
2 parents eb3c26f + e5b9c39 commit 25583f5

File tree

2 files changed

+122
-6
lines changed

2 files changed

+122
-6
lines changed

Diff for: boards.txt

+115-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ menu.pnum=Board part number
55
menu.xserial=Extra serial instance
66
menu.usb=USB interface
77

8+
menu.opt=Optimize
89
menu.upload_method=Upload method
910

1011
################################################################################
@@ -382,4 +383,117 @@ Disco.menu.usb.none=None
382383
Disco.menu.usb.HID=HID keyboard and mouse support (if available)
383384
Disco.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE
384385
#Disco.menu.usb.CDC=CDC (if available)
385-
#Disco.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS
386+
#Disco.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS
387+
388+
# Optimizations
389+
Nucleo_144.menu.opt.osstd=Smallest (-Os default)
390+
Nucleo_144.menu.opt.osstd.build.flags.optimize=-Os
391+
Nucleo_144.menu.opt.osstd.build.flags.ldspecs=
392+
Nucleo_144.menu.opt.oslto=Smallest (-Os) with LTO
393+
Nucleo_144.menu.opt.oslto.build.flags.optimize=-Os -flto
394+
Nucleo_144.menu.opt.oslto.build.flags.ldspecs=-flto
395+
Nucleo_144.menu.opt.o1std=Fast (-O1)
396+
Nucleo_144.menu.opt.o1std.build.flags.optimize=-O1
397+
Nucleo_144.menu.opt.o1std.build.flags.ldspecs=
398+
Nucleo_144.menu.opt.o1lto=Fast (-O1) with LTO
399+
Nucleo_144.menu.opt.o1lto.build.flags.optimize=-O1 -flto
400+
Nucleo_144.menu.opt.o1lto.build.flags.ldspecs=-flto
401+
Nucleo_144.menu.opt.o2std=Faster (-O2)
402+
Nucleo_144.menu.opt.o2std.build.flags.optimize=-O2
403+
Nucleo_144.menu.opt.o2std.build.flags.ldspecs=
404+
Nucleo_144.menu.opt.o2lto=Faster (-O2) with LTO
405+
Nucleo_144.menu.opt.o2lto.build.flags.optimize=-O2 -flto
406+
Nucleo_144.menu.opt.o2lto.build.flags.ldspecs=-flto
407+
Nucleo_144.menu.opt.o3std=Fastest (-O3)
408+
Nucleo_144.menu.opt.o3std.build.flags.optimize=-O3
409+
Nucleo_144.menu.opt.o3std.build.flags.ldspecs=
410+
Nucleo_144.menu.opt.o3lto=Fastest (-O3) with LTO
411+
Nucleo_144.menu.opt.o3lto.build.flags.optimize=-O3 -flto
412+
Nucleo_144.menu.opt.o3lto.build.flags.ldspecs=-flto
413+
Nucleo_144.menu.opt.ogstd=Debug (-g)
414+
Nucleo_144.menu.opt.ogstd.build.flags.optimize=-Og
415+
Nucleo_144.menu.opt.ogstd.build.flags.ldspecs=
416+
417+
Nucleo_64.menu.opt.osstd=Smallest (-Os default)
418+
Nucleo_64.menu.opt.osstd.build.flags.optimize=-Os
419+
Nucleo_64.menu.opt.osstd.build.flags.ldspecs=
420+
Nucleo_64.menu.opt.oslto=Smallest (-Os) with LTO
421+
Nucleo_64.menu.opt.oslto.build.flags.optimize=-Os -flto
422+
Nucleo_64.menu.opt.oslto.build.flags.ldspecs=-flto
423+
Nucleo_64.menu.opt.o1std=Fast (-O1)
424+
Nucleo_64.menu.opt.o1std.build.flags.optimize=-O1
425+
Nucleo_64.menu.opt.o1std.build.flags.ldspecs=
426+
Nucleo_64.menu.opt.o1lto=Fast (-O1) with LTO
427+
Nucleo_64.menu.opt.o1lto.build.flags.optimize=-O1 -flto
428+
Nucleo_64.menu.opt.o1lto.build.flags.ldspecs=-flto
429+
Nucleo_64.menu.opt.o2std=Faster (-O2)
430+
Nucleo_64.menu.opt.o2std.build.flags.optimize=-O2
431+
Nucleo_64.menu.opt.o2std.build.flags.ldspecs=
432+
Nucleo_64.menu.opt.o2lto=Faster (-O2) with LTO
433+
Nucleo_64.menu.opt.o2lto.build.flags.optimize=-O2 -flto
434+
Nucleo_64.menu.opt.o2lto.build.flags.ldspecs=-flto
435+
Nucleo_64.menu.opt.o3std=Fastest (-O3)
436+
Nucleo_64.menu.opt.o3std.build.flags.optimize=-O3
437+
Nucleo_64.menu.opt.o3std.build.flags.ldspecs=
438+
Nucleo_64.menu.opt.o3lto=Fastest (-O3) with LTO
439+
Nucleo_64.menu.opt.o3lto.build.flags.optimize=-O3 -flto
440+
Nucleo_64.menu.opt.o3lto.build.flags.ldspecs=-flto
441+
Nucleo_64.menu.opt.ogstd=Debug (-g)
442+
Nucleo_64.menu.opt.ogstd.build.flags.optimize=-Og
443+
Nucleo_64.menu.opt.ogstd.build.flags.ldspecs=
444+
445+
Nucleo_32.menu.opt.osstd=Smallest (-Os default)
446+
Nucleo_32.menu.opt.osstd.build.flags.optimize=-Os
447+
Nucleo_32.menu.opt.osstd.build.flags.ldspecs=
448+
Nucleo_32.menu.opt.oslto=Smallest (-Os) with LTO
449+
Nucleo_32.menu.opt.oslto.build.flags.optimize=-Os -flto
450+
Nucleo_32.menu.opt.oslto.build.flags.ldspecs=-flto
451+
Nucleo_32.menu.opt.o1std=Fast (-O1)
452+
Nucleo_32.menu.opt.o1std.build.flags.optimize=-O1
453+
Nucleo_32.menu.opt.o1std.build.flags.ldspecs=
454+
Nucleo_32.menu.opt.o1lto=Fast (-O1) with LTO
455+
Nucleo_32.menu.opt.o1lto.build.flags.optimize=-O1 -flto
456+
Nucleo_32.menu.opt.o1lto.build.flags.ldspecs=-flto
457+
Nucleo_32.menu.opt.o2std=Faster (-O2)
458+
Nucleo_32.menu.opt.o2std.build.flags.optimize=-O2
459+
Nucleo_32.menu.opt.o2std.build.flags.ldspecs=
460+
Nucleo_32.menu.opt.o2lto=Faster (-O2) with LTO
461+
Nucleo_32.menu.opt.o2lto.build.flags.optimize=-O2 -flto
462+
Nucleo_32.menu.opt.o2lto.build.flags.ldspecs=-flto
463+
Nucleo_32.menu.opt.o3std=Fastest (-O3)
464+
Nucleo_32.menu.opt.o3std.build.flags.optimize=-O3
465+
Nucleo_32.menu.opt.o3std.build.flags.ldspecs=
466+
Nucleo_32.menu.opt.o3lto=Fastest (-O3) with LTO
467+
Nucleo_32.menu.opt.o3lto.build.flags.optimize=-O3 -flto
468+
Nucleo_32.menu.opt.o3lto.build.flags.ldspecs=-flto
469+
Nucleo_32.menu.opt.ogstd=Debug (-g)
470+
Nucleo_32.menu.opt.ogstd.build.flags.optimize=-Og
471+
Nucleo_32.menu.opt.ogstd.build.flags.ldspecs=
472+
473+
Disco.menu.opt.osstd=Smallest (-Os default)
474+
Disco.menu.opt.osstd.build.flags.optimize=-Os
475+
Disco.menu.opt.osstd.build.flags.ldspecs=
476+
Disco.menu.opt.oslto=Smallest (-Os) with LTO
477+
Disco.menu.opt.oslto.build.flags.optimize=-Os -flto
478+
Disco.menu.opt.oslto.build.flags.ldspecs=-flto
479+
Disco.menu.opt.o1std=Fast (-O1)
480+
Disco.menu.opt.o1std.build.flags.optimize=-O1
481+
Disco.menu.opt.o1std.build.flags.ldspecs=
482+
Disco.menu.opt.o1lto=Fast (-O1) with LTO
483+
Disco.menu.opt.o1lto.build.flags.optimize=-O1 -flto
484+
Disco.menu.opt.o1lto.build.flags.ldspecs=-flto
485+
Disco.menu.opt.o2std=Faster (-O2)
486+
Disco.menu.opt.o2std.build.flags.optimize=-O2
487+
Disco.menu.opt.o2std.build.flags.ldspecs=
488+
Disco.menu.opt.o2lto=Faster (-O2) with LTO
489+
Disco.menu.opt.o2lto.build.flags.optimize=-O2 -flto
490+
Disco.menu.opt.o2lto.build.flags.ldspecs=-flto
491+
Disco.menu.opt.o3std=Fastest (-O3)
492+
Disco.menu.opt.o3std.build.flags.optimize=-O3
493+
Disco.menu.opt.o3std.build.flags.ldspecs=
494+
Disco.menu.opt.o3lto=Fastest (-O3) with LTO
495+
Disco.menu.opt.o3lto.build.flags.optimize=-O3 -flto
496+
Disco.menu.opt.o3lto.build.flags.ldspecs=-flto
497+
Disco.menu.opt.ogstd=Debug (-g)
498+
Disco.menu.opt.ogstd.build.flags.optimize=-Og
499+
Disco.menu.opt.ogstd.build.flags.ldspecs=

Diff for: platform.txt

+7-5
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ compiler.warning_flags.all=-Wall -Wextra
2222

2323
compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
2424
compiler.c.cmd=arm-none-eabi-gcc
25-
compiler.c.flags=-mthumb -c -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf -MMD {compiler.stm.extra_include}
25+
compiler.c.flags=-mthumb -c {build.flags.optimize} {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf -MMD {compiler.stm.extra_include}
2626
compiler.c.elf.cmd=arm-none-eabi-gcc
27-
compiler.c.elf.flags=-mthumb -Os -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align
27+
compiler.c.elf.flags=-mthumb {build.flags.optimize} {build.flags.ldspecs} -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align
2828
compiler.S.cmd=arm-none-eabi-gcc
2929
compiler.S.flags=-mthumb -c -x assembler-with-cpp {compiler.stm.extra_include}
3030
compiler.cpp.cmd=arm-none-eabi-g++
31-
compiler.cpp.flags=-mthumb -c -Os {compiler.warning_flags} -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -Dprintf=iprintf -MMD {compiler.stm.extra_include}
32-
compiler.ar.cmd=arm-none-eabi-ar
31+
compiler.cpp.flags=-mthumb -c {build.flags.optimize} {compiler.warning_flags} -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -Dprintf=iprintf -MMD {compiler.stm.extra_include}
32+
compiler.ar.cmd=arm-none-eabi-gcc-ar
3333
compiler.ar.flags=rcs
3434
compiler.objcopy.cmd=arm-none-eabi-objcopy
3535
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
3636
compiler.elf2hex.flags=-O binary
3737
compiler.elf2hex.cmd=arm-none-eabi-objcopy
38-
compiler.ldflags=
38+
compiler.ldflags={build.flags.ldspecs}
3939
compiler.size.cmd=arm-none-eabi-size
4040
compiler.define=-DARDUINO=
4141

@@ -66,6 +66,8 @@ build.usb_manufacturer="Unknown"
6666
#
6767
build.xSerial=
6868
build.enable_usb=
69+
build.flags.optimize=
70+
build.flags.ldspecs=
6971

7072
# compile patterns
7173
# ---------------------

0 commit comments

Comments
 (0)