В продолжение
темыГоспода, а давайте порассуждаем на тему написания FAT16/32 с применением ООП

Как вы уже догадались, это моя идея фикс.
Вообще подход ООП у меня уже удачно работает с сетью RS485, где есть родитель - драйвер устройства, где определены базовые методы, виртуальные методы, и общие переменные (например счетчики ошибок и т.п.). Какждый конкретный драйвер устройства получается простым наследованием базового и определением виртуальных функций по месту, новых, присущих только этому устройству, методов.
Такой же подход работает и в GUI.
А как с ФС? Скажу по секрету, я плохо себе представляю написание ФС, никогда этим не страдал

Но очень хочу. Готовую ФС (FaFS) использовал.
Вижу следующие плюсы решения:
1. Можем для каждого "привода" завести объект ФС
CODE
TFATFS sdFS;
TFATFS hddFS;
2. Упрощается реализация когда. Ну проще читать его, чтоли...
При этом не нужно заморачиваться со структурами и указателями на них, трудно будет перепутать (фактически невозможно) файловую систему на паре SD-карт (а несколько MCI на МК уже и не редкость). Или не ошибемся, когда будем работать с файлами на NAND, DATA FLASH и SD-карте. Конечно, это уже косметические достоинства.
3. Драйвер конкретного накопителя можно просто унаследовать "файловой системой", тогда будет один объект для работы с файлами.
Недостатки:
1. Новый код, который нужно будет долго и упорно тестировать. Кстати, люди пишут свои ФС, как идет тестирование? Может быть есть стандартные методики/инструменты/файлы?
Как-то так.
Выбор.