Tinygo, kompilator Go oparty na LLVM

maleńki

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. 


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.