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.