A TinyGo egy Go nyelvű fordító, melyet olyan területeken használnak, mint a mikrokontrollerek, a WASM, valamint parancssori segédprogramok fejlesztése.
A TinyGo a Go projektben íródott segédprogramokat és könyvtárakat használ, miközben alternatív fordítási módszert kínál a programok LLVM projektre alapozva.
A projekt feladatai:
- A végrehajtható fájlok minimális méretének biztosítása.
- A lehető legtöbb mikrokontroller támogatása.
- WebAssembly támogatás.
- Jó CGo támogatás.
- Az eredeti Go kód támogatása módosítások nélkül.
Példa LED kapcsolására mikrokontrolleren:
package main
import (
"machine"
"time"
)
func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 1000)
led.High()
time.Sleep(time.Millisecond * 1000)
}
}
A 0.6.0-s verzió számos változást tartalmaz. Főként a CGo támogatásának javítására, a js.FuncOF-ra (Go 1.12+) és két új debuggáló táblára: Adafruit Feather M0 és Adafruit Trinket M0 vonatkozik.
A teljes változáslista elérhető itt: A projekt GitHub-oldala.
Forrás: linux.org.ru
