Этапесдец, я сразу и не понял. Коллега, опять "Тёплое и мягкое", сезон 642, серия 023.
....
Если у Вас такие проблемы при портировании, "может, Вы не умеете их готовить"?
"10-этажные структуры" появились, потому что такова идеология (стратегия, концепция - называйте как хотите).
Таймеры разные - так ещё вопрос, хорошо это или плохо. Для каждого проца своя либа? И чо?
Это не вина и не ответственность ни библиотек, ни Куба. И уж совсем никак не отражает удобство инструмента, о котором и шла речь.
И да, мне они тоже не нравятся, поэтому использую LL вместо HAL, не опускаясь до регистродрочерства (и да, использовать SPL - ну это уже совсем перебор!).
Практически, это те же операции c регистрами, только выраженные приемлемым языком. Кстати, в CubeIDE можно одной птичкой
выбрать, LL использовать или HAL. Для каждого вида периферии отдельно. Например, таймеры рулим HALом, а GPIO - с помощью LL. Или всё LL. Или всё HAL.
И все библиотеки подключаются и переподключаются (при необходимости копируются в проект) автоматически. И всё собирается и работает.
И можно в любой момент залезть в конфигуратор, поправить настройки ядра или периферии, и код инициализации поменяется, не трогая сути (если соблюдать простейшие правила).
И FreeRTOS "искаропки", опять же птичками. И работает! Да много чего... Коллега, "...да вы попробуйте, Вас потом за уши не оттащишь!" ))