С общей точки зрения, это просто раздувание кода - нет причины, по которой вы когда-нибудь захотите написать такой код.Тем не менее, стиль кодирования ASF заключается в том, что каждый доступ к регистру заканчивается на .reg
, поэтому на это есть причина: они хотят сохранить именование регистров и использовать их согласованно.
Конечно, они могли бы просто сделать это с помощью typedef struct { uint32_t reg; } PORT_DIRSET_Type
но эта кодовая база редко когда-либо рационально написана.Это могло быть автоматически сгенерировано с помощью некоторого сценария.
Как правило, такие карты регистрации всегда ужасно уродливы и непереносимы, заполнены иррациональным кодом.Они поставляются как часть ASF - одни из худших, которые я когда-либо видел во всех категориях.