wersja mobilna | kontakt z nami

Środowisko programistyczne AC6 System Workbench. cz. 1

Numer: Listopad/2015

Duża popularność rodziny mikrokontrolerów STM32 sprawia, że nieustannie są dla niej opracowywane nowe narzędzia projektowe, tworzone nie tylko przez samego producenta firmę STMicroelectronics, ale też inne firmy. Jedną z najważniejszych nowości wśród narzędzi o charakterze programowym jest z pewnością środowisko System Workbench firmy AC6 (zwane też SW4STM32 od System Workbench for STM32).

Pobierz PDF

Programiści chcący tworzyć oprogramowanie dla mikrokontrolerów STM32 mogą wybierać spośród pokaźnej grupy środowisk programistycznych. Dotychczasowa lista obejmowała (według porządku alfabetycznego): CoIDE (firmy CooCox), CosmicIDE (Cosmic), CrossWorks (Rowley), HiTOP (Hitex), Embedded Workbench for ARM (IAR Systems), Microcontroller Development Kit for ARM (Keil), MULTI (GreenHills), RIDE (KEOLABS) oraz TrueSTUDIO (Atollic).To, czym charakteryzuje się nowe środowisko AC6 System Workbench i jak wypada ono na tle konkurencji (szczególnie najpopularniejszych pakietów: EWARM i MDK-ARM) jest przedmiotem tego artykułu.

Elementy składowe, czyli Eclipse i wtyczki

Rysunek 1. Schemat budowy platformy Eclipse

AC6 System Workbech zbudowane jest na bazie Eclipse, więc warto na wstępie zapoznać się szczegółowiej czym jest to rozwiązanie. Eclipse to napisana w języku Java platforma typu open-source, w oparciu o którą można tworzyć środowiska programistyczne.

Eclipse samo w sobie nie dostarcza żadnych narzędzi programistycznych, oferuje jednak obsługę tak zwanych wtyczek (plug-ins). Wtyczki to narzędzia, które mogą być integrowane z Eclipse. Przykładowo wtyczka może rozszerzać Eclipse o możliwość pisania kodu w określonym języku programowania (np. C/C++ lub Java), czy o możliwość tworzenia plików wykonywalnych na określone platformy sprzętowe (np. na mikrokontrolery z rdzeniem ARM).

Schemat budowy Eclipse przedstawiono na rysunku 1. Zgodnie z tym schematem platforma zbudowana jest z następujących komponentów:

  • Platform Runtime - komponent będący rdzeniem Eclipse. Definiuje on architekturę platformy, dzięki której możliwe jest integrowanie Eclipse z wtyczkami,
  • JFace i SWT (Standard Widget Toolkit) - komponenty odpowiedzialne za graficzny wygląd platformy Eclipse i opartych na niej środowisk programistycznych,
  • Workbench - komponent realizujący udostępnianie narzędzi w oknach programu Eclipse,
  • Help - komponent, który przechowuje dokumentację pomocy użytkownika,
  • Team - komponent umożliwiający dodanie do Eclipse systemu kontroli wersji,
  • New Tool - komponenty reprezentujące wtyczki do Eclipse,
  • Workspace - komponent definiujący hierarchiczny model zarządzania zasobami: pliki i foldery należą do projektów programistycznych, a projekty do przestrzeni roboczych. W danym momencie w Eclipse może być otwarta tylko jedna przestrzeń robocza.

Z Eclipse chętnie korzystają firmy tworzące narzędzia programowe, które integrując tą platformę z gotowymi lub opracowanymi przez siebie wtyczkami tworzą w ten sposób tanim kosztem "uszyte na miarę" środowisko programistyczne dla danej rodziny czy danych rodzin mikrokontrolerów. W myśl tej idei zostało przygotowane między innymi środowisko AC6 System Workbech.

Jakie zatem wtyczki (narzędzia) zostały dodane do Eclipse w AC6 System Workbech? Chcąc pozostać w zgodzie z kolejnością czynności procesu tworzenia oprogramowania, jako pierwsze z narzędzi wymienić należy kreator projektu. Zostanie on szczegółowo omówiony w drugiej części niniejszego kursu.

