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 ![]()
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 ...