Salve,
sto utilizzando Arduino Uno + RTC DS3231 (I2C) + OLED SH1106 (I2C) + pulsanti vari.
Con il seguente codice, praticamente solo per inizializzare gli oggetti
#include <U8x8lib.h> // https://github.com/olikraus/u8g2
#include <DS3232RTC.h> // https://github.com/JChristensen/DS3232RTC
U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
void setup() {
RTC.setAlarm(ALM1_MATCH_DATE, 0, 0, 0, 1);
RTC.setAlarm(ALM2_MATCH_DATE, 0, 0, 0, 1);
RTC.alarm(ALARM_1);
RTC.alarm(ALARM_2);
RTC.alarmInterrupt(ALARM_1, false);
RTC.alarmInterrupt(ALARM_2, false);
RTC.squareWave(SQWAVE_NONE);
u8x8.begin();
u8x8.clear();
}
void loop() {}
ottengo in compilazione che:
Lo sketch usa 5518 byte (17%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Prevedibile, visto che la U8x8lib, pur essendo () tra le più leggere in termini di memoria dinamica, è comunque un mattone.
Ora la questione è che compilando il mio codice, ottengo:
Lo sketch usa 32018 byte (99%) dello spazio disponibile per i programmi. Il massimo è 32256 byte.
Sto cercando di ottimizzare, eliminando il superfluo, utilizzando font meno pesanti, etc, ma mi chiedevo se è possibile sapere quali librerie vengono effettivamente caricate in fase di compilazione.
La mia è solo una ipotesi, ma magari eliminando una qualche chiamata, mi risparmio qualcosa.
Non so bene come funziona il compilatore, ma immagino che se dichiaro qualcosa String, mi caricherà la relativa libreria, quindi controllando cosa carica, potrei cercare di escluderla.
Se ho detto ca***te frustatemi pure
TIA
Federico