TinyGo je kompilátor jazyka Go určený na použitie v oblastiach, ako sú mikrokontroléry, WASM a vývoj nástrojov príkazového riadku.
TinyGo využíva pomocné programy a knižnice napísané v projekte Go, pričom poskytuje alternatívnu metódu na kompiláciu programov založenú na práci projektu LLVM.
Ciele projektu:
- Zabezpečte minimálnu veľkosť spustiteľných súborov.
- Podporuje najväčší počet mikrokontrolérov.
- Podpora WebAssembly.
- Dobrá podpora CGo.
- Podpora pôvodného Go kódu bez zmien.
Príklad použitia pre spínanie LED na mikrokontroléri:
hlavný balík
importovať (
"stroj"
"čas"
)
func main() {
led := stroj.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
pre {
led.Low()
čas.Spánok(čas.milisekunda * 1000)
led.High()
čas.Spánok(čas.milisekunda * 1000)
}
}
Verzia 0.6.0 obsahuje veľa zmien. Tie hlavné sa týkajú vylepšenej podpory pre CGo, js.FuncOF (Go 1.12+), ako aj dvoch nových vývojových dosiek: Adafruit Feather M0 a Adafruit Trinket M0.
Úplný zoznam zmien je dostupný na Stránka projektu GitHub.
Zdroj: linux.org.ru