Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
EmBitz (dawniej EmBlocks)
SP9FKP Offline
Piotr
*****

Liczba postów: 1,265
Dołączył: 28-06-2009
Post: #1
EmBitz (dawniej EmBlocks)
EmBitz to pełne środowisko do tworzenia oprogramowania dla rodziny STM32 (choć nie tylko) w języku C/C++. Zawiera IDE oparte na Code::Blocks, kompilator, linker i debugger GCC a także moduł programatora/debugger pracujący w trybie OCD lub STLinkV2. Ponadto umożliwia wykreowanie "czystego" projektu lub import z CooCox. Dla ułatwienia chętnym na przygodę z programowaniem opracowałem krótki przewodnik jak to zrobić "krok po kroku". Życzę dobrej zabawy.


Załączone pliki
.pdf  Środowisko dla STM32 v0.05.pdf (Rozmiar: 878.2 KB / Pobrań: 1713)
12-05-2016 12:13
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6VGX Offline
Tomek
***

Liczba postów: 108
Dołączył: 03-11-2012
Post: #2
RE: EmBitz (dawniej EmBlocks)
Fajne - tylko jedno ale... ja odradzam CubeMX jak i slynne biblioteki od ST Smile

To jest niestety slepa uliczka z ktorej pozniej trudno sie wyplatac, a powstal w ojczystym jezyku calkiem fajny kurs STM32 http://www.elektroda.pl/rtvforum/topic3111562.html

Dlaczego ? Bo w pewnym momencie staniemy przed sciana nie do przebica, albo nabierzemy glupich nawykow z ktorych trudno sie wyplatac...

to tak z doswiadczenia, a zwlaszcza po tym jak ogladam czasem kod umieszczony na jakis forach (ludzi ktorzy szli taka droga). Potem cos co mozna zrobic niemal calkowicie uzywajac hardware robi sie jakimis dziwnymi protezami w software bo nie rozumie sie peryferiow...

Wiem jest na poczatku wiecej pracy, ale warto. Do tego nie potrzeba czytac calego reference manual, trzeba z niego umiec korzystac. Ja zerkam tylko w dzialy ktore mnie interesuja bo tez nie znam go na pamiec Smile

Tomek - SP6VGX (SWL: SP-0316-JG)
QTH: Warszawa, LOKATOR: KO02NG
http://www.sp6vgx.pl/
(Ten post był ostatnio modyfikowany: 12-05-2016 23:36 przez SP6VGX.)
12-05-2016 23:36
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9FKP Offline
Piotr
*****

Liczba postów: 1,265
Dołączył: 28-06-2009
Post: #3
RE: EmBitz (dawniej EmBlocks)
Dzięki za wskazanie, rzeczywiście znakomity kurs. Szkoda, że dopiero teraz...
13-05-2016 7:35
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP6VGX Offline
Tomek
***

Liczba postów: 108
Dołączył: 03-11-2012
Post: #4
RE: EmBitz (dawniej EmBlocks)
No czasami trzeba poszukac - fakt takie srodowiska jak i biblioteki od ST sa popularne i promowane np. na uczelniach Smile

Ja sobie je odpuscilem jak stracilem pare dni nad znaleziemienm kilku bledow w tych bibliotekach (ktore powodowaly cuda w dzialaniu programu), a analiza tych bibliotek to jest koszmar....

Tomek - SP6VGX (SWL: SP-0316-JG)
QTH: Warszawa, LOKATOR: KO02NG
http://www.sp6vgx.pl/
13-05-2016 17:38
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9FKP Offline
Piotr
*****

