Да не то чтобы адрес узнать гемор. Периферия сложновата, и чтобы приемлемо по качеству/скорости писать нужно на интуитивном уровне понимать как оно все работает и кто кому там может мешать. В кубе удобно распределить ресурсы - что включить, что не включать, одна периферия блокирует ноги другой. Там это все ясно через пару минут. С HAL в принципе проблем (у меня) нет. Оно может и не идеальное с чисто спортивной точки зрения, но работает.
Кстати, если кто помнит я в своем проекте пытался использовать динамику, векторы и стринги. В итоге динамику выпилил и переделал инициализацию через отдельный метод - так понятнее куда и кому ушла оперативка. Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец. Со стрингами была беда какая-то. Прошивка работала. Я в коде добавил варианов в свич с присвоением строк в стринг. И у меня не хватило никакой памяти. Может компилятор пытался прикинуть размер стринга по сумме всех строчек, не знаю. За вечер написал свой стринг со статическим буффером и проблемы кончились. Вот такие вот итоги года.


