|  | 

BigFAT per emFile

Il FAT (File Allocation Table) è probabilmente il file system più diffuso al mondo. Introdotto nel 1977 da Microsoft per i floppy disk, è stato potenziato più volte, passando da FAT12 a FAT16, fino a FAT32. È stato inoltre esteso sotto altri aspetti, come il supporto per i nomi di file lunghi, mantenendo generalmente la retrocompatibilità.

Il FAT è probabilmente la scelta di formato più popolare per i supporti rimovibili, come schede SD e chiavette USB, poiché è supportato da tutti i sistemi operativi e dai dispositivi embedded. Sfortunatamente, il FAT presenta una limitazione significativa: un supporto formattato come FAT può contenere solo file di dimensioni inferiori a 4 GB, il che può rappresentare un limite per alcuni tipi di dati, come filmati, database o container di dischi rigidi virtuali.

BigFAT di SEGGER è una specifica che definisce come archiviare file di grandi dimensioni, ben oltre 1 TB, su qualsiasi unità formattata in FAT. I sistemi FAT standard vedono i “big file” come file multipli, che possono essere letti, scritti e copiati.

Caratteristiche principali

  • Mantiene la piena compatibilità con il FAT.
  • Supporta tutti i tipi di memoria, come NAND, NOR, schede SD/MMC/CompactFlash.
  • Utility gratuita per leggere e scrivere file di grandi dimensioni da PC.
  • Specifiche completamente pubbliche e aperte.
  • Non vincolato da alcun brevetto.
  • Componente emFile disponibile per gestire BigFAT su sistemi embedded.

BigFAT vs exFAT

Il FAT è un ottimo file system per l’archiviazione rimovibile, ma il suo unico limite è la dimensione massima dei file di 4 GB.

exFAT è la risposta di Microsoft a questo limite. Gestisce dimensioni di file di ordini di grandezza superiori al normale sistema FAT, eliminando essenzialmente il problema.

BigFAT è la risposta di SEGGER. Risolve il problema definendo come suddividere un file di 4 GB o più in segmenti (chunks) e come denominarli. I file più piccoli di 4 GB vengono archiviati nello stesso modo, quindi solo i file grandi vengono salvati come file multipli. BigFAT gestisce pertanto dimensioni di file illimitate.


L’uso di BigFAT rispetto a exFAT

L’exFAT è stato introdotto da Microsoft nel 2006 per essere “ottimizzato per memorie flash come chiavette USB e schede SD”. Probabilmente c’era anche una ragione commerciale: tutti i brevetti sul FAT erano scaduti, il che significava che Microsoft non poteva più concedere in licenza o controllare la tecnologia. Microsoft detiene tuttavia diversi brevetti relativi all’exFAT e il suo utilizzo richiede una licenza (disponibile tramite SEGGER). La SD Association ha adottato l’exFAT come file system predefinito per le schede SDXC superiori a 32 GB.

La specifica BigFAT è completamente aperta al pubblico. Chiunque è libero di aggiungere il supporto per BigFAT al proprio software senza costi di licenza o permessi. Il convertitore BigFAT di SEGGER è un programma a riga di comando gratuito, disponibile per Windows, macOS o Linux. SEGGER incoraggia l’adozione diffusa di BigFAT come nuovo standard aperto! Le schede SD o SDXC possono essere semplicemente riformattate con il vecchio, collaudato e gratuito file system FAT e, grazie a BigFAT, la restrizione dei 4 GB per file viene eliminata.

Licenza exFAT tramite SEGGER

Per chi desidera o necessita di exFAT, SEGGER ha collaborato con Microsoft per rendere disponibile una licenza diretta Microsoft tramite SEGGER. Inoltre, SEGGER può offrire un’implementazione altamente ottimizzata e fornire un’esperienza cliente di alta qualità, inclusi garanzia e supporto.


Specifica Tecnica

BigFAT si appoggia al FAT. Suddivide i dati di un file di dimensioni pari o superiori a 4 GB in file più piccoli (chunks) che possono essere gestiti dal file system FAT sottostante. BigFAT indirizza le operazioni sui file ai segmenti appropriati, a seconda della posizione del file a cui si accede.

I file più piccoli di 4 GB – 128 KB vengono trattati come file normali. Non appena il file supera tale limite, viene esteso. Un file esteso è composto da un base file (file di base) e uno o più continuation files (file di continuazione). Questi ultimi sono memorizzati nella stessa directory del file di base, con il nome derivato da quest’ultimo più un’estensione aggiuntiva nel formato .<Index>.BigFAT, dove l’indice è un numero decimale a tre cifre (es. .001.BigFAT). BigFAT richiede il supporto per i nomi di file lunghi (LFN) sul livello del file system sottostante.

Quando il file di base supera i 4 GB – 128 KB, viene creato il primo file di continuazione. Questa procedura garantisce che il primo byte nel file di continuazione sia allineato a un limite di settore logico, aumentando le prestazioni.


