TinyGo to kompilator języka Go, przeznaczony do zastosowań takich jak mikrokontrolery, WASM oraz rozwój narzędzi linii poleceń.
TinyGo korzysta z narzędzi i bibliotek napisanych w projekcie Go, oferując jednocześnie alternatywną metodę kompilacji programów opartą na osiągnięciach projektu LLVM.
Zadania projektu:
- Zapewnienie minimalnego rozmiaru plików wykonywalnych.
- Wsparcie dla jak największej liczby mikrokontrolerów.
- Wsparcie dla WebAssembly.
- Dobra obsługa CGo.
- Wsparcie oryginalnego kodu Go bez zmian.
Przykład użycia do przełączania LED na mikrokontrolerze:
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)
}
}
Wersja 0.6.0 zawiera wiele zmian. Główne z nich dotyczą poprawy wsparcia CGo, js.FuncOF (Go 1.12+) oraz dwóch nowych płytek deweloperskich: Adafruit Feather M0 i Adafruit Trinket M0.
Pełna lista zmian dostępna na Strona projektu na GitHubie.
Źródło: linux.org.ru
