[1] Atollic TRUEStudio STM32 – jak zacząć?

Każdy znaczący gracz na rynku mikrokontrolerów ma swojej ofercie środowisko projektowe IDE – Integrated Development Environment. Są to rozbudowane pakiety programowe pozwalające na tworzenie projektów z zaawansowaną edycją plików źródłowych ich kompilacją w języku C lub opcjonalnie C++, sterowaniem programatorem/debugerem i możliwością sprzętowego debugowania programu w docelowym środowisku. Oprócz tego dostarczane są zaawansowane firmowe biblioteki obsługujące układy peryferyjne mikrokontrolerów ale też współpracujące z układami zewnętrznymi typu moduły sterowników graficznych, moduły łączności Wi-Fi, Bluetooth, GPS itp. Standardem stają się programowe konfiguratory układów peryferyjnych z przyjaznym interfejsem użytkownika. Jeszcze do nie dawna takie narzędzia programistyczne dla mikrokontrolerów STM32 były oferowane przez firmy zewnętrzne i ich pełne wersje kosztowały dość sporo. Teraz jest do dyspozycji całkowicie bezpłatny doskonały pakiet Atollic True Studio for STM32.

 

Atollic TRUEStudio for STM32

IDE Atollic TRUEStudio wykorzystuje otwarty standard framework Eclipse , kompilator GCC (język C/C++), oraz debuger oparty o standard GDB. Eclipse IDE był początkowo przeznaczony dla języka Java, ale stosunkowo łatwo go przystosować do pracy z innymi językami na przykład C/C++, PHP itp. Cechą charakterystyczną jest możliwość uzupełniania IDE tworzonego w oparciu o framework Eclipse o własne wtyczki narzędziowe.

Konsekwencją stosowania Eclipse jest organizowanie pracy w oparciu o przestrzeń roboczą (workspace) i projekty (projects):

  • Przestrzeń robocza może zawierać jeden, lub wiele projektów
  • Projekty zawierają wszystkie niezbędne pliki potrzebne do pracy
  • Każda przestrzeń robocza może pomieścić wiele projektów w dowolnej lokalizacji komputera
  • Użytkownik może swobodnie wybierać przestrzenie robocze, ale w danym momencie aktywna może być tylko jedna
  • Wybieranie przestrzeni roboczych jest wygodnym i szybkim mechanizmem zarządzania aktywnym projektem, lub zestawem projektów.

W praktyce przestrzenie robocze i projekty są zestawami hierarchicznych katalogów: katalog przestrzeni roboczej zawiera katalogi projektów, a projekty zawierają pliki – rysunek 1.

 

Rys. 1. Organizacja pracy – przestrzenie robocze i projekty

 

Atollic TRUEStudio ma bardzo wiele możliwości pracy nad projektem, od edycji plików źródłowych po ich kompilację i debugowanie. Każde z wykonywanych zadań jest powiązane z określoną liczbą okien, które muszą się znaleźć na ekranie. Jednoczesne otwarcie wielu okien powoduje, że w dużej ilości informacji wyświetlanych na ekranie łatwo się pogubić i znacznie spada przez to komfort pracy. Żeby temu zaradzić można wyświetlane informacje pogrupować tak, żeby odpowiadały wykonywaniu określonego zadania. Takie grupy nazwano perspektywami (Perspectives) – rysunek 2.

Rys. 2. Wybór aktywnej perspektywy z paska narzędziowego

 

W True Studio zdefiniowano kilka predefiniowanych perspektyw na przykład edytowanie kodu źródłowego C/C++, czy jego debugowanie. Prawidłowo zdefiniowana perspektywa powinna być użyta do wykonania jednego zadania i nie zawiera elementów z innych perspektyw. Zakłada się też, że główną uruchamianą zawsze na początku programu jest ta przeznaczona do edytowania plików źródłowych C/C++,bo przy edycji programista spędza najwięcej czasu.

Perspektywy mona wybierać (przełączać) klikając na przyciski Open Prerspective umieszczony w pasku narzędziowym okna programu – rysunek 2. Alternatywnie można do tego użyć przycisków umieszczonych w prawym górnym rogu głównego okna programu – rysunek 3.

Rys. 3. Alternatywny wybór aktywnej perspektywy

 

Pierwsze kroki

Program instalacyjny Atollic TRUEStudio for STM32 można pobrać ze strony producenta https://atollic.com/truestudio/. Instalacja jest typowa i nie wymaga specjalnego komentarza. Po uruchomieniu programu pojawia się okno wyboru katalogu z przestrzenią roboczą. Można zaakceptować domyślną ścieżkę zaproponowaną przez program lub wybrać sobie własny katalog – rysunek 4.

Rys. 4. Okno z wyborem katalogu przestrzeni roboczej

Przy pierwszym uruchomieniu programu otwiera się okno Information Center. Są tam zebrane w jednym miejscu przydatne informacje (w formie hyperlinków) zarówno dla poczatkujących, jak i dla bardziej zaawansowanych użytkowników programu. W każdej chwili można mieć dostęp do tego okna po kliknięciu na Help->Information Center – rysunek 5.

Rys. 5. Okno Information Center

 

