Я собственно для каждого класса переферии думаю использовать структуру с набором полей соотвествующих адресам регистров, а ее отображать на задефайненный базовый адрес переферии. соотвественно гипотетический интерефейс функций Read и Send uart
Код
bool Read(UartAddrBase addr,byte* data,uint size);
bool Send(UartAddrBase addr,byte*data,uint size);
ну вот гляжу доку на этот mbed оч занималтельно наглядно и красиво +)))) но на классах
Я классы остерегаюсь применять - боюсь производительность потерять, но очень хочется. Хотя описанный мной подход не сильно отличаетсяот ООП подхода.