W artykule zostanie zaprezentowane środowisko łączące w sobie wszystkie wymienione powyżej elementy. Jako platforma sprzętowa posłuży zestaw STM32F746G-DISCOVERY zawierający m.in. mikrokontroler STM32F746NGH6 oraz wyświetlacz o rozdzielczości 480×272 pikseli z panelem dotykowym. Do stworzenia aplikacji wykorzystane zostaną biblioteki STemWin i CMSIS DSP oraz system operacyjny FreeRTOS. Środowiskiem programistycznym do utworzenia projektu będzie zbudowane na programie Eclipse, SW4STM32. Środowisko to ma w sobie wsparcie zarówno dla wszystkich zestawów Discovery oraz Nucleo, jak i wielu bibliotek programistycznych, przez co umożliwia błyskawiczne przygotowanie projektu i rozpoczęcie pracy nad docelową aplikacją.
Jako przykład posłuży aplikacja pozwalająca na odbiór sygnału z liniowego wejścia audio oraz wyświetlenie go na ekranie wraz z jego widmem amplitudowym. Użytkownik będzie mógł przesuwać oraz skalować oba wykresy za pośrednictwem panelu dotykowego. Kod źródłowy aplikacji został zbudowany na bazie dwóch przykładów znajdujących się w bibliotece STM32CubeF7: FreeRTOS_DelayUntil oraz StemWin_HelloWorld.
Środowisko SW4STM32
Za wyborem SW4STM32 jako środowiska programistycznego dla mikrokontrolerów z rodziny STM32 przemawia jego kilka niewątpliwych zalet. Pierwszą z nich jest obsługa wszystkich dostępnych na rynku zestawów serii Discovery i Nucleo oraz kilku innych. Konfiguracja projektu obejmuje też wybór podstawowej biblioteki peryferiów (starszej StdPeriph Library lub nowej biblioteki Cube) oraz dodatkowych bibliotek zewnętrznych, takich jak STemWin, FreeRTOS, lwIP i innych, które po utworzeniu projektu są automatycznie pobierane i dołączane do niego. Pozwala to pominąć żmudny proces dodawania ścieżek do zewnętrznych źródeł. Niestety, nie wszystkie biblioteki są ze sobą kompatybilne od razu po ich importowaniu i czasem wymagają drobnych modyfikacji, np. podczas łączenia ich z systemem operacyjnym. Jest jednak szansa, że w przyszłości sytuacja ta ulegnie poprawie. SW4STM32 jest oparty na darmowym i powszechnie używanym środowisku Eclipse, przez co jest dostępny zarówno dla systemów Windows, jak i Linux. Do kompilacji wykorzystywany jest toolchain GCC ARM Embedded. SW4STM32 nie ma żadnych limitów kodu i jest całkowicie darmowy. Do przygotowania opisywanego projektu użyto SW4STM32 w wersji 1.7 oraz systemu operacyjnego Ubuntu 14.04 LTS (x86_64). Z uwagi na to, że SW4STM32 po instalacji nie wymaga żadnej dodatkowej konfiguracji, projekt można w analogiczny sposób przygotować na innych systemach operacyjnych.
Na początku trzeba pobrać środowisko ze strony www.openstm32.org. Niestety jest to możliwe dopiero po rejestracji. W menu System Workbench for STM32 można wybrać jedną z dwóch opcji instalacji: przez zainstalowanego wcześniej Eclipse’a, lub za pomocą pełnego instalatora. Oba sposoby instalacji zostały opisane na stronie. Po pierwszym uruchomieniu środowiska warto upewnić się czy nie ma dostępnych aktualizacji: Help Check for Updates. W starszych wersjach oprogramowania może nie być wsparcia dla najnowszych zestawów ewaluacyjnych.
W przypadku instalacji na komputerach z 64-bitowym systemem Linux, podczas kompilacji może wystąpić błąd arm-none-eabi-gcc file not found. Jednym z możliwych rozwiązań tego problemu jest zainstalowanie 32-bitowych wersji bibliotek C oraz ncurses (libc-dev:i386 i lib32ncurses5, pakiety mogą się różnić w zależności od dystrybucji).