TinyGo – це компілятор мови Go, призначений для використання в таких галузях, як мікроконтролери, WASM, а також розробки утиліт командного рядка.
TinyGo використовує утиліти та бібліотеки, написані у проекті Go, при цьому надаючи альтернативний метод компіляції програм на основі напрацювань проекту LLVM.
Завдання проекту:
- Забезпечити мінімальний розмір файлів, що виконуються.
- Підтримка найбільшої кількості мікроконтролерів.
- Підтримка WebAssembly.
- Гарна підтримка CGo.
- Підтримка оригінального коду Go без змін.
Приклад використання для перемикання LED на мікроконтролері:
пакет основний
імпорт (
"machine"
"час"
)
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)
}
}
Версія 0.6.0 містить багато змін. Основні з них відносяться до покращення підтримки CGo, js.FuncOF (Go 1.12+), а також двох нових налагоджувальних плат: Adafruit Feather M0 та Adafruit Trinket M0.
Повний список змін доступний GitHub сторінці проекту.
Джерело: linux.org.ru