À 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.