Alleggerire libreria SDFat

Ciao a tutti,
uso la libreria SDFat da un pò di tempo ed ora per un progetto in cui lo spazio in flash è limitato e non posso cambiare micro chiedo se c'è un modo per moddare la libreria e renderla più leggera, togliendo tutte quelle funzionalità che non uso.
Premetto che sono un hardwarista e non me ne intendo di programmazione a livello di librerie ma ho un amico che mi può aiutare in questo e quindi cerco qualche indicazione/consiglio.

Vorrei limitare la libreria alle sole memorie SDHC in Fat16 quindi fino a 2GB di volume, e preservare le funzioni di lettura e scrittura su file.

Una alternativa è di usare la libreria Fat16lib ma questa non supporta le SDHC ma solo le SD standard "vecchie" che non riesco a reperire. Si potrebbe estendere magari questa libreria per renderla fruibile su memorie SDHC?

Grazie a tutti :slight_smile:

Ciao! Esistono complessità diverse a seconda della libreria e del suo scopo! Più è complesso il codice della libreria più è complicato modificarla. Diciamo che le librerie nascono per rendere più semplice cose complesse, per cui la maggior parte delle librerie sono complesse a livello di codice "a parte poche eccezioni", e solo programmatori molto esperti possono crearle o modificarle.

Il problema è che un metodo potrebbe usare un altro metodo o una struttura dati o variabili, quindi non si può cancellare, ad esempio un metodo che non si usa senza sapere se altre parti del codice lo richiamano. Per modificarla bisognerebbe conoscere bene tutto il codice della libreria "cosa complessa".

Concludendo, sarebbe una cosa molto complicata fuori dalla portata di molte persone, compreso me :slight_smile: :wink:.

ekjk:
Ciao a tutti,
uso la libreria SDFat da un pò di tempo ed ora per un progetto in cui lo spazio in flash è limitato e non posso cambiare micro chiedo se c'è un modo per moddare la libreria e renderla più leggera, togliendo tutte quelle funzionalità che non uso....

Guarda che il compilatore ed il linker sono piuttosto "furbi" e ... tutto ciò che NON è utilizzato viene eliminato !

Quindi ... TU non devi fare nulla, fa tutto il software e, se il codice non ti ci stà ...
... o riduci qualche cosa nel TUO programma o cambi scheda.

Guglielmo

Sapevo che il linker inserisce solo il codice necessario di una libreria, ma essendo le librerie di arduino non vere librerie ma sorgenti, non pensavo che avvenisse una cosa analoga,ma che tutta "la libreria di arduino" venisse compilata. Buono a sapersi!

torn24:
Sapevo che il linker inserisce solo il codice necessario di una libreria, ma essendo le librerie di arduino non vere librerie ma sorgenti, non pensavo che avvenisse una cosa analoga,

Semmai è proprio per quello che nell'output hai solo il codice effettivamente utilizzato. Con librerie precompilate (tipo le DLL) queste finiscono sempre per intero negli eseguibili, o inglobate o come file separati.

Qualcuno saprebbe come estendere le libreria fat16 per supportare le micro sdhc?

Ma tu hai formattato preventivamente la SDHC a 2Gb?

Potresti provare la versione più recente di fat16lib

oppure quest'altra - tinyFAT
http://www.rinkydinkelectronics.com/library.php?id=37