Wielu początkujących głowi się nad tym jakie jest najlepsze IDE dla STM32. W Internecie jak to zawsze bywa zdania są podzielone. Jedni polecą kombajn za tysiące dolarów “bo jest najlepszy a inne to badziew”. Inni z kolei powiedzą, że IDE to niepotrzebne narzędzie i odeślą Cię do notatnika lub czegoś niewiele bardziej rozbudowanego. Jest też podział na zwolenników darmowych IDE oraz płatnych. Tylko jakie jest to najlepsze IDE sla STM32? Odpowiedź nie jest prosta… ale
Aktualizacja początek
Post ten był pisane w momencie, kiedy ST jeszcze nie miało swojego IDE. Ich środowisko zwane STM32CubeIDE opisałem w nowszym artykule o tutaj.
Aktualizacja koniec
Sam używałem kilku i ciężko mi powiedzieć które jest najlepsze. Każde ma jakieś zady i walety. Wpadłem więc na pewien pomysł. Zamiast szukać po internecie tego najlepszego IDE dla STM32 po prostu spytałem na naszej wspaniałej grupie facebookowej STM32 Polska z jakich najczęściej korzystają programiści.
Odpowiedzi były różne, ale widać było tendencję. Odfiltrowałem pojedyncze przypadki i tak oto powstała lista 8 najlepszych a zarazem najpopularniejszych IDE(i “notatników”) dla STM32.
1. SW4STM32
Jest to IDE firmy AC6 bazowane na Eclipse. Pełna nazwa to System Workbench for STM32. Częściej jednak na ogół stosuje się skrót. IDE to jest kompletne i samowystarczalne jeżeli chodzi o programowanie SMT32. Po instalacji jest od razu gotowe do pracy. Posiada kompilator GCC oraz debugger OpenOCD i GDB które wpółpracują z ST-Link.
Jest to projekt społecznościowy prowadzony przez wspomnianą firmę AC6 oraz był wspierany przez ST przez długi czas. Na stronie projektu znajdziesz forum, które jest cały czas aktywne. Projekt posiada swoje Wiki na którym jest kilka przydatnych informacji. Poza tym jest blog który z tego co widzę umarł dawno temu.
Do pobrania IDE wymagana jest rejestracja na stronie. SW4STM32 jest w pełni darmowe oraz można go używać na różnych platformach: Windows, Linux, MacOS.
2. TrueStudio for STM32 (Atollic TrueStudio)
Atollic stworzył IDE podobne do SW4STM32. Również bazuje na Eclipse, posiada wbudowany kompilator oraz debugger. Co je wyróżnia? Jakiś czas temu firma Atollic została przejęta przez ST. Przez długi czas ST nie miało swojego dedykowanego narzędzia do pisania kodu. Teraz już ma i rozwija je prężnie. Wspiera zarówno mikrokontrolery jak i płytki rozwojowe od ST.
Posiada szereg wbudowanych udogodnień dla debugowania jak np. obsługa SWO służącego do przesyłania komunikatów z MCU. Również ma wbudowane narzędzia do wizualizacji danych a także bardzo pomocne narzędzia do debugowania RTOS.
Podobnie jak SW4STM32, TrueStudio jest w pełni darmowe. Pobranie wymaga rejestracji. Brak jest natomiast wsparcia dla MacOS. Tylko użytkownicy Windowsa i Linuxa mogą się nim cieszyć.
3. Eclipse + pluginy
Dwa wcześniejsze IDE bazują na tym rozwiązaniu i są podobne wizualnie. Skoro one bazują na Eclipse, to dlaczego nie używać właśnie jego? Klasyk mówi: “Można. Jeszcze jak!”. Niestety nie jest to takie proste. Osoby startujące z programowaniem STM32 mogą się zrazić przy konfiguracji środowiska.
Oprócz samego Eclipse, trzeba doinstalować m. in. kompilator czy debuggery. Należy też doinstalować paczki z MCU oraz skonfigurować programowanie układu i uruchamianie.
Finalnie osiąga się efekt podobny do dostarczanych IDE na bazie Eclipse(SW4SMT32 i TrueStudio). Oczywiście jest to darmowa ścieżka.
4. Keil µVision IDE (MDK)
Jest to kombajn dostarczany przez firmę ARM. Ponoć jest tak dobry, że niektórzy mówią, że nie ma innych środowisk. Rzeczywiście ma sporo zalet i jest to narzędzie w pełni profesjonalne. Obsługuje nie tylko STM32, ale wszystkie mikrokonrolery ARM.
Pakiet posiada m.in. kompilator ARM C/C++, kernel CMSIS-RTOS RTX oraz debugger. Niestety jego ogromne zalety przyćmiewa z perspektywy osób początkujących jedna wada – cena. Pakiet nie jest darmowy, ALE… można z niego korzystać za darmo, również komercyjnie w obrębie rdzeni Cortex-M0 i Cortex-M0+. Oznacza to, że rodziny STM32F0 i STM32L0 są w zasięgu tego IDE zupełnie za darmo. Warto spróbować.
5. VisualGDB
Kolejną pozycją jest dodatek do Microsoft Visual Studio IDE o nazwie VisualGDB. Zamieni on ten potężny kombajn w dodatkowe narzędzia służące do programowania embedded, nie tylko STM32.
Niestety VisualGDB nie jest darmowy. Jest dostępny 30-dniowy trial, więc można sprawdzić czy się spisuje. Samo Visual Studio IDE w wersji Community też ma kilka warunków dzięki którym można używać go za darmo. W innym wypadku również jest płatny – wersje Enterprise i Professional.
6. VS Code
Edytor kodu od Microsoftu. Jest to darmowy open source, który jest dosyć świeżym projektem bo z 2015 roku, natomiast szybko przyciągnął wiernych uzytkowników.
Jak na “notatnik” posiada mnóstwo ciekawych funkcji jak automatyczne uzupełnianie kodu, czy integrację z Gitem. Po dodaniu odpowiednich rozszerzeń posiada możliwość debugowania.
Można w nim pisać kod a kompilować zewnętrznie. Jednak łatwejszą drogą są niewątpliwie rozszerzenia. Jednym z takich przydatny rozszerzeń embedded jest np. vscode-mbed pozwalający na pracę z frameworkiem ARM mbed.
7. PlatformIO
Jest to ciekawy projekt open source. PlatformIO jest pluginem do dwóch popularnych open source’owych “notatników” do pisania kodu – Atom oraz wspomnianego wyżej VS Code.
Są to dosyć przejemne i lekkie narzędzia do piasania kodu tak samo jak powyższy VS Code. De facto to właśnie niego używamy(lub Atom’a). Na plus jest to, że wspiera mnóstwo mikrokontrolerów i płytek IoT, a także różne frameworki wewnątrz jednego układu/producenta, więc nie jesteśmy ograniczeni tylko do STM32 i np. bibliotek HAL.
Niestety w darmowej wersji nie posiada debuggera. Natomiast indywidualna licencja nie jest aż taka droga bo są to tylko $2,99 dla zastosowań niekomercyjnych.
8. IAR Embedded Workbench
To już jest na prawdę profesjonalny kombajn. Wręcz cały system. Co za tym idzie – nie jest darmowy. IAR ma swój kompilator, oraz swój debugger. Na swojej stronie chwalą się, że narzędzia e są najlepsze na rynku. Oferuje również statyczną analizę kodu np. zgodną ze standardem MISRA C.
Jak na profesjonalne narzędzie przystało – liczy się działanie. Na próżno tutaj szukać wodotrysków i pięknych animacji. IDE wygląda jak wyciągnięte z Windowsa 98.
Początkujący raczej nie porwie się na takie narzędzie, ale być może prqcując w którejś firmie spotkasz spotkasz się właśnie z nim.
Podsumowanie
Pytanie, które wybrać? Nie odpowiem Ci niestety na nie. Lecz myślę, że wyniki ankiety oraz mój opis każdego z narzędzi pomoże Ci w wyborze. Zachęcam do prób z IDE z początku listy. Na przykład te, które mają wbudowane na starcie wszystkie narzędzia i wtyczki dla mikrokontrolerów STM32. Dla osób początkujących są bardzo dobre. Nie musisz się mordować z instalacją i konfiguracją owych wtyczek.
Warto wspomnieć, że większość prezentowanych tutaj IDE ma możliwość pracy na ciemnym motywie. Uważam, że w pracy programisty jest to obowiązkowa funkcja IDE.
Jeżeli nie czujesz się na siłach podczas instalacji i konfiguracji środowiska to mam dla Ciebie świetną wiadomość. Specjalnie dla Ciebie stworzyłem e-book w którym pokazuję jak zainstalować IDE oraz napisać swój pierwszy program na popularnej, taniej płytce z STM32F103C8T6. Wykorzystuję w nim numer jeden dzisiejszego zestawienia czyli SW4STM32.
Aby otrzymać e-book zapisz się na mój newsletter poniżej.
10 komentarzy
P.S. · 20/08/2021 o 00:52
Witam.
Ja na początku używałem Keil (MDK), potem Atollic TrueStudio dla STM32.
Teraz używam STM32CubeIDE. I nie narzekam. Pod Linuxem działa (testowałem) … tak jak STM32CubeProgrammer (też działa pod Linuxem) … też testowałem.
Pozdrawiam.
Tomek · 07/11/2020 o 22:50
Korzystam z Keil od około pół roku i działa bez problemu na F1. Wersja darmowa. Oczywiście jest ograniczenie do 32kB ale do prostszych projektów nada się.
vp32 · 15/02/2020 o 19:03
Mógłbyś przybliżyć platformę PlatformIO ? zapowiada się fajnie tylko jak z tym zacząć? Pobranie, uruchomienie środowiska.
Mateusz Salamon · 16/02/2020 o 19:38
Fajny temat i myślałem czasem o tym PlatformIO bo wiele osób chwali. Jest to do zrobienia 🙂
bdgr · 25/12/2019 o 11:51
Jeszcze jedna aktualizacja: od kilku miesięcy PlatformIO zrezygnowało z płatnych subskrypcji. Zarówno debugowanie z PIO Unified Debugger, jak i runner unit testów są dostępne prosto z pudełka od razu po darmowej instalacji, bez żadnej rejestracji. Sprawdzałem na STM32 z ST Link 2 i Black Magic Probe i to generalnie po prostu działa, PIO jest tym czym powinno być Arduino
Mateusz Salamon · 28/12/2019 o 15:13
Dzięki za info! Teraz to już na pewno sprawdzę PlatformIO 😀 muszę zaktualizować wpis w takim razie.
woocom · 29/05/2019 o 22:49
Kiedyś używałem Keila uVision i spisywał się świetnie, zwłaszcza do debugowania. Już chyba nie jest dostępny za darmo dla L0 i F0, a przynajmniej moja wersja przestała działać. No i nie działa pod linuxem.
Próbowałem kilka razy środowisk opartych na Eclipsie ale jakoś nie mogłem się do nich przekonać.
Ciekawą opcją był program EmBitz oparty na code::blocksie, ale też brak wersji linuxowej i był problem z auto uzupełnianiem składni przy bibliotekach CMSIS.
Aktualnie do wszystkiego gdzie używam C i C++, w tym STM32, stosuję QtCreatora i system budowania cmake. Jak dla mnie QtCreator to najlepsze IDE do programowania w tych językach. Niestety trzeba się trochę natrudzić, aby skonfigurować do pracy z STM32 no i brakuje podglądu rejestrów peryferiów w debugerze. Dla chętnych wystarczy wpisać w wyszukiwarce hasło: “stm32 qtcreator cmake”. Polecam spróbować.
Mateusz Salamon · 09/06/2019 o 22:36
Kurcze, nie wpadłbym na to, aby używć QtCreatora do STM32 😀 Pokonałeś mnie tym
Wojtek · 01/07/2019 o 11:47
To może jakiś krótki opis konfiguracji QtCreatora pod STM32 powstałby na blogu?
Mateusz Salamon · 01/07/2019 o 21:49
Ja nie mam doświadczenia z Qt Creatorem na tyle, aby się wypowiadać na jego temat. Ostatni raz próbowałem pisać w Qt na początku studiów, a te były bardzo dawno. Mooże jakby znalazł się ekspert to można pomyśleć o ciekawym wpisie 🙂