Примерно так и делал. Брал STMCubeMX, с его кодом работал в Eclipse. Брал Eclipse CDT, с шаблонами GNU MCU Eclipse, работал с ними. Брал STM32CubeIDE, внутри STMCubeMX. Получал шаблон с настроенной периферией, работал в STM32CubeIDE (тот же Eclipse, только с плагинами STM для лучшей увязки с кодом CubeMX и настройками STM).
Всё готовое, всё есть. Но при попытке работать с массивами данных, начинались вылеты в исключения. Проверка показывает, что стек находится не там, где должен быть согласно *.map и секции .bss в нём.
Нужно разобраться, как запускается чип и размотать код ассемблера - где там инициализация положения стека? И как правильно запускать чип, чтобы исполнение шло с вектора Reset и не было сюрпризов.
P.S.
http://www.coocox.org/ не работает в данный момент. Насколько помню, он уже несколько лет находился в стагнации. Помер?