Un test avec l’utilisation du mot-clef « PROGMEM » donne des résultats divers.
Si dans le programme blink.ino, avec comme cible le Duemilanove, on défini la LED 13; avec ou sans la classe de stockage PROGMEM, ça ne change rien: dans les 2 cas, les variables prennent 9 bytes.
Par contre dans un programme plus long, qui utilise des chaînes de caractère, la différence se montre.
const char string_1[] PROGMEM = "String 1";
const char string_2[] PROGMEM = "String 2";
(ect pour 5 chaînes)
Donne les résultats suivants:
avec PROGMEM:
Les variables globales utilisent 218 octets (10%) de mémoire dynamique, ce qui laisse 1’830 octets pour les variables locales. Le maximum est de 2’048 octets.
Sans PROGMEM:
Les variables globales utilisent 284 octets (13%) de mémoire dynamique, ce qui laisse 1’764 octets pour les variables locales. Le maximum est de 2’048 octets.