Kolejnym używanym przez programistę narzędziem jest edytor. Jak łatwo jest się domyślić, pozwala on na pisanie kodu źródłowego aplikacji. Edytor AC6 System Workbech pozwala pisać kod źródłowy w języku Assembler, C oraz C++.

Kod źródłowy nie jest interpretowalny dla układów elektronicznych, które operują na wartościach binarnych, zatem potrzebne jest narzędzie, które odpowiednio przetworzy kod z jednej postaci do drugiej. Tym narzędziem jest kompilator. Przetwarza on pliki zawierające kod źródłowy na pliki z kodem maszynowym. W przypadku AC6 System Workbech zastosowano kompilator GCC (GNU Compiler Collection).

Rysunek 2. Architektura AC6 System Workbench [1]

Jeśli podczas kompilacji błędy nie wystąpią, dalej pliki z kodem maszynowym są konsolidowane w jeden plik wykonywalny. Za realizację tego zadania odpowiada linker. Plik wykonywalny zapisywany jest do pamięci mikrokontrolera. Za poprawne wykonanie tej czynności odpowiada programator (flasher).

Ostatnią wtyczką w AC6 System Workbech jest debuger. Narzędzie to służy do szczegółowej analizy działania aplikacji mającej na celu wychwycenie błędów w oprogramowaniu i w efekcie ich usunięcie. Stąd debugowanie nazywane jest często odpluskowaniem.

W AC6 System Workbech zastosowano debuger OpenOCD oraz GDB (GNU Project Debugger), który współpracuje ze sprzętowym debugerem ST-Link (ST-LinkV2 oraz ST-LinkV2-1) firmy STMicroelectronics. Umożliwia on programowanie i debugowanie mikrokontrolera STM32 poprzez dwa interfejsy: JTAG (Joint Test Action Group) oraz SWD (Serial Wire Debug). Architekturę środowiska AC6 System Workbech pokazano na rysunku 2.

Całkowicie bezpłatne narzędzie

Najbardziej uznane na rynku środowiska programistyczne dla mikrokontrolerów STM32, a więc EWARM i MDKARM, to rozwiązania komercyjne. Oznacza to, że aby móc ich używać, wymagany jest zakup licencji od producenta lub dystrybutora.

Oprócz wersji płatnych, każdy z tych pakietów udostępniany jest też bezpłatnie, ale już w wersji z ograniczeniem czasu użytkowania lub wielkości kodu wynikowego. Zupełnie inne podejście prezentuje firma AC6. Jej środowisko programistyczne jest udostępniane całkowicie bezpłatnie, bez żadnych ograniczeń odnośnie do długości czasu użytkowania, wielkości kodu wynikowego i zastosowań komercyjnych.

Elastyczność pod względem systemu operacyjnego

Pewnym ograniczeniem niektórych środowisk programistycznych dla mikrokontrolerów STM32 (w tym EWARM oraz MDK-ARM) jest możliwość ich instalacji na komputerach pracujących wyłącznie pod kontrolą systemu operacyjnego Windows. Środowisko AC6 System Workbech pozbawione jest tego ograniczenia.

Firma AC6 oferuje swoje narzędzie nie tylko w wersji przeznaczonej dla systemu firmy Microsoft (oddzielnie dla platform 32- i 64-bitowych), ale również dla Linuxa (w tej chwili jest to wersja beta). Co więcej, producent planuje w niedługim czasie udostępnić też wersję dla systemu operacyjnego MacOS/X.

Tylko dla STM32

Rysunek 3. Formularz rejestracji użytkownika na stronie www. openstm32.org

Środowiska takie jak EWARM i MDK-ARM powstały na fali popularności układów z rdzeniem ARM. Oferują one dzięki temu możliwość tworzenia oprogramowania dla wielu rodzin mikrokontrolerów od różnych producentów. W przeciwieństwie do nich AC6 System Workbnech jest środowiskiem programistycznym przeznaczonym tylko dla rodziny mikrokontrolerów STM32.

Dla programistów tworzących aplikacje dla mikrokontrolerów od kilku producentów cecha ta będzie niedogodnością. Jednak osoby realizujące projekty tylko na mikrokontrolerach STM32 docenią to, w jaki sposób AC6 System Workbnech został przygotowany pod kątem tych układów, co w szczególności przydaje się na etapie tworzenia projektu programistycznego.

Zintegrowany kreator umożliwia w kilku prostych krokach stworzenie kompletnego projektu, zawierającego nie tylko pliki z kodem startowym dla mikrokontrolera, ale też biblioteki z zaimplementowanym API (Application Programming Interface) do peryferiów (zarówno starsze biblioteki: Standard Peripheral Library, jak też nowsze: HAL - Hardware Abstraction Layer), stosy protokołów, system plików, system operacyjny itp. Słowem wszystko, co jest potrzebne, aby zacząć od razu pisać kod źródłowy aplikacji, zamiast tracić czas na ręczne kopiowanie dodatkowych plików do katalogu projektu oraz następnie dodawanie ich samodzielnie do drzewa projektu.

Co więcej, jako alternatywę dla kreatora programista może wykorzystać program CubeMX. Jest to narzędzie pozwalające na skonfigurowanie za pomocą graficznego interfejsu użytkownika peryferiów mikrokontrolera oraz wygenerowanie na podstawie tych ustawień projektu programistycznego dla środowiska AC6 System Workbench.

Pobranie i instalowanie

Rysunek 4. Aplikacja instalatora środowiska programistycznego AC6 System Workbench

Firma AC6 stworzyła specjalną stronę poświęconą swojemu środowisku programistycznemu dla mikrokontrolerów STM32. Jej adres to www.openstm32.org. Do większości materiałów, w tym bloga, forum, listy często zadawanych pytań, dokumentacji i przede wszystkim pliku instalacyjnego, można uzyskać dostęp po uprzednim zarejestrowaniu użytkownika.

W celu stworzenia konta należy kliknąć widoczny na stronie głównej odnośnik register. Po wypełnieniu formularza (rysunek 3) danymi (nazwa użytkownika, hasło, adres e-mail, imię, nazwisko, numer telefonu, adres, kod pocztowy, miasto, państwo) i kliknięciu przycisku Register pod wskazany adres e-mail wysłana zostanie wiadomość z linkiem aktywującym konto.

Gdy konto jest już aktywne, użytkownik może się zalogować. W celu odnalezienia pliku instalacyjnego należy przejść do zakładki System Workbench for STM32, a następnie z listy tematów wybrać ten o nazwie Downloading the System Workbench for STM32 installer. Z otworzonej w ten sposób strony można pobrać plik instalacyjny (w czasie pisania artykułu najnowsza wersja oznaczona była jako Bare Metal Edition z numerem 1.3).

Aby móc zainstalować środowisko programistyczne AC6 System Workbench komputer musi spełniać określone wymagania. Wymagania sprzętowe są następujące: 1 GB pamięci RAM oraz 2 GB wolnej pamięci na dysku twardym. Dodatkowo istnieją wymagania programowe dotyczące systemu operacyjnego (Linux albo Windows Vista lub nowszy) oraz oprogramowania dodatkowego (Java SE JRE 7 lub nowsza).

Aplikację instalatora (rysunek 4) użytkownik uruchamia dwukrotnie klikając na ikonę pobranego programu. W kolejnych krokach należy zaakceptować umowę pozwalającą na użytkowanie oprogramowania, wskazać ścieżkę na dysku, gdzie program ma zostać zainstalowany, wybrać elementy instalacji (pierwszy to AC6 System Workbench, drugi natomiast to sterownik do programatora/debugera ST-Link) i zaznaczyć lub nie opcję obecności ikony na pulpicie i w pasku menu start.

Po tych czynnościach zainstalowany zostanie cały pakiet narzędzi (edytor, kompilator, linker, flasher), jak również baza danych mikrokontrolerów STM32 oraz dokumentacja. Środowisko jest gotowe do pracy.

Podsumowanie

Kilka cech AC6 System Workbench zwraca na siebie wyraźnie uwagę, zachęcając tym samym do rozpoczęcia z nim pracy. Po pierwsze Eclipse, na którym oparto to środowisko, jest dobrze znaną i sprawdzoną platformą dla programistów.

Po drugie narzędzie to jest całkowicie bezpłatne i pozbawione ograniczeń (czasu użytkowania oraz wielkości kodu wykinowego). Po trzecie warto podkreślić bardzo dobre wsparcie tego produktu dla mikrokontrolerów STM32 (możliwość tworzenia aplikacji dla wszystkich rodzin STM32, łatwa konfiguracja projektu, możliwość generowania projektu wraz z bibliotekami Standard Peripheral Library oraz HAL, importowanie projektów z CubeMX).

Dzięki wymienionym cechom AC6 System Workbench może być postrzegane nie tylko jako kolejne środowisko programsityczne dla mikrokontrolerów STM32, ale pełnowartościowa alternatywa dla funkcjonujących obecnie na rynku komercyjnych rozwiązań.

Szymon Panecki, EP

Bibliografia
[1] www.st.com AC6 System Workbench. A new IDE for STM32

Pozostałe artykuły

Nucleo i wyświetlacz OLED. Sterowanie wyświetlaczem OLED z kontrolerem SSD1306 za pomocą STM32

Numer: Kwiecień/2016

Doskonałym rozszerzeniem płytki Nucleo może być wyświetlacz OLED. Przyda się on do realizacji interfejsu użytkownika w budowanych urządzaniach lub po prostu do prezentowania wyników pracy programu. W artykule opisano sposób dołączenia i sterowania takiego wyświetlacza.

Pierwsze kroki z FPGA, Szkoła MAXimatora - sprzęt i oprogramowanie. cz. 1

Numer: Kwiecień/2016

Zainteresowanie projektowaniem w układach FPGA wśród elektroników jest duże, ale - mam wrażenie - przede wszystkim potencjalne. Jednym z podstawowych powodów takiej sytuacji jest historyczne przekonanie propagujące się wśród konstruktorów o wysokich cenach tych układów, trudnej obsłudze i wysokich kosztach oprogramowania do ich projektowania i podstawowych narzędzi sprzętowych, a także trudnym procesie pisania dla nich "programów" ...

Obsługa wyświetlacza ze sterownikiem SSD1306

Numer: Marzec/2016

Niewielkie wyświetlacze z matrycami OLED cieszą się dużą popularnością wśród konstruktorów projektujących interfejsy użytkownika. Ich zaletami są: bardzo dobra czytelność w różnych warunkach oświetlenia, brak konieczności podświetlania tła, mały pobór prądu oraz stosunkowo niska cena. Niewielkie wymiary mogą być zaletą w aplikacjach wymagających małych w obudów. Jednym z takich elementów jest opisywany wyświetlacz ...

STM32: urządzenie USB-CDC. Wykonanie za pomocą CubeMX

Numer: Marzec/2016

Środowisko CubeMX, udostępniane przez ST Microelectronics, umożliwia łatwe konfigurowanie mikrokontrolerów rodziny STM32 i generowanie szkieletów programów. CubeMX zawiera wiele gotowych modułów programowych, które mogą być włączane do tworzonych programów. Znajdziemy wśród nich m.in. stos USB wraz z obsługą wybranych klas urządzeń. Jedną z obsługiwanych klas jest CDC, umożliwiająca implementację wirtualnego portu szeregowego. ...

STM-owa układanka: Nucleo, AC6, HAL

Numer: Marzec/2016

Od dłuższego czasu sprzedaż mikrokontrolerów STM32 jest powiązana ze wsparciem dla projektów bazujących na tych układach. Jest to wsparcie polegające zarówno na dystrybucji tanich płytek ewaluacyjnych, jak i na opracowywaniu darmowych narzędzi programistycznych. Takie działanie ma na celu przybliżenie świata STM-ów potencjalnym użytkownikom, ułatwienie i przyśpieszenie pisania oprogramowania. W cyklu kilku artykułów pokażemy ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Kwiecień 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym