diff --git a/boards.txt b/boards.txt index 6d6856bbd5..17a501de11 100644 --- a/boards.txt +++ b/boards.txt @@ -5,6 +5,7 @@ menu.pnum=Board part number menu.xserial=Extra serial instance menu.usb=USB interface +menu.opt=Optimize menu.upload_method=Upload method ################################################################################ @@ -382,4 +383,117 @@ Disco.menu.usb.none=None Disco.menu.usb.HID=HID keyboard and mouse support (if available) Disco.menu.usb.HID.build.enable_usb={build.usb_flags} -DUSBD_USE_HID_COMPOSITE #Disco.menu.usb.CDC=CDC (if available) -#Disco.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS \ No newline at end of file +#Disco.menu.usb.CDC.build.enable_usb={build.usb_flags} -DUSBD_USE_CDC -DUSE_USB_FS + +# Optimizations +Nucleo_144.menu.opt.osstd=Smallest (-Os default) +Nucleo_144.menu.opt.osstd.build.flags.optimize=-Os +Nucleo_144.menu.opt.osstd.build.flags.ldspecs= +Nucleo_144.menu.opt.oslto=Smallest (-Os) with LTO +Nucleo_144.menu.opt.oslto.build.flags.optimize=-Os -flto +Nucleo_144.menu.opt.oslto.build.flags.ldspecs=-flto +Nucleo_144.menu.opt.o1std=Fast (-O1) +Nucleo_144.menu.opt.o1std.build.flags.optimize=-O1 +Nucleo_144.menu.opt.o1std.build.flags.ldspecs= +Nucleo_144.menu.opt.o1lto=Fast (-O1) with LTO +Nucleo_144.menu.opt.o1lto.build.flags.optimize=-O1 -flto +Nucleo_144.menu.opt.o1lto.build.flags.ldspecs=-flto +Nucleo_144.menu.opt.o2std=Faster (-O2) +Nucleo_144.menu.opt.o2std.build.flags.optimize=-O2 +Nucleo_144.menu.opt.o2std.build.flags.ldspecs= +Nucleo_144.menu.opt.o2lto=Faster (-O2) with LTO +Nucleo_144.menu.opt.o2lto.build.flags.optimize=-O2 -flto +Nucleo_144.menu.opt.o2lto.build.flags.ldspecs=-flto +Nucleo_144.menu.opt.o3std=Fastest (-O3) +Nucleo_144.menu.opt.o3std.build.flags.optimize=-O3 +Nucleo_144.menu.opt.o3std.build.flags.ldspecs= +Nucleo_144.menu.opt.o3lto=Fastest (-O3) with LTO +Nucleo_144.menu.opt.o3lto.build.flags.optimize=-O3 -flto +Nucleo_144.menu.opt.o3lto.build.flags.ldspecs=-flto +Nucleo_144.menu.opt.ogstd=Debug (-g) +Nucleo_144.menu.opt.ogstd.build.flags.optimize=-Og +Nucleo_144.menu.opt.ogstd.build.flags.ldspecs= + +Nucleo_64.menu.opt.osstd=Smallest (-Os default) +Nucleo_64.menu.opt.osstd.build.flags.optimize=-Os +Nucleo_64.menu.opt.osstd.build.flags.ldspecs= +Nucleo_64.menu.opt.oslto=Smallest (-Os) with LTO +Nucleo_64.menu.opt.oslto.build.flags.optimize=-Os -flto +Nucleo_64.menu.opt.oslto.build.flags.ldspecs=-flto +Nucleo_64.menu.opt.o1std=Fast (-O1) +Nucleo_64.menu.opt.o1std.build.flags.optimize=-O1 +Nucleo_64.menu.opt.o1std.build.flags.ldspecs= +Nucleo_64.menu.opt.o1lto=Fast (-O1) with LTO +Nucleo_64.menu.opt.o1lto.build.flags.optimize=-O1 -flto +Nucleo_64.menu.opt.o1lto.build.flags.ldspecs=-flto +Nucleo_64.menu.opt.o2std=Faster (-O2) +Nucleo_64.menu.opt.o2std.build.flags.optimize=-O2 +Nucleo_64.menu.opt.o2std.build.flags.ldspecs= +Nucleo_64.menu.opt.o2lto=Faster (-O2) with LTO +Nucleo_64.menu.opt.o2lto.build.flags.optimize=-O2 -flto +Nucleo_64.menu.opt.o2lto.build.flags.ldspecs=-flto +Nucleo_64.menu.opt.o3std=Fastest (-O3) +Nucleo_64.menu.opt.o3std.build.flags.optimize=-O3 +Nucleo_64.menu.opt.o3std.build.flags.ldspecs= +Nucleo_64.menu.opt.o3lto=Fastest (-O3) with LTO +Nucleo_64.menu.opt.o3lto.build.flags.optimize=-O3 -flto +Nucleo_64.menu.opt.o3lto.build.flags.ldspecs=-flto +Nucleo_64.menu.opt.ogstd=Debug (-g) +Nucleo_64.menu.opt.ogstd.build.flags.optimize=-Og +Nucleo_64.menu.opt.ogstd.build.flags.ldspecs= + +Nucleo_32.menu.opt.osstd=Smallest (-Os default) +Nucleo_32.menu.opt.osstd.build.flags.optimize=-Os +Nucleo_32.menu.opt.osstd.build.flags.ldspecs= +Nucleo_32.menu.opt.oslto=Smallest (-Os) with LTO +Nucleo_32.menu.opt.oslto.build.flags.optimize=-Os -flto +Nucleo_32.menu.opt.oslto.build.flags.ldspecs=-flto +Nucleo_32.menu.opt.o1std=Fast (-O1) +Nucleo_32.menu.opt.o1std.build.flags.optimize=-O1 +Nucleo_32.menu.opt.o1std.build.flags.ldspecs= +Nucleo_32.menu.opt.o1lto=Fast (-O1) with LTO +Nucleo_32.menu.opt.o1lto.build.flags.optimize=-O1 -flto +Nucleo_32.menu.opt.o1lto.build.flags.ldspecs=-flto +Nucleo_32.menu.opt.o2std=Faster (-O2) +Nucleo_32.menu.opt.o2std.build.flags.optimize=-O2 +Nucleo_32.menu.opt.o2std.build.flags.ldspecs= +Nucleo_32.menu.opt.o2lto=Faster (-O2) with LTO +Nucleo_32.menu.opt.o2lto.build.flags.optimize=-O2 -flto +Nucleo_32.menu.opt.o2lto.build.flags.ldspecs=-flto +Nucleo_32.menu.opt.o3std=Fastest (-O3) +Nucleo_32.menu.opt.o3std.build.flags.optimize=-O3 +Nucleo_32.menu.opt.o3std.build.flags.ldspecs= +Nucleo_32.menu.opt.o3lto=Fastest (-O3) with LTO +Nucleo_32.menu.opt.o3lto.build.flags.optimize=-O3 -flto +Nucleo_32.menu.opt.o3lto.build.flags.ldspecs=-flto +Nucleo_32.menu.opt.ogstd=Debug (-g) +Nucleo_32.menu.opt.ogstd.build.flags.optimize=-Og +Nucleo_32.menu.opt.ogstd.build.flags.ldspecs= + +Disco.menu.opt.osstd=Smallest (-Os default) +Disco.menu.opt.osstd.build.flags.optimize=-Os +Disco.menu.opt.osstd.build.flags.ldspecs= +Disco.menu.opt.oslto=Smallest (-Os) with LTO +Disco.menu.opt.oslto.build.flags.optimize=-Os -flto +Disco.menu.opt.oslto.build.flags.ldspecs=-flto +Disco.menu.opt.o1std=Fast (-O1) +Disco.menu.opt.o1std.build.flags.optimize=-O1 +Disco.menu.opt.o1std.build.flags.ldspecs= +Disco.menu.opt.o1lto=Fast (-O1) with LTO +Disco.menu.opt.o1lto.build.flags.optimize=-O1 -flto +Disco.menu.opt.o1lto.build.flags.ldspecs=-flto +Disco.menu.opt.o2std=Faster (-O2) +Disco.menu.opt.o2std.build.flags.optimize=-O2 +Disco.menu.opt.o2std.build.flags.ldspecs= +Disco.menu.opt.o2lto=Faster (-O2) with LTO +Disco.menu.opt.o2lto.build.flags.optimize=-O2 -flto +Disco.menu.opt.o2lto.build.flags.ldspecs=-flto +Disco.menu.opt.o3std=Fastest (-O3) +Disco.menu.opt.o3std.build.flags.optimize=-O3 +Disco.menu.opt.o3std.build.flags.ldspecs= +Disco.menu.opt.o3lto=Fastest (-O3) with LTO +Disco.menu.opt.o3lto.build.flags.optimize=-O3 -flto +Disco.menu.opt.o3lto.build.flags.ldspecs=-flto +Disco.menu.opt.ogstd=Debug (-g) +Disco.menu.opt.ogstd.build.flags.optimize=-Og +Disco.menu.opt.ogstd.build.flags.ldspecs= diff --git a/platform.txt b/platform.txt index 98f6e20f2f..37c615355a 100644 --- a/platform.txt +++ b/platform.txt @@ -22,20 +22,20 @@ compiler.warning_flags.all=-Wall -Wextra compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/ compiler.c.cmd=arm-none-eabi-gcc -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} +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} compiler.c.elf.cmd=arm-none-eabi-gcc -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 +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 compiler.S.cmd=arm-none-eabi-gcc compiler.S.flags=-mthumb -c -x assembler-with-cpp {compiler.stm.extra_include} compiler.cpp.cmd=arm-none-eabi-g++ -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} -compiler.ar.cmd=arm-none-eabi-ar +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} +compiler.ar.cmd=arm-none-eabi-gcc-ar compiler.ar.flags=rcs compiler.objcopy.cmd=arm-none-eabi-objcopy compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 compiler.elf2hex.flags=-O binary compiler.elf2hex.cmd=arm-none-eabi-objcopy -compiler.ldflags= +compiler.ldflags={build.flags.ldspecs} compiler.size.cmd=arm-none-eabi-size compiler.define=-DARDUINO= @@ -66,6 +66,8 @@ build.usb_manufacturer="Unknown" # build.xSerial= build.enable_usb= +build.flags.optimize= +build.flags.ldspecs= # compile patterns # ---------------------