Od pewnego czasu co raz to więcej osób pyta mnie, z jakich środowisk programistycznych korzystam, w czym piszę, z jakich narzędzi korzystam – krótko mówiąc: jak wygląda mój warsztat developera systemów wbudowanych. Dlatego dziś postanowiłem napisać krótki artykuł na ten właśnie temat 🙂
Narzędzia programistyczne
Systemem operacyjnym dla narzędzi, których używam do budowania aplikacji jest oczywiście Linux. Kompilator (a ściślej: cross-kompilator) zależy od architektury sprzętowej docelowego systemu – w naszym przypadku jest to arm-gcc serii 5.0. Do tego standardowy ARMowy toolchain oparty o makefile’y i binutils. W sumie nic odkrywczego 😉 W czasie debugowania korzystam z OpenOCD oraz nieśmiertelnego gdb.
Ponieważ ilość kodu przekracza możliwości ogarnięcia go w sensowny sposób ludzką pamięcią, konieczne jest użycie jakiegoś systemu kontroli wersji. Tu też bez niespodzianek – git :), od czasu do czasu wspomagany prostą nakładką graficzną, w celu rozrysowania drzewka wersji.
Do edycji kodu służy mi QtCreator lub stary dobry Eclipse, z kilkoma wtyczkami usprawniającymi debugowanie na sprzęcie. A skoro już dotykamy tego tematu…
Narzędzia sprzętowe
Jak pisałem w jednym z pierwszych artykułów, bazą dla naszego projektu jest płytka prototypowa z serii STM32 Discovery. Co prawda została ona wyposażona we wbudowany dongle STLink, jednak zdecydowałem się mimo to użyć dodatkowego, zewnętrznego interfejsu. Do tego laboratoryjny zasilacz, który dostarcza napięcie +12 zasilające nasz testowy system.
I w zasadzie tyle 🙂