TinyGo Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅Ρ Π·Π° ΡΠ°Π·ΠΈΠΊ Go Π½Π°ΠΌΠ΅Π½Π΅Ρ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π²ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ, WASM ΠΈ ΡΠ°Π·Π²ΠΎΡ Π½Π° Π°Π»Π°ΡΠΊΠ°ΡΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° Π»ΠΈΠ½ΠΈΡΠ°.
TinyGo ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠΌΡΠ½Π°Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Go, Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ LLVM.
Π¦Π΅Π»ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ:
- ΠΠ±Π΅Π·Π±Π΅Π΄Π΅ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° ΠΈΠ·Π²ΡΡΠ½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
- ΠΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π½Π°ΡΠ³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° WebAssembly.
- ΠΠΎΠ±ΡΠ° CGo ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΠΎΡ Go ΠΊΠΎΠ΄ Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π·Π° Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ LED Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ:
Π³Π»Π°Π²Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ
ΡΠ²ΠΎΠ· (
"ΠΌΠ°ΡΠΈΠ½Π°"
"Π²ΡΠ΅ΠΌΠ΅"
)
Func main() {
led := ΠΌΠ°ΡΠΈΠ½Π°.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
Π·Π° {
led.Low()
Π²ΡΠ΅ΠΌΠ΅.Π‘ΠΏΠΈΠ΅ΡΠ΅ (Π²ΡΠ΅ΠΌΠ΅. ΠΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π° * 1000)
led.High()
Π²ΡΠ΅ΠΌΠ΅.Π‘ΠΏΠΈΠ΅ΡΠ΅ (Π²ΡΠ΅ΠΌΠ΅. ΠΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π° * 1000)
}
}
ΠΠ΅ΡΠ·ΠΈΡΠ°ΡΠ° 0.6.0 ΡΠΎΠ΄ΡΠΆΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ. ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°Π°Ρ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° CGo, js.FuncOF (Go 1.12+), ΠΊΠ°ΠΊΠΎ ΠΈ Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ ΡΠ°Π·Π²ΠΎΡΠ½ΠΈ ΡΠ°Π±Π»ΠΈ: Adafruit Feather M0 ΠΈ Adafruit Trinket M0.
Π¦Π΅Π»ΠΎΡΠ½Π°ΡΠ° Π»ΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π½Π° ΠΡΠΎΠ΅ΠΊΡΠ½Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π° GitHub.
ΠΠ·Π²ΠΎΡ: linux.org.ru