У меня приложения вааще о пинах ничего не знают. Пины это уровень BSP. И от централизованного board_conf как места для описания портов/пинов (с переходом на развитую периферию при Cortex-M) отказался полностью. Ибо просто не вижу практического смысла. Если драйвер протачивается под разный пинаут досок, то ему на входе из board_conf прилетает тип доски и рулежка ведётся по месту. Да и писать так дрова можно независимо. Вот сейчас у нас срочный проект - пишет 4 человека - разделили кто какие дрова поднимает и хором лабаем BSP. Через пару дней сведём, а потом мне останутся сопли в дровах, а остальные переключатся на приложение. Но параллельно ведется 3 схожие доски, каждая с несколькими исполнениями.