Долгое время я пользовался исключительно Keil IDE для программирования STM32, несмотря на то, что работал все это время в Linux. Т.е. мне приходилось держать виртуальную машину с Windows, чтобы я мог работать в Keil, программировать и отлаживать с использованием ST-Link. Конечно не самый удобный вариант, но альтернативы я не видел, т.к. Keil очень мощный и функциональный инструмент для STM32.
Последний обзор в сторону IDE, доступных для Linux дал положительный результат: появилась версия Attolic True Studio 8 для Linux на базе Eclipse, относительно бесплатная и без явных ограничений, платная версия дает дополнительные возможности для отладки приложений и еще какие то фичи, в суть которых я не стал вдаваться, т.к. проприетарность данной IDE зашкаливает. Вторым вариантом я нашел SW4STM32, это уже более интересное решение также на базе Eclipse, с той лишь разницей, что разработка данной IDE поддерживается самими STMicroelectronics и сама IDE абсолютно бесплатна и открыта. Теперь немного о том, почему же я решил полностью всю разработку перенести именно в эту IDE, окончательно забросив Keil.
Первым важным критерием для меня, как я уже писал выше стало наличие версии для Linux, для многих маловажный критерий, но есть версия также и для Windows. Вариантов установки аж целых два: первый скачать официальный инсталлятор и второй, установить Eclipse последней версии и затем установить плагин SW4STM32 через меню Help >> Install New Software, более подробно об установке здесь. Никаких проблем с установкой не выявил на Manjaro Linux, думаю и в других дистрибутивах должно все устанавливаться корректно и без ошибок.
Второй критерий — отладка должна работать «из коробки», надежно и быстро, и это все есть в SW4STM32, я просто создал проект, скомпилировал его и тут же смог отлаживать без каких-то дополнительных настроек с моей стороны. После Keil немного не привычным оказался Breakpoint managment, но привыкнуть можно. Отлаживать оказалось довольно удобно, переключившись в настройки окна Debug Perspectives, здесь и окно с точками останова и переменные, и состояние регистров, по мне так даже удобней, чем в Keil.
Третий критерий — редактор, он более продвинутый, чем в Keil, но это все же не Sublime Text, да здесь есть интересная функция Refactor >> Rename, которая позволяет изменить имя переменной или функции во всем проекте сразу, но в Sublime это все реализовано гораздо удобнее и понятнее, возможно я не до конца изучил еще все хоткеи для eclipse, будем изучать.
Последний по счету, но не по важности критерий это поддержка из STM32CubeMX, да здесь есть возможность сгенерировать проект для SW4STM32 и он отлично импортируется в workspace среды разработки. STM32CubeMX доступен для Linux, в Manjaro достаточно собрать его через AUR, в других дистрибутивах возможно все не так очевидно.
Я думаю ценители Eclipse найдут для себя еще много других удобных плюшек, но для меня они пока что не очевидны, так как с Eclipse я особо дел не имел до сей поры.
Спасибо, что дочитали до конца. Подписывайтесь на мой канал в telegram, где я публикую анонсы новых статей и другой полезный контент для разработчиков.
Под линукс из IDE, специально заточенных под МК, можете ещё посмотреть
https://www.segger.com/products/development-tools/embedded-studio/
Но многие себе конструкторы лепят из любимых IDE/редакторов. Я QtCreator-ом пользуюсь. У Eclipse есть только один недостаток — на каких бы я его компьютерах не использовал, он везде умудряется подтормаживать.
Спасибо за ссылку, гляну обязательно. А вот насчет Qt Creator уже интересно, как у Вас все это работает, есть какой-нибудь материал для ознакомления? Насчет тормозов Eclipse это верно на слабых машинах, я ничего такого не замечаю даже на средней по современным меркам машине.
Всё просто — устанавливаете из репозитория QtCreator (редактор), qbs (система сборки), openocd (для отладки и и прошивки) и gcc-arm-none-eabi в качестве компилятора. Вот настройка QtCreatora: https://habrahabr.ru/post/222877/ или http://we.easyelectronics.ru/STM32/razrabotka-dlya-stm32f4discovery-s-pomoschyu-mbed-v-qtcreator.html
Только qbs файл возьмите этот (в статьи старые): https://pastebin.com/raw/2vR9YbHJ
Идеология линукса — один компонент или одна программа должны выполнять только какую-то одну задачу, но зато выполнять её хорошо. Поэтому многие программы пишутся исходи из принципа взаимодействия с другими программами. Вместо gcc можно использовать clang (он с ARMами тоже дружит), вместо openocd можно stutil использовать. Вместо qbs — make или cmake. Вместо QtCreator — Geany, CodeBlock, Eclipse, EmBlock или что-нибудь другое. Кто чем хочет, тем и пользуется. Если Вам Sublime нравится в качестве редактора, можете его и использовать:
https://habrahabr.ru/post/270789/
http://we.easyelectronics.ru/STM32/sublime-text-2-kak-ide-dlya-stm32.html
Embitz, Keil, Iar и прочие IDE (т.е. где все компоненты собраны вместе) удобны, особенно в начале — всё работает «из коробки». Но вот если чего-то в них не хватает — то исправить или заменить уже не получится.
Спасибо большое за информацию, мне Qt Creator очень даже нравится как IDE, попробую и на ней поработать с ARM.