
TinyGo: kompilator Go dla małych miejsc
Jeśli pracujesz z mikrokontrolerami i jesteś miłośnikiem Go, Tinygo może być dla Ciebie, od tego Opracowano kompilator Go pDla obszarów, które wymagają zwartej reprezentacji wynikowego kodu i niskiego zużycia zasobów, takich jak mikrokontrolery systemów wbudowanych i WebAssembly.
TinyGo to kompilator, który ma na celu przeniesienie kompilacji Go na różne platformy docelowe który jest realizowany za pomocą LLVM, a biblioteki używane w głównym zestawie narzędzi projektu Go są używane do obsługi języka.
Na stronie Tinygo jest opisane, że:
Możesz kompilować i uruchamiać programy TinyGo na ponad 94 różnych płytach mikrokontrolerów, w tym BBC micro:bit i Arduino Uno.
TinyGo może również tworzyć kod WebAssembly (WASM), który jest bardzo kompaktowy. Możesz tworzyć programy dla przeglądarek internetowych, a także dla serwerów i środowisk przetwarzania brzegowego, które obsługują rodzinę interfejsów WebAssembly System Interface (WASI).
Powodem powstania projektu TinyGO była chęć wykorzystania języka Go, powszechnego w kompaktowych urządzeniach- Deweloperzy argumentowali, że jeśli istnieje wersja Pythona dla mikrokontrolerów, to dlaczego nie stworzyć podobnej wersji dla języka Go?
w TinyGo, skompilowany program można uruchomić bezpośrednio na mikrokontrolerach, llub że umożliwia wykorzystanie Go jako języka do pisania skryptów automatyzacji. TinyGo obsługuje obecnie 94 modele mikrokontrolerów, w tym różne płyty, takie jak między innymi Raspberry Pi Pico, Nordic, SiFive.
TinyGo zapewnia specjalne sterowniki do współpracy z podłączonymi urządzeniami zewnętrznymi i czujnikami, a także do obsługi interfejsów, takich jak I2C, GPIO i SPI. Programy można również kompilować w formacie WebAssembly (wasm/wasi), aby działały w przeglądarce oraz jako pliki binarne systemu Linux.
Kluczowe cele projektu:
- Możliwość używania podzbioru znanego języka Go na urządzeniach kompaktowych. Go został wybrany zamiast Rusta, ponieważ jest łatwiejszy do nauczenia się, zapewnia niezależną od wątków obsługę równoległości opartej na procedurach i oferuje obszerną bibliotekę standardów.
- Generowanie bardzo kompaktowych plików wykonywalnych.
- Obsługa najpopularniejszych modeli płytek mikrokontrolerów.
- Możliwość korzystania z WebAssembly i tworzenia samodzielnych aplikacji WebAssembly z wykorzystaniem WASI (WebAssembly
- System Interface) do pracy z plikami, gniazdami i innymi funkcjami zapewnianymi przez system operacyjny.
- Obsługa CGo przy minimalnym obciążeniu podczas wywoływania funkcji języka C.
- Kompatybilność z większością standardowych pakietów i możliwość kompilacji ogólnego istniejącego kodu bez jego zmiany.
- W przeciwieństwie do podobnego przestarzałego kompilatora emgo, Tinygo zachowuje oryginalny model zarządzania pamięcią Go za pośrednictwem modułu wyrzucania elementów bezużytecznych i używa LLVM zamiast kompilowania do reprezentacji C w celu wygenerowania wydajnego kodu natywnego.
Warto wspomnieć, że Tinygo niedawno otrzymało nową wersję, czyli 0.28 i w tej nowej wersji wyróżnia się znacznie poprawioną obsługą odbić oraz oferuje własną implementację biblioteki odbić, co pozwoliło osiągnąć kompatybilność z wieloma standardowymi bibliotekami pakiety, które wcześniej miały problemy.
Ponadto nowa wersja dodaje obsługę dyrektywy „//go:wasmimport” do importowania funkcji z WebAssembly, a także obsługę nowych kart, takich jak Gopher Badges.
W końcu Jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.
Jak zainstalować Tinygo na Linuksie?
Dla tych, którzy są zainteresowany możliwością zainstalowania Tinygo, na Debianie, Raspbianie, Ubuntu i pochodnych. Powinni otworzyć terminal iw nim wykonamy następujące polecenie:
wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_amd64.deb sudo dpkg -i tinygo_0.28.1_amd64.deb
Do specjalnego przypadku systemów dla urządzeń ARM (Wersje Raspbian i Ubuntu)
Zamierzamy wpisać:
wget https://github.com/tinygo-org/tinygo/releases/download/v0.28.1/tinygo_0.28.1_arm64.deb sudo dpkg -i tinygo_0.28.1_arm64.deb
W przypadku tych, którzy są użytkownikami Arch Linux i pochodnych, muszą wykonać następujące polecenie:
sudo pacman -S tinygo
Teraz w przypadku użytkowników Fedory:
sudo dnf install tinygo
Po zakończeniu instalacji powinni upewnić się, że ścieżka tinygo znajduje się na ich ŚCIEŻCE.
eksportuj PATH=$PATH:/usr/local/tinygo/bin
Wreszcie dla sprawdź instalację mamy zamiar wpisać następujące polecenie:
wersja tinygo
I musi nam coś takiego rzucić
wersja tinygo 0.28.1 linux/amd64
Aby dowiedzieć się więcej na ten temat, możesz skonsultować się poniższy link.