TinyGo – ein Compiler der Programmiersprache Go, der für Anwendungen in Bereichen wie Mikrocontroller, WASM sowie die Entwicklung von Kommandozeilen-Tools gedacht ist.
TinyGo verwendet Werkzeuge und Bibliotheken, die im Go-Projekt geschrieben wurden, und bietet gleichzeitig eine alternative Methode zur Kompilierung von Programmen basierend auf den Entwicklungen des LLVM-Projekts.
Projektziele:
- Sicherstellung einer minimalen Größe der ausführbaren Dateien.
- Unterstützung der größtmöglichen Anzahl an Mikrocontrollern.
- Unterstützung von WebAssembly.
- Gute Unterstützung für CGo.
- Unterstützung für Original-Go-Code ohne Änderungen.
Beispiel zur Verwendung zur Steuerung 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)
}
}
Die 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 Debugging-Platinen: Adafruit Feather M0 und Adafruit Trinket M0.
Eine vollständige Liste der Änderungen finden Sie auf der GitHub-Seite des Projekts.
Quelle: linux.org.ru
