Переход с TrueSTUDIO на STM32CubeIDE





Здравствуйте.

Среда TrueStudio уже больше года «снята с производства», то есть прекращена поддержка, и на их сайте предлагается переходить на STM32CubeIDE (далее просто CubeIDE). Тем не менее я продолжаю пользоваться TrueStudio по причине «сыроватости» новой IDE (на данный момент это версия 1.3). Попробовал я её отчасти в ознакомительных целях, а отчасти в связи с тем, что TrueStudio не поддерживает новую линейку камней stm32MP1, с которым мне пришлось столкнуться.


CubeIDE представляет из себя среду, в которой разработчики объединили TrueStudio и генератор начального кода CubeMX, слегка подкорректировали интерфейс и некоторые настройки. В целом же, это всё та же TrueStudio, только CubeMX открывается в соседней вкладке…








Итак, идём на сайт и качаем последнюю версию…


У меня Ubuntu, поэтому я скачивал первый вариант — STM32CubeIDE-DEB.

Для Windows скачается архив с exe-файлом, для MAC не знаю (MACоводам виднее), а для Линукса скачается архив, который после распаковки превратится в скрипт .sh с длинным именем. Этому скрипту нужно дать права на выполнение (можно прямо в «проводнике» тыкнуть правой кнопкой ⇨ свойства ⇨ вкладка «Права» ⇨ поставить галочку «Разрешить запуск...»). Открываем терминал и запускаем его с правами рута…


В процессе будет предложено прочесть лицензию и согласиться (промотать пробелом), так же нужно будет согласиться с установкой правил для программатора.



После установки запускаем среду (должен где-то появиться ярлык, у меня он в разделе «Разработка»). Она попросит указать «workspace», и далее откроется с вкладкой «Information Center», которую можно смело закрыть.



Перенос проектов из TrueStudio

Копируем папку с проектом в новый «workspace» и удаляем из неё папки Debug/Release (если есть обе, то обе) и файл отладчика — .elf.launch.

Далее делаем всё как в TrueStudio…




Выбираем папку с проектом и жмём «Finish»…




Программа предложит конвертировать проект, с чем Вы конечно же соглашаетесь…




После этого она сообщит Вам что конвертация прошла без проблем, и если интересно, то можете посмотреть лог-файл этой операции в папке с проектом…




Далее разворачиваем дерево проекта, клацаем файл main.c, жмём кнопочку  (Build All), проект пересоберётся надеюсь без ошибок.




Далее клацаем файл Куба — .ioc — после чего выскочит окошко, в котором нужно нажать Migrate


Скачается новый пакет Firmware.


Появится окошко с применением изменений…


Может долго висеть.


Программа предложит открывать этот файл в отдельной перспективе (самостоятельное окно) — согласитесь. В правом верхнем углу появиться иконка   — переключитесь на неё.


Откроется знакомый интерфейс Куба…



На вкладке перед именем файла стоит звёздочка, говорящая о том, что нужно перегенерировать проект. Делается это кнопкой .

Далее нужно переключиться на вкладку с файлом main.c, переключиться на перспективу кода  , и заново пересобрать проект .

Проект готов к работе, можно вносить изменения, и билдить с помощью .

Если вылезли какие-то варнинги, тогда попробуйте собрать ещё раз кнопкой  или . Если варнинги не убираются, тогда почитайте в чём там дело, так как в новой среде компилятор немного «поумнел» (в конце приведу пример).


Очистка проекта и прочее в меню Project…




Отладка выполняется кнопкой , при этом выскочит окошко с конфигурацией…


Проверьте что правильно указан программатор и жмите ОК.

После этого откроется перспектива с отладкой, там особо ничего нового.


Чтобы просто залить код в камень, минуя отладку, нужно нажать кнопочку


Да, скорее всего среда попросит обновить программатор, поэтому придётся это сделать. Если захотите вернуться к TrueStudio, то это обновление никак не повлияет.

ещё кое-что про обновление
Обычно при первой попытке обновиться, выскакивает сообщение что что-то там с DFU режимом. Решается это отключением-включением программатора в ЮСБ, однако здесь есть один нюанс. Однажды у меня целевой камень был запитан от стороннего источника и таким образом подпитывал программатор. Так вот, из-за этого доп. питания, отключение от ЮСБ не помогало, и программатор отказывался обновляться. В общем суть в том, что нужно не просто отключить программатор от ЮСБ, а полностью его обесточить.



Если внесли какие-то изменения в «Кубе» (буду по старинке называть), тогда не обязательно нажимать , можно , либо , без разницы, все изменения применятся автоматически.


В общем ничего сложного в новой среде нет, нужно только привыкнуть переключать перспективы между кодом и «Кубом».



Создание нового проекта

В меню File ⇨ New выбираем STM32 Project…



Появится окно с выбором микроконтроллера как в обычном Кубе. После выбора и нажатия «Next >», появится окно, в котором нужно дать имя проекту и нажать «Finish»…


Да, теперь не нужно задавать имя проекта и выбирать среду разработки в разделе «Project Manager».


Через некоторое время откроется перспектива с «Кубом». Далее делаем всё по старинке, настраиваем камень, генерируем, и переходим к коду.


В отличии от TrueStudio, здесь папки Src и Inc находятся в папке Core



Дальше можно работать как обычно.



Некоторые настройки

Чтоб включить вывод на печать переменных типа float, нужно в настройках проекта просто поставить галочку…




Выбор компилятора…




Оптимизация…


По умолчанию отключена. В TrueStudio по умолчанию оптимизация по размеру -Os.



Ну и напоследок про «поумневший» компилятор. В старом проекте у меня были такие строки…

char str[16] = {0,};
snprintf(str, 16, "Temperatura %d\n", temp);

Я знал что значение «temp» будет не больше двух символов, и я чётко умещаюсь в массив. Однако компилятор выкинул варнинг сообщая о том, что мол шестнадцатибитное значение «temp» может содержать от 1 до 6 символов, и есть опасность что вы выйдите за границы массива…


Не знаю, может кому-то это покажется нормальным явлением, но я первый раз столкнулся с такой «заботой».


Ну и в довершение пару слов о «сыроватости». Первые версии показались мне совсем никудышными (работало медленно, и ещё много чего), однако версия 1.3.0 порадовала — работать стала быстрее чем TrueStudio (я имею в виду интерфейс), и сам код компилируется тоже быстрее. Тем не менее недоработок ещё не мало, например я обнаружил что когда в разделе «Куба» меняешь настройку какого-то из таймеров, она не меняется в коде. Так же есть проблемы с отображением неправильных значений в регистрах при отладке. Однако всё это не мешает вам начать изучать новую среду, так как рано или поздно придётся переходить на неё (или на что-то другое) в связи с тем, что некоторые новые камни TrueStudio уже не поддерживает.



Это всё, всем спасибо


Телеграм-чат istarik

Телеграм-чат STM32


  • 0
  • 4449
Поддержать автора




Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.