TinyGo ist ein Go-Compiler, der für den Einsatz in Bereichen wie Mikrocontrollern, WASM und der Entwicklung von Kommandozeilen-Utilities konzipiert ist.
TinyGo verwendet Tools und Bibliotheken, die im Go-Projekt geschrieben wurden, und bietet gleichzeitig eine alternative Methode zur Kompilierung von Programmen auf Basis der LLVM-Technologie.
Projektziele:
- Das minimale Ausführungsdateigröße sicherzustellen.
- Unterstützung für die größtmögliche Anzahl von Mikrocontrollern.
- Unterstützung von WebAssembly.
- Gute Unterstützung für CGo.
- Unterstützung für Original-Go-Code ohne Änderungen.
Beispiel zur Verwendung zum Schalten einer LED auf einem Mikrocontroller:
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)
}
}
Version 0.6.0 enthält zahlreiche Änderungen. Die wichtigsten betreffen die Verbesserung der CGo-Unterstützung, js.FuncOF (Go 1.12+) sowie zwei neue Debugger-Boards: Adafruit Feather M0 und Adafruit Trinket M0.
Die vollständige Liste der Änderungen ist auf der GitHub-Seite des Projekts.
Quelle: linux.org.ru
