The earliest version of FAT, the file system integrated into MS-DOS, is now called FAT12, so-called because each cluster address in the File Allocation Table is 12 bits long. This limits disk size to approximately 32 MB. Extensions to 16- and 32-bit addresses (i.e., FAT16 and FAT32), expand support to 2 GB and 8 TB, respectively.
FAT version |
Pointer size (Table entry size) |
Max. size of disk |
Free cluster marker |
Damaged cluster marker |
End of cluster chain marker |
FAT12 |
12 bits |
32 MB |
0 |
0xff7 |
0xff8 |
FAT16 |
16 bits |
2 GB |
0 |
0xfff7 |
0xfff8 |
FAT32 |
32 bits |
8 TB |
0 |
0x0fff fff7 |
0x0fff fff8 |
In µC/FS, you can enable support for FAT12, FAT16 and FAT32 individually: this means that you can enable only the FAT version that you need for your embedded system (see Appendix E, “μC/FS Configuration”.
FAT32 introduced some innovations: