[Résolu] Taille du programme en fonction des librairies choisies

Bonjour,

Shain:
J'ai remarqué une différence de taille de mon sketch après compilation si j'utilise la libraire EEPROM de avr ou celle de arduino.
Je passe de 28474 (avec avr) à 28508 bytes (avec arduino).

Savez-vous pourquoi il y a cette différence ?

C'est trés simple, la librairie EEPROM arduino est écrite en C++ avec une classe "EEPROMClass" appelant les fonctions de la librairie EEPROM AVR.
Cela ajoute donc une portion de code en plus pour la création / gestion de l'objet C++.

La librairie EEPROM AVR utilise les registres directement elle est donc plus légère que la version arduino avec une couche de C++ par dessus :wink:

Pour donner une petite idée de l'inutilité de la librairie EEPROM arduino voici son code complet :

#include <avr/eeprom.h>
#include "Arduino.h"
#include "EEPROM.h"

uint8_t EEPROMClass::read(int address)
{
	return eeprom_read_byte((unsigned char *) address);
}

void EEPROMClass::write(int address, uint8_t value)
{
	eeprom_write_byte((unsigned char *) address, value);
}

EEPROMClass EEPROM;

C'est à ce demander si une simple macro #define n'aura pas suffit ...