TinyGo je kompajler jezika Go namenjen za upotrebu u oblastima kao što su mikrokontroleri, WASM i razvoj uslužnih programa komandne linije.
TinyGo koristi uslužne programe i biblioteke napisane u Go projektu, dok pruža alternativni metod za kompajliranje programa na osnovu rada LLVM projekta.
Ciljevi projekta:
- Osigurajte minimalnu veličinu izvršnih datoteka.
- Podržava najveći broj mikrokontrolera.
- WebAssembly podrška.
- Dobra CG podrška.
- Podrška originalnog Go koda bez promjena.
Primjer upotrebe za prebacivanje LED na mikrokontroleru:
paket glavni
uvoz (
"mašina"
"vrijeme"
)
func main () {
led := mašina.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 mnogo promjena. 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.
Kompletna lista izmjena dostupna je na Stranica projekta GitHub.
izvor: linux.org.ru