Sul blog di Elettronica Open Source puoi leggere non solo tutti gli articoli Premium riservati agli abbonati Platinum 2.0 e inseriti nella rivista Firmware 2.0 (insieme ad articoli tecnici, progetti, approfondimenti sulle tecnologie emergenti, news, tutorial a puntate, e molto altro) ma anche gli articoli della Rubrica Firmware Reload. In questa Rubrica del blog abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi evergreen per Professionisti, Makers, Hobbisti e Appassionati di elettronica. La libreria Microchip MDD (Memory Disk Drive) permette di trasferire e condividere i dispositivi di memoria portatili tra un sistema embedded e un personal computer, fornendo le funzioni di I/O in grado di leggere e/o scrivere su questi dispositivi di memoria tramite un microcontrollore.
L’MBR
Il Master Boot Record (MBR) contiene le informazioni utilizzate per eseguire il boot dalla card e le informazioni relative alle partizioni definite, fino a un massimo di quattro.
Le Partition Entry presenti nell’MBR (16 byte) sono strutturate come mostrato in Figura 2. In genere, le schede di memoria SD includono una singola partizione attiva.
IL BOOT SECTOR
Come indicato in Figura 1, questo è il primo settore di ogni partizione e contiene informazioni relative al file system e puntatori a parti importanti della partizione. Si noti come la prima informazione memorizzata nel boot sector sia un comando di salto a un indirizzo successivo all’area di boot (Figura 3).
LA ROOT DIRECTORY
Questa sezione della partizione (si veda la Figura 4) serve a memorizzare, in strutture di 32 byte, le informazioni relative ai file e alle directory.
Ciascuna struttura include il nome del file, la sua dimensione, l’indirizzo del primo cluster del file e l’orario in cui il file è stato creato o modificato. Nel file system FAT16, la root directory si trova nell’area successiva alle FAT; nel file system FAT32, invece, la root è una comune catena di cluster e può trovarsi in qualunque punto dell’unità di memoria.
LA FAT
La File Allocation Table è composta da una serie di elementi, ognuno dei quali è associato a un cluster presente nell’area dati della partizione. Questi elementi sono formati da 2 byte nel caso di file system FAT16, e 4 byte nel caso FAT32; le combinazioni di valori ammissibili per entrambi i casi sono indicate in Figura 5.
Come esempio, si consideri il caso indicato in Figura 6, in cui esistono tre file (File1, File2 e File3) nel file system. File1 e File3 hanno una dimensione minore o uguale a quella di un cluster (e utilizzano i cluster 3 e 6, rispettivamente), mentre File2 occupa ben quattro cluster (4, 5, 7 e 8). Il campo VALUE assume il valore FFFFh nel caso in cui il cluster sia l’ultimo del file, altrimenti punta al cluster successivo. Occorre inoltre osservare come i cluster 0 e 1 siano riservati, e pertanto il primo cluster disponibile nella regione dati è il cluster numero 2. Si noti inoltre che, come avviene in questo caso, non è sempre possibile assegnare cluster contigui a un file: a causa di ripetute operazioni di creazione e rimozione dei file, infatti, si genera una vera e propria “frammentazione” dello spazio su disco, e occorre saltare da una parte all’altra per trovare un cluster disponibile.