TinyGo è un compilatore del linguaggio Go, progettato per l'uso in aree come microcontrollori, WASM e nello sviluppo di strumenti da linea di comando.
TinyGo utilizza strumenti e librerie scritte nel progetto Go, fornendo un metodo alternativo per compilare programmi basato sui risultati del progetto LLVM.
Obiettivi del progetto:
- Assicurare dimensioni minime per i file eseguibili.
- Supportare il maggior numero possibile di microcontrollori.
- Supportare WebAssembly.
- Buon supporto per CGo.
- Supportare codice originale in Go senza modifiche.
Esempio di utilizzo per accendere e spegnere un LED su un microcontrollore:
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)
}
}
La versione 0.6.0 contiene numerosi cambiamenti. I principali riguardano il miglioramento del supporto per CGo, js.FuncOF (Go 1.12+) e due nuove schede di debug: Adafruit Feather M0 e Adafruit Trinket M0.
L'elenco completo delle modifiche è disponibile sulla pagina GitHub del progetto.
Fonte: linux.org.ru
