TinyGo on Go-kielikääntäjä, joka on tarkoitettu käytettäväksi sellaisilla aloilla kuin mikro-ohjaimet, WASM ja komentorivityökalujen kehittäminen.
TinyGo käyttää Go-projektissa kirjoitettuja apuohjelmia ja kirjastoja tarjoten samalla vaihtoehtoisen menetelmän LLVM-projektin työhön perustuvien ohjelmien kokoamiseen.
Projektin tavoitteet:
- Varmista suoritettavien tiedostojen vähimmäiskoko.
- Tukee suurinta määrää mikrokontrollereita.
- WebAssembly-tuki.
- Hyvä CGo-tuki.
- Alkuperäisen Go-koodin tuki ilman muutoksia.
Esimerkki käytöstä LED-valon kytkemiseen mikro-ohjaimessa:
paketin pää
tuonti (
"kone"
"aika"
)
func main() {
led := kone.LED
led.Configure(kone.PinConfig{Tila: kone.PinOutput})
for {
led.Low()
aika.Sleep(aika.millisekuntia * 1000)
led. High()
aika.Sleep(aika.millisekuntia * 1000)
}
}
Versio 0.6.0 sisältää monia muutoksia. Tärkeimmät liittyvät CGon parannettuun tukeen, js.FuncOF (Go 1.12+) sekä kahteen uuteen kehityslevyyn: Adafruit Feather M0 ja Adafruit Trinket M0.
Täydellinen luettelo muutoksista on saatavilla osoitteessa GitHub-projektin sivu.
Lähde: linux.org.ru