"Позвольте я пробью с ноги!" (С) В периферии для Cortex, извините, повторюсь, всё заточено для копирования структур настроек в регистры целиком(в идеале), а не частями
Пардон, откуда сие следует? Можно пример микроконтроллера, где можно тупо скопировать регистры UART0 в регистры UART1 и получить идентичные настройки? Или таки как обычно: сначала нужно взвести битик в регистре Base+8, а потом записать значение в Base+4 и только потом можно писать в Base+16? А тактирование модуля включить в совсем третьем месте?
Группировка регистров периферии в структуры имеет две причины:
1) Однотипная периферия создается размножением стандартной макроячейки. Никто не проектирует отдельно UART1, а потом UART2. Проектируют просто UART и размножают его в нужном количестве. Естественно при этом у них регистры одинаковы.
2) RISC процессоры очень неэффективно выполняют действие "записать 32битную константу по фиксированному 32 битному адресу". Это туча команд, тактов и памяти.