Utilizzo di BigFAT

  • Trasferimento di file di grandi dimensioni (es. filmati) verso i TV: I file video spesso superano i 4 GB. Con BigFAT, questi trasferimenti possono essere eseguiti facilmente senza dover dividere manualmente il filmato o ridurne la qualità.
  • Creazione di file di grandi dimensioni su dispositivi embedded: Ideale per i data logger industriali che registrano dati di sensori per lunghi periodi o per sistemi di gestione delle batterie (BMS) che raccolgono dati cella per cella.
  • Grandi database su sistemi embedded: BigFAT consente l’accesso casuale in lettura e scrittura a qualsiasi file superiore a 4 GB, come richiesto dai database. L’unico limite è la dimensione dello storage disponibile.

Componente emFile BigFAT

Il componente emFile BigFAT è un add-on opzionale che consente a un’applicazione target di accedere ai file conformi alla specifica BigFAT di SEGGER tramite un’API dedicata, che segue lo stesso design dell’API regolare di emFile. L’integrazione è semplice: richiede solo l’aggiunta di un file sorgente e l’attivazione del supporto per i nomi di file lunghi.


FAQ (Domande frequenti)

D: Qual è il vantaggio di BigFAT rispetto a exFAT? R: BigFAT è una specifica aperta, mentre exFAT è una specifica chiusa protetta da brevetti Microsoft. exFAT non può essere utilizzato legalmente senza il permesso di Microsoft.

D: Posso implementare BigFAT da solo? R: Assolutamente sì. Chiunque è libero di scrivere software che lo implementi. Niente costi, niente royalty, niente mal di testa. Non è nemmeno necessario informare SEGGER.

D: Cosa ne guadagna SEGGER? Perché renderlo gratuito? R: Vediamo clienti emFile che chiedono soluzioni per file più grandi. Implementare exFAT è complicato per via dei brevetti e richiede accordi con Microsoft che possono essere costosi e richiedere tempo. Riteniamo che debba esistere un’alternativa gratuita. Più BigFAT diventa popolare, meglio è.

Articoli simili

  •  | 

    Segger Flasher ATE (gang)

    A differenza della programmazione di singoli dispositivi, la programmazione gang è un metodo altamente efficiente utilizzato nella produzione elettronica per programmare più dispositivi simultaneamente. Questo approccio è particolarmente vantaggioso in contesti in cui grandi quantità di microcontrollori o altri dispositivi programmabili devono essere configurati in modo rapido e accurato. Riducendo significativamente il tempo totale di…

  •  |  | 

    Segger IoT Toolkit

    Panoramica L’IoT Toolkit è una raccolta di librerie progettate per comunicare senza sforzo con i moderni dispositivi IoT, permettendoti di concentrarti sulle parti cruciali della tua applicazione. Sebbene i dispositivi IoT parlino tipicamente linguaggi semplici, implementare questi protocolli secondo gli standard ufficiali può diventare un onere gravoso. L’IoT Toolkit fornisce librerie collaudate per aiutarti a…

  •  |  | 

    Segger emFTP

    FTP significa File Transfer Protocol (Protocollo di Trasferimento File). È il meccanismo di base per spostare file tra macchine su reti basate su TCP/IP, come Internet. L’FTP è un protocollo client/server, il che significa che una macchina (il client) avvia il trasferimento contattando un’altra macchina (il server) ed effettuando delle richieste. Il server deve essere…

  •  | 

    Segger Flasher

    La programmazione a singola unità consiste nel caricamento del software su un unico microcontrollore o processore dedicato all’interno di un sistema più ampio. La famiglia di programmatori Flasher di SEGGER per unità singole include i modelli Flasher Pro, Pro XL, Compact e Portable PLUS. Questi strumenti universali per la programmazione in-system (ISP) offrono una programmazione…

  •  |  | 

    Segger emRun++

    emRun++ è una libreria standard C++ completa, utilizzabile con qualsiasi toolchain. È stata specificamente ottimizzata per sistemi e applicazioni embedded. In quanto linguaggio di programmazione moderno, il C++ sta diventando sempre più importante nel settore embedded, offrendo agli sviluppatori opzioni sempre più vaste. Con questo obiettivo, emRun++ viene costantemente aggiornata per soddisfare i più moderni…

  •  |  | 

    Segger emBoot Secure

    Panoramica emBoot-Secure è la soluzione di SEGGER conforme al Cyber Resilience Act (CRA) per aggiornamenti firmware sicuri e verificabili su dispositivi embedded. Questo approccio end-to-end protegge i dispositivi da modifiche non autorizzate del firmware, furto di proprietà intellettuale e clonazione. Garantisce che venga installato solo firmware autentico e approvato dal produttore, utilizzando un’architettura crittografica a…