328p/8Mhz/3.3V Bootloader - MiniCore gar nicht so Mini [gelöst]

Also eigentlich will ich etwas Speicher auf einem Pro Mini 328p/8Mhz/3.3V freischaufeln.
Daher dachte ich, ich suche mir einen anderen Bootloader.

Gefunden hätte ich dann die "MiniCore" (ist das das gleiche wie Optiboot?) und ich kann das auch direkt über die IDE installieren (JSON hinzufügen, Boardmanager Boards installieren), flashen und funktioniert

Das sieht man auch gleich:

Pro Mini: Das Maximum sind 30720 Bytes.
UNO: Das Maximum sind 32256 Bytes.
MiniCore: Das Maximum sind 32256 Bytes.

Aber - denkste: Nun habe ich festgestellt, dass das Kompilat größer wird:

Blink Sketch:
Pro Mini:
Der Sketch verwendet 924 Bytes (3%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

UNO - ist gleich:
Der Sketch verwendet 924 Bytes (2%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

MiniCore:
Der Sketch verwendet 1030 Bytes (3%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Ja toll, ich spar 1.5K beim Bootloader, dafür wird dieser Mini-Sketch um 100 Byte größer.
Mein eigentlicher Sketch kommt mit dem MiniCore sogar über die 32K Grenze, da hilft nicht mal mehr der kleinere Bootloader.

Meine Frage 1: ist das "normal" - kann mir das einer in einfachen Worten erklären? Was ist am MiniCore anders, dass das Kompilat größer wird?

Bei den avrdude Parametern kommt beim MiniCore offenbar ein -flto -MMD hinzu. Ist das relevant?

Frage 2: hätte jemand einen Bootloader + passende Boards.txt für einen 328p/8Mhz/3.3V womit die Sketche nicht größer als am Uno werden?

Im Anhang die 3 Meldungen aus der IDE, aber imho steht alles hier drinnen.

MiniCore.txt (30.3 KB)

ProMini.txt (33.9 KB)

Uno.txt (33.6 KB)

-flto

Natürlich macht das was aus!

LTO ist beim MiniCore disabled.
Kannste aber im Menü aktivieren.

Zudem wird für den UNO ein modernerer Compiler verwendet.

Aus purer Neugier habe ich mal geschaut, was sich hinter der Abkürzung verbirgt:

Link time optimization / LTO

ah....

Der Sketch verwendet 880 Bytes (2%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 9 Bytes (0%) des dynamischen Speichers, 2039 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.

Thanks to LTO (Link Time Optimization), making your sketches smaller and faster is now only a push of the “Compile” button away.

naja, wieder was zum googeln...

Danke combie,
karma+