TinyGo ื”ื•ื ืžื”ื“ืจ ืฉืคืช Go ื”ืžื™ื•ืขื“ ืœืฉื™ืžื•ืฉ ื‘ืชื—ื•ืžื™ื ื›ืžื• ืžื™ืงืจื•-ื‘ืงืจื™ื, WASM ื•ืคื™ืชื•ื— ื›ืœื™ ืฉื™ืจื•ืช ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”.

TinyGo ืžืฉืชืžืฉืช ื‘ื›ืœื™ ืขื–ืจ ื•ืกืคืจื™ื•ืช ืฉื ื›ืชื‘ื• ื‘ืคืจื•ื™ืงื˜ Go, ืชื•ืš ืžืชืŸ ืฉื™ื˜ื” ื—ืœื•ืคื™ืช ืœื”ื™ื“ื•ืจ ืชื•ื›ื ื™ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ื”ืขื‘ื•ื“ื” ืฉืœ ืคืจื•ื™ืงื˜ LLVM.

ืžื˜ืจื•ืช ื”ืคืจื•ื™ืงื˜:

  1. ื•ื“ื ืืช ื”ื’ื•ื“ืœ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืงื‘ืฆื™ ื”ืคืขืœื”.
  2. ืชื•ืžืš ื‘ืžืกืคืจ ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ ืฉืœ ืžื™ืงืจื•-ื‘ืงืจื™ื.
  3. ืชืžื™ื›ื” ื‘-WebAssembly.
  4. ืชืžื™ื›ืช CGo ื˜ื•ื‘ื”.
  5. ืชืžื™ื›ื” ื‘ืงื•ื“ 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”