W czasie uruchamiania programu jest ładowanych szereg wtyczek. Jeżeli części z nich nie zamierzamy nigdy używać to warto je wyłączyć. Redukuje to ilość potrzebnej pamięci, ale tez przyspiesza działanie programu. Można to sobie spersonalizować w oknie Windows->Preferences->Startup and Shutdown – rysunek 6.

Rys. 6. Okno personalizacji ładowanych wtyczek

 

Tworzenie nowego projektu

Tworzenie nowego projektu można rozpocząć z menu File->New->C Project, lub przez kliknięcie na ikonkę Create New C Project w pasku narzędziowym – zostało to pokazane na rysunku 7.

Rys. 7. Dwie możliwości tworzenia nowego projektu

 

Pierwsze okno konfiguracji projektu zostało pokazane na rysunku 8. W pierwszej kolejności musimy nadać nazwę tworzonemu projektowi w oknie Project name. Potem wybieramy zestaw narzędzi. Atollic TRUE Studio oferuje dwa rodzaje zestawów narzędzi programowych : Atollic ARM Toolchains i PC Tollchains. Dla pracy z systemami mikroprocesorowymi wybieramy oczywiście ARM Toolchains. I na koniec pozostał do wyboru typ projektu. Tu na początek wybieramy Embedded C Project.

Rys. 8. Okno konfiguracji projektu

 

Po kliknięcie na przycisk Next konfigurator projektu przechodzi do kolejnego okna konfiguracji sprzętu (hardware configurator). Z głównej listy wybieramy rodzinę mikrokontrolerów STM32F4. . Potem z rozwijanej listy można wybrać konkretny typ mikrokontrolera rodziny , lub wspierany moduł ewaluacyjny. Ponieważ w czasie testów będziemy używać modułu NUCLEO-F401, to taki został wybrany – rysunek 9. Wybranie modułu powoduje automatyczne wypełnienie pól z typem mikrokontrolera (STM32F401RE), miejscem ładowania kodu (pamięć flash mikrokontrolera), zestaw instrukcji (Thumb2) i dosunięcie danych. Ponieważ mikrokontroler użyty w tym module ma sprzętową implementację arytmetyki zmiennoprzecinkowej to została ona wybrana domyślnie (szybsze obliczenia).

Rys. 9. Konfiguracja sprzętowa projektu

 

Kolejne okno pokazane na rysunku 10 jest przeznaczone do konfiguracji biblioteki Runtime i ustawień optymalizacji kompilatora. Kiedy zasoby mikrokontrolera są ograniczone wybieramy opcje Newlib-nano i wersje tiny funkcji bibliotecznych printf. Ustawienia optymalizacji powinny zostać domyślne.

Rys. 10. Ustawienia konfiguracji biblioteki runtime i optymalizacji kodu

 

W ostatnim oknie konfiguratora projektu można wybrać typ programatora/debuggera. Dla modułu Nucleo jedyną opcją jest ST-Link.

Rys. 11. Wybór programatora/debuggera

 

Po kliknięciu na przycisk Finish kreator projektu utworzy szkielet projektu z niezbędnymi plikami tak jak to zostało pokazane na rysunku 12. Automatycznie jest też ustawiana perspektywa.

Rys. 12. Utworzony szkielet projektu z plikami źródłowymi

 

Pliki szkieletu projektu kompilujemy, przy czym przez kompilację należy rozumieć kompilowanie plików przez kompilator języka C , ich łączenie w procesie linkowania i generowanie pliku wykonywalnego w jednej z opcji Debug lub Release . Kompilacja jest uruchamiana po kliknięciu na ikonę Projekt->Build Project. Ikony kompilacji są również dostępne bezpośrednio na pasku narzędziowym – rysunek 13.

Rys. 13. Kompilacja projektu

 

Alokacja programów pamięci Flash i pamięci RAM mikrokontrolera jest określana przez plik skryptu linkera stm32f4_flash.ld. Zaawansowani użytkownicy mogą ten plik edytować i zmieniać działanie linkera.

Kompilowanie Build Project kompiluje tylko pliki, które były zmieniane od dostatniej kompilacji, wybranie Rebuild Project powoduje kompilowanie wszystkich plików projektu. Clean Project usuwa wszystkie skompilowane pliki . Opcja Build All powoduje kompilowanie wszystkich projektów z aktywnej przestrzeni roboczej (workspace).

Wykonywanie kompilowania programu jest kontrolowane przez szereg parametrów zapisywanych w skrypcie. Domyślne ustawienia będą dobre dla większości projektów, a na pewno dla prostych programów testowych . Jeżeli jednak zajdzie potrzeba ich korekty, to wszystkie niezbędne informacje można znaleźć w dokumentacji pakietu Atollic TRUEStudio for STM32.

Rys. 14. Ostrzeżenie kompilatora po skompilowaniu szkieletu utworzonego prze kreator projektu

 

Co ciekawe po skompilowaniu wygenerowanego szkieletu pojawia się ostrzeżenie o tym, że jedna z pętli w pliku system_stm32f4xx.c nie jest chroniona przed całkowitym zablokowaniem programu, kiedy coś pójdzie nie tak. Rzeczywiście nie jest to przykład dobrej praktyki programowania.

Tomasz Jabłoński

Autor: STM32eu

STM32eu