À l'image de l'utilitaire size pour gcc, avr-size permet de connaître l'empreinte mémoire de programmes pour microcontrôleurs AVR compilés avec avr-gcc.

Ainsi avr-size propose deux options dédiées aux AVR :

  • L'option -C offre une vue de l'empreinte mémoire adaptée aux microcontrôleurs AVR, en distinguant la mémoire de programme (flash) et la mémoire de données (RAM).
  • L'option --mcu permet d'indiquer le type d'AVR et d'obtenir un taux d'occupation mémoire exprimé sous forme de pourcentage.

Malheureusement, ces options ne sont pas supportées par la version d'avr-size livrée avec la distribution Ubuntu 10.04 LTS (Lucid Lynx). Leur utilisation se solde par une erreur.

$ avr-size -C --mcu=atmega328p helloworld.elf
avr-size: invalid option -- 'C'
Usage: avr-size [option(s)] [file(s)]
 Displays the sizes of sections inside binary files
 If no input file(s) are specified, a.out is assumed
 The options are:
  -A|-B     --format={sysv|berkeley}  Select output style (default is berkeley)
  -o|-d|-x  --radix={8|10|16}         Display numbers in octal, decimal or hex
  -t        --totals                  Display the total sizes (Berkeley only)
            --common                  Display total size for *COM* syms
            --target=<bfdname>        Set the binary file format
            @<file>                   Read options from <file>
  -h        --help                    Display this information
  -v        --version                 Display the program's version

avr-size: supported targets: elf32-avr elf32-little elf32-big srec symbolsrec verilog tekhex binary ihex

En effet, la version du paquet binutils-avr (2.20-2) livrée avec cette version de la distribution Ubuntu est une version non patchée de l'utilitaire size de gcc. Cet article propose une solution pour remédier à ce problème.