А я и не предлагаю писать отдельный драйвер для GPIO,
но т.к. конфигурация порта достаточно сильно отличается,
должен быть использован следующий UID.
Ты сам говоришь "после донастройки", что мешает настроить UID?
или ты предлагаешь для _разного_ железа использовать одну программу без изменений ее параметров в
соответствии с возможностями железа? Ты предлагаешь добавить в _каждый_ драйвер еще один слой интроспекции?
Не понятно зачем.
Пример: есть программа, которая работает с портом A и B на OR-AVR-M32-D.
Как без адаптации (настройки) переложить на OR-AVR-M64-S?
Ведь здесь доступны только порт A и F!
Поэтому я считаю, что лучше сменить юид, чем городить лишний уровень.
ИМХО куда полезнее будет добавить шедулер для длительных процессов
Добавлено спустя 3 минуты 58 секунд:
2 blindman: Т.е. ты предлагаешь кооперативный шедулер и возможно вызов ф-ции по таймеру.
Имхо вызов в прерывании таймера всех обработчиков драйвера довольно накладно.