Tinygo en Go-sprogkompilator baseret på LLVM

tinyGO Det er et projekt hvor en "Go" sprogkompilator er udviklet af områder, der kræver kompakt repræsentation af den resulterende kode og lavt ressourceforbrugsåsom mikrokontroller og kompakt enkelt processorsystem. Koden distribueres under BSD-licensen.

Byg til flere målplatforme Det implementeres ved hjælp af LLVM og til understøttelse af sproget bruges biblioteker, der hovedsageligt bruges af Go-projektværktøjerne. Det kompilerede program kan køres direkte på mikrokontrollere, så du kan bruge Go som et sprog til at skrive automatiseringsskripter.

Om Tinygo

Årsagen til oprettelsen af ​​TinyGO-projektet var ønsket om at bruge Go-sproget, der er almindeligt i kompakte enheder- Udviklerne begrundede, at hvis der findes en version af Python til mikrokontrollere, hvorfor så ikke oprette en lignende version til Go-sproget?

Go er valgt i stedet for Rust, da det er lettere at lære, leverer bølgebaseret support til tråduafhængig support og tilbyder et omfattende standardbibliotek ("batterier inkluderet")

I den nuværende form, 15 mikrokontrollermodeller understøttes, herunder forskellige kort fra Adafruit, Arduino, BBC micro, bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary og Phytec.

Programmer kan også oprettes til at køre i en browser i webversion-format og som eksekverbare filer til Linux.

Der er ingen understøttelse af ESP8266 / ESP32-controllerne endnu, men et projekt er under udvikling for at tilføje support til Xtensa-chip i LLVM, som stadig er markeret som ustabil og ikke klar til TinyGo-integration.

Projektets hovedmål:

  • Generering af meget kompakte eksekverbare filer
  • Understøttelse af de mest almindelige modeller af mikrocontrollerboards
  • Mulighed for brug til internettet
  • CGo support med minimal overhead, når du ringer til C-funktioner
  • Understøttelse af de fleste standardpakker og muligheden for at kompilere eksisterende typisk kode uden at ændre den.

Støtte til multi-core-systemer er ikke et af hovedmålene, den effektive frigivelse af et stort antal coroutines (selve den retsmedicinske frigivelse understøttes fuldt ud), opnå ydeevneniveauet for gc-benchmark-kompilatoren (den optimering, det henvises til LLVM og i nogle applikationer kan Tinygo være hurtigere end gc) og fuld kompatibilitet med alle applikationer i Go.

Den største forskel for emgo-kompilatoren er forsøget på at gemme Go's originale hukommelsesadministrationsmodel ved hjælp af affaldssamleren og bruge LLVM til at generere effektiv kode i stedet for at kompilere den til en C-repræsentation.

Tinygo tilbyder også et nyt runtime-bibliotek, der implementerer en optimeret planlægning til kompakte systemer., et hukommelsesallokeringssystem og strengcontrollere. Baseret på den nye runtime blev nogle pakker genskabt, såsom synkronisering og spejling.

Om Tinygo version 0.7

I øjeblikket er Tinygo i sin version 0.7 og af denne version af de vigtigste ændringer, der kan nævnes der er implementeringen af ​​"tinygo test" -kommandoen, som giver skraldindsamlingsstøtte til de fleste målkort (baseret på ARM Cortex-M) og WebAssembly, som Understøtter HiFive1 rev B baseret på RISC-V-arkitektur og Arduino nano33-kort, Det forbedrer sprogkompatibilitet (understøttelse af bitfelter ved hjælp af getters og setters, understøttelse af anonyme strukturer).

Hvordan installeres Tinygo på Ubuntu og derivater?

For dem der er interesseret i at kunne installere Tinygo, på Debian, Raspbian, Ubuntu og derivater. De skal åbne en terminal, og i den skal vi udføre følgende kommando:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_amd64.deb

sudo dpkg -i tinygo_0.7.0_amd64.deb

Til det specielle tilfælde af systemer til ARM-enheder (Raspbian og Ubuntu versioner)

Vi skriver følgende:

wget https://github.com/tinygo-org/tinygo/releases/download/v0.7.0/tinygo_0.7.0_armhf.deb

sudo dpkg -i tinygo_0.7.0_armhf.deb

Når du er færdig med installationen, de skal sørge for, at tinygostien er i deres PATH.

export PATH=$PATH:/usr/local/tinygo/bin

Endelig skal vi skrive følgende kommando for at kontrollere installationen:

tinygo versión

Og han må smide os sådan noget

tinygo version 0.7.0 linux/amd64

For at lære mere om det kan du konsultere følgende link. 


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.