TinyGo คือคอมไพเลอร์ภาษา Go ที่มีจุดประสงค์เพื่อใช้ในด้านต่างๆ เช่น ไมโครคอนโทรลเลอร์, WASM และการพัฒนายูทิลิตีบรรทัดคำสั่ง

TinyGo ใช้ยูทิลิตี้และไลบรารีที่เขียนในโปรเจ็กต์ Go ในขณะเดียวกันก็มอบวิธีการอื่นในการคอมไพล์โปรแกรมตามงานของโปรเจ็กต์ LLVM

วัตถุประสงค์ของโครงการ:

  1. ตรวจสอบให้แน่ใจว่าไฟล์ปฏิบัติการมีขนาดขั้นต่ำ
  2. รองรับไมโครคอนโทรลเลอร์จำนวนมากที่สุด
  3. การสนับสนุน WebAssembly
  4. รองรับ CGo ที่ดี
  5. รองรับโค้ด Go ดั้งเดิมโดยไม่มีการเปลี่ยนแปลง

ตัวอย่างการใช้งานในการสลับ LED บนไมโครคอนโทรลเลอร์:

แพ็คเกจหลัก

นำเข้า (
"เครื่องจักร"
"เวลา"
)

ฟังก์ชั่นหลัก () {
นำ := เครื่อง LED
led.Configure (machine.PinConfig {โหมด: machine.PinOutput})
สำหรับ {
นำ.ต่ำ()
time.Sleep(เวลา.มิลลิวินาที * 1000)

นำ.สูง()
time.Sleep(เวลา.มิลลิวินาที * 1000)
}
}

เวอร์ชัน 0.6.0 มีการเปลี่ยนแปลงมากมาย ประเด็นหลักเกี่ยวข้องกับการปรับปรุงการรองรับ CGo, js.FuncOF (Go 1.12+) รวมถึงบอร์ดพัฒนาใหม่สองบอร์ด: Adafruit Feather M0 และ Adafruit Trinket M0

รายการการเปลี่ยนแปลงทั้งหมดสามารถดูได้ที่ หน้าโครงการ GitHub.

ที่มา: linux.org.ru

เพิ่มความคิดเห็น