TinyGo je prevoditelj jezika Go namijenjen za korištenje u područjima kao što su mikrokontroleri, WASM i razvoj uslužnih programa naredbenog retka.
TinyGo koristi uslužne programe i biblioteke napisane u Go projektu, dok pruža alternativnu metodu za sastavljanje programa na temelju rada LLVM projekta.
Ciljevi projekta:
- Osigurajte minimalnu veličinu izvršnih datoteka.
- Podržava najveći broj mikrokontrolera.
- Podrška za WebAssembly.
- Dobra CGo podrška.
- Podrška izvornog Go koda bez promjena.
Primjer upotrebe za uključivanje LED-a na mikrokontroleru:
paket glavni
uvoz (
"mašina"
"vrijeme"
)
funkcija main() {
led := stroj.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
za {
led.Low()
vrijeme.Spavanje(vrijeme.Milisekunda * 1000)
led.High()
vrijeme.Spavanje(vrijeme.Milisekunda * 1000)
}
}
Verzija 0.6.0 sadrži mnoge promjene. Glavni se odnose na poboljšanu podršku za CGo, js.FuncOF (Go 1.12+), kao i dvije nove razvojne ploče: Adafruit Feather M0 i Adafruit Trinket M0.
Potpuni popis promjena dostupan je na Stranica GitHub projekta.
Izvor: linux.org.ru