Liczba postów: 1,265
Dołączył: 28-06-2009
Post: #5
RE: EmBitz (dawniej EmBlocks)
Idąc za sugestią Tomka przyjrzałem się bibliotece "libopencm3", która jest już wystarczająco dojrzała by można było na niej oprzeć jakiś bardziej rozbudowany projekt. Na stronach autorów można zobaczyć co ciekawego stworzono w oparciu o tą bibliotekę a przegląd Internetu daje kolejne odnośniki do innych zastosowań. Jej główną zaletą jest to, że zawiera całkowicie niezależny i wolny kod (w odróżnieniu od kodu ze stajni ST) i obejmuję szeroką gamę procesorów opartych o rdzeń ARM. Nie jest tak bogata jak komercyjne produkty ale za to znacznie prostsza w implementacji. Na razie za mało wiem by przygotować jakiś dokument ale tak sobie myślę, że gdyby w ramach Forum zebrało się jakieś grono zapaleńców, byłoby znacznie łatwiej wspólnie wdrożyć ją do stosowania w naszych projektach. Biblioteka zawiera sporo przykładów gotowych do uruchomienia na posiadanych modułach więc stosunkowo łatwo można zacząć ćwiczyć.
Czy są jacyś chętni?
22-06-2016 14:15
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP5FCS Offline
Adam
*****

Liczba postów: 1,072
Dołączył: 02-02-2009
Post: #6
RE: EmBitz (dawniej EmBlocks)
Pierwszy, prosty program do obsługi wyświetlacza LCD 2x16 znaków napisałem w oparciu o SPL i środowisko EM Blocks. Środowisko jest ok aczkolwiek uruchomienie i konfiguracja ST-linka wymagała pomocy Piotra SP9FKP.

Zaletą bibliotek SPL jest to, że większość kursów i przykładów w sieci opiera się właśnie na nich. Również kilka projektów z kręgu naszych zainteresowań HM bazuje na SPL-u. Programy są proste, czytelne i wymagają minimalnej wiedzy na temat rejestrów procesora co spodoba się każdemu początkującemu programiście. Wykorzystanie SPL-a do inicjowania zasobów procesora jest proste i wygodne ale pochłania sporo kodu i czasu pracy procesora. Niestety po zapoznaniu się z kodem poszczególnych funkcji SPL fascynacja gotowymi funkcjami słabnie i zaczynamy się zastanawiać czy nie da się tego zrobić prościej. W sieci znajdziemy wiele postów krytycznych na temat SPL-a oraz przykładów jak pisać programy opierając się wyłącznie o rejestry procesora i funkcje CMSIS. Efekty (kod+czas) są zdecydowanie lepsze ale pisanie programów jest trudniejsze i wymaga to większej wiedzy o rejestrach procesora.

Biblioteka libopencm3 to przykład ominięcia "balastu" ciążącego na dotychczasowych standardach typu SPL, HAL czy nawet CMSIS. Podoba mi się bardzo oszczędne i optymalne napisanie podstawowych funkcji co z pewnością da bardzo dobre wyniki po kompilacji. Na początku poznawania procesorów STM wadą tego rozwiązania jest zerwanie ze standardem rdzenia opisanym w plikach CMSIS co może skutkować problemami w kompilacji wielu przykładów.

Najlepiej poznawać możliwości poszczególnych rozwiązać na praktycznych przykładach. Przydatność łatwiej jest ocenić po czytelności programu, wielkości kodu i czasie jego wykonywania.

73 Adam
23-06-2016 20:12
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9FKP Offline
Piotr
*****

Liczba postów: 1,265
Dołączył: 28-06-2009
Post: #7
RE: EmBitz (dawniej EmBlocks)
Na początek dygresja: wakacje między drugą a trzecią klasą podstawówki spędziłem u dziadka, który w prezencie podarował mi zestaw telefonów-zabawek połączonych między sobą kilkunastoma metrami dwużyłowego przewodu. Pozwalało to (po schowaniu się za szopę) "zadzwonić" do dziadka i usłyszeć jego głos w słuchawce. Jak już nagadaliśmy się z dziadkiem, postanowiłem zobaczyć co jest w środku. Trwało to dłuższą chwilę, bo telefony były dość solidnie zrobione. W efekcie, telefonów nie dało się dłużej używać a ja przeżyłem spory szok bo środku "nic" nie było. Ale już w trzeciej klasie zbudowałem swoje pierwsze radio (wg patentu starszego kolegi) złożone z dwóch elementów: diody i słuchawki (nie licząc kilkudziesięciu metrów miedzianego drutu jako anteny).
Piszę to bo dla mnie najbardziej pouczająca jest analiza tego co zrobił ktoś inny i próba zrobienia tego lepiej. EmBitz nadaje się do tego świetnie.

Po pierwsze, jest szybki bo działa natywnie w Windows a nie w maszynie wirtualnej Java co odróżnia go od środowisk opartych o Eclipse. Autor poświecił mnóstwo czasu na "dostrojenie" kodu pod potrzeby mikrokontrolerów dając zaraz po zainstalowaniu gotowe do pracy środowisko. Biorąc pod uwagę złożoność problemów związanych z samym programowaniem, dodatkowa energia na "walkę" ze środowiskiem wydaje się być całkowicie zmarnowana. Piszę to bo w międzyczasie poświeciłem sporo czasu na poznanie innych, alternatywnych środowisk tylko po to by wyrobić sobie własne zdanie na ten temat.

Po drugie, umożliwia zaimportowanie mnóstwa rożnych projektów, przykładów i luźnych kawałków kodu m.in. z popularnego CooCox i uruchomienie ich w celach edukacji. Pozwala to na szybkie sprawdzenia "jak to działa" podobnie jak w nieszczęsnych telefonach podarowanych mi przez dziadka.

Po trzecie, środowisko jest wolne w sensie licencyjnym a autor aktywnie udziela się na forum projektu czego nie można stwierdzić w przypadku innych środowisk. Wystarczy tam zajrzeć by się o tym przekonać.
W zasadzie jedyną wadą EmBitza (poza możliwością porzucenia projektu przez autora) jest to, że dostępny jest tylko pod system z Redmond, choć w deklaracjach autora jest również Linuks. Z drugiej strony, ilu użytkowników Forum nacodzień korzysta z innych systemów operacyjnych?

Po czwarte, obsługuje trzy najpopularniejsze programatory, czego chcieć więcej?

Pora na wniosek: proponuję wziąć "pod lupę" gotowy, działający projekt, rozebrać go na kawałki i pokazać jak to jest zrobione, z detalami na tyle, na ile pozwolą nam ramy Forum i nasza wiedza. Przy okazji wyrobimy sobie nawyki i poznamy narzędzie, które być może w przyszłości pozwoli nam napisać "coś" samodzielnie.

P.S.

Tytułem próby w EmBitz skompilowałem jeden z przykładów dołączonych do libopencm3. Tu można zobaczyć jak działa.
(Ten post był ostatnio modyfikowany: 27-06-2016 8:03 przez SP9FKP.)
23-06-2016 21:16
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9FKP Offline
Piotr
*****

Liczba postów: 1,265
Dołączył: 28-06-2009
Post: #8
RE: EmBitz (dawniej EmBlocks)
Piszę pod własnym postem ponieważ silnik Forum nie wykazuje w wiadomościach wyedytowanych postów jako nowych a ta jest istotna dla używających Linuksa.
Otóż, postępując wg tego przepisu można zainstalować najnowsze, stabilne wydanie WINE pod którym można uruchomić EmBitz. Trzeba jedynie ręcznie przekopiować bibliotekę OSSupport.dll z katalogu uruchomionego EMBitza pod Windowsem do katalogu gdzie zostanie zainstalowany pod Linuksem.
Trzeba też mieć JLinkGDBServer z pakietu Seggera i uruchamiać go " z palca" w oknie terminala

JLinkGDBServer -I SWO -device STM32F429ZI

i pozostawiać załączony do końca sesji. Oczywiście, ten serwer wymaga firmowego wsadu do programatora/debuggera więc niestety, użytkowanie tego zestawu jest ograniczone do modułów ST. inne wydania procesorów firm opartych o rdzeń ARM będą działać pod np J-Link EDU. W oknie ustawienia serwera GDB trzeba wyłączyć (zaznaczyć) automatyczne uruchamianie.

İmage
07-07-2016 13:06
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości