Да дело в том, что тут это сложнее из-за порой невнятного процесса инициализации или например обработки и запуска прерываний, ну и так далее. Обычно в первом приближении я всегда делаю на HAL, затем по мере надобности просто раскурочиваю его до обращения к регистрам.
Тут всё просто. Инициалияция - rm, прерывания - pm