sobota, 13 października 2018

Simplicity Studio 4 firmy Silicon Labs - IDE dla MCU Silicona z rdzeniem ARM - instalacja LINUX.

Do programowania MCU firmy Silicon Labs mamy do dyspozycji przygotowane przez producenta bezpłatne środowisko Simplicity Studio 4 (SS4). Jeśli ktoś posiada komercyjne IDE takie jak IAR czy KEIL-a uVison to również nimi zaprogramuje MCU Silicona. Pakiet instalacyjny SS4 jest przygotowany dla Windows, Linux, Mac. Środowisko SS4 oparte jest o Eclipsa ma to swoje wady i zalety. Nie mniej warto tu nadmienić , że najlepszym na rynku środowiskiem (m.in najlepsze kompilatory) do programowania MCU ARM-a jest IDE Keila, komercyjna wersja bez żadnych ograniczeń  potrafi kosztować 30 tys złotych !!!! Alleluja.


Nie ma co się jednak martwić, SS4 jest za darmo i spełnia swoje zadanie. Choć można nad nim trochę pomarudzić tak jak nad każdym Eclipsowym środowisku dla ARM-a. Środowisko jest zoptymalizowane do MCU Silicona , co w efekcie daje nam szybki start. Wszystkie biblioteki niezbędne do programowania MCU Silicona są dołączane do nowego projektu (spójrz jednak na Erratę poniżej artykułu).

Instalację SS4 przeprowadziłem w systemie LINUX Mint 18.X 64bity. Mój niezawodny Linux łyka wszystkie IDE bez najmniejszego problemu. Czasy w których z Linuxem były same problemy odeszły już do historii. A ten co w dzisiejszych czasach nie zna Linuxa ten gapa. Przed nami czasy , w których nawet szczoteczka do zębów będzie podłączona do globalnej sieci i nadzorowana przez Linuxa (no ale to już by było chyba przegięcie :) )

Na początek ściągamy instalatora dla systemu Linux stąd :

Przed pobraniem pliku wymagana jest krótka rejestracja i założenie konta w Siliconie. Musimy zweryfikowac podany adres e-mail. Zalogować się na stronie Silicona i wtedy uzyskamy dostęp do ściągnięcia programu. Plik jest skromny i ma ok 177 MB.
Ściągnięty plik rozpakowujemy w docelowym katalogu, ja to robię w głównym katalogu użytkownika. Rozpakowany katalog będzie miał nazwę : SimplicityStudio_v4.

Uruchamiamy konsolę linuxową i podajemy dostęp do ścieżki katalogu SimplicityStudio_v4.
Następnie uruchamiamy z konsoli plik setup.sh, (plik uruchamiamy jako root).
Kolejnym krokiem jest uruchomienie pliku run_studio.sh.

Cała sekwencja jaką trzeba wpisać w konsolę linuxową pokazano na obrazku poniżej. W miejsce wat podajemy swoją nazwę katalogu domowego.

Producent zaleca aby przed uruchomieniem pliku setup.sh dokonać aktualizacji plików systemowych za pomocą poniższych komend :
sudo apt-get update
sudo apt-get upgrade



Po uruchomieniu pliku run_studio.sh rusza instalacja. Na początku instalacji musimy zalogować się do wcześniej utworzonego konta w Silicon Labs.
W okienku jak poniżej i w miejscu Enter product name podajemy nazwę naszego procka np.EFM32TG11B120F128GQ48 (ale nie jest to ostatecznie wymagane do instalacji)



Klikamy Next . W kolejnym okienku zostawiamy wartości domyślne instalacji i klikamy Next.
dochodzimy do okienka jak poniżej :




również tutaj zostawiamy wartości domyślne i klikamy Next
W kolejnym okienku akceptujemy warunki licencji po czym instalator ściąga z neta pliki, chwilę to potrwa. Docelowo środowisko po instalacji zajmie ok 6.8 GB (cie florek).

Na koniec instalacji wyskoczy okienko z informacją o restarcie aplikacji, koniecznie trzeba to zrobić. Przez chwilę nic się nie będzie działo , dopóki nie wystartuje ponownie aplikacja SS4.  Przy pierwszym uruchomieniu aplikacji wyskoczy okno z informacją o aktualizacji , klikamy ikonkę Update all.
Po krótkiej aktualizacji mamy gotowe środowisko do pracy. Okienko po starcie wygląda tak :



W zakładce systemowej Linuxa ,MENU pojawi nam się nowy folder o nazwie Inne i tam znajdziemy launcher do uruchamiania aplikacji SS4.

Aby cokolwiek dalej robić należy zaopatrzyć się w programator i płytkę developerską, którą sami wystrugamy i to już niedługo.

Byle jakim programatorem tutaj nie zawalczymy potrzebujemy najlepiej oryginalnego J-Linka, swoja drogą jest to najlepszy programator dla ARM-ów . W przypadku chińskich klonów J-Linka będą problemy z debugerem ale flash jako taki zaprogramujemy nimi. Najtańszy oryginalny J-Link dostaniemy za ok. 77 zł wersja EDU Mini z ograniczeniem w licencji do niekomercyjnego zastosowania. Ta "niekomercyjność" to pięta achillesowa w świecie ARM-a, za programatory, które można użyć komercyjnie trzeba słono płacić najtańsza opcja zaczyna się od np 1500 zł za J-Linka Base. W świecie Microchipa producent nie nakłada tego typu ograniczeń na swoje programatory.
Co ciekawe Microchip również nie narzuca ograniczeń na komercyjne zastosowanie płytek developerskich w przeciwieństwie do np całej plejady popularnych u nas płytek Nucleo firmy STMicroelectronica

Procki Silicona są naprawdę warte grzechu aby je poznać. Dlatego mam zamiar pochylić nad nimi głowę :)

ERRATA :
Wykryłem pewien babol w SS4 dosyć upierdliwy dla początkujących , uniemożliwiający prawidłowe skompilowanie projektu. Poniżej podaję jak ten problem obejść.
Jeśli otworzymy sobie nowy projekt za pomocą okienka wyboru jak poniżej :


Utworzy nam się projekt w którym będzie brakować bibliotecznych plików z rozszerzeniem .c w katalogu emlib, będzie tam tylko jeden plik o nazwie em_system.c. Brak pozostałych plików uniemożliwi nam prawidłową kompilację projektu, linker będzie zgłaszał usterki typu undefined reference to `CMU_ClockEnable', jeśli w programie użyjemy np. CMU_ClockEnable a pliku do jego obsługi nie będzie w emlib

Problem można w prosty sposób obejść tak, że otwieramy sobie pomocniczo nowy projekt za pomocą opcji  Simplicity Configurator Program, w tej opcji w utworzonym projekcie w katalogu emlib znajdą się automatycznie wszystkie pliki z rozszerzeniem .c , które tam docelowo powinny się znaleźć . Teraz można  zaznaczyć kompletny katalog emlib i skopiować go do projektu w którym jest on wykastrowany.

Być może przyczyna tworzenia nowego projektu z niekompletnym katalogiem emlib jest opisana na forum producenta. Ale jak na razie sam szybciej ominąłem problem niż poszukałem rozwiązania na forum :) Inna kwestia to wogóle sens używani tego typu bibliotek narzucających dodatkową abstrakcję na kod. To jest coś jak biblioteki HAL w STM-ach. W necie możemy znaleźć całe debaty nad sensem używania tego typu bibliotek od których początkujących może głowa rozboleć, szczególnie zażarte walki na forach są wokół ekosystemu STM-a. Dla porównania w ekosystemie PIC32 Microchipa tego typu problemy nie istnieją :)


Pozdrawiam
picmajster.blog@gmail.com



Linki :
Siplicity Studio 4 - środowisko do programowania MCU Silicon Labs

SimplicityStudio4 - jeśli mamy błąd ""Problem Occurred" przy pierwszym uruchomieniu

SimplicityStudio4 - ciekawa strona

Simplicity Studio 4 - User's Guide

Brak komentarzy:

Prześlij